{"id":0,"registry":{"0":{"submorphs":[],"scripts":[],"id":"06064904-E579-4CE1-8FDA-ADFAD37BA5D9","shape":{"__isSmartRef__":true,"id":1},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"ReferenceArea","partsBinMetaInfo":{"__isSmartRef__":true,"id":2},"eventHandler":{"__isSmartRef__":true,"id":27},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","BD8BECDB-A9A1-4009-B433-C925F0AFCCFC","F2677A9D-5855-4DF2-B248-94545B34B762","D52188B3-7DC0-410E-96B1-50892AC00A37","EA0AE40C-B8C6-461D-A732-1F24BB37693E","F400C402-1C38-4016-BC7E-21F2E40CCA2A","AA98887E-48D8-444F-BAEB-D0C5F419694F","18C00A62-D2B5-42A9-B620-946E8435AFC5","7BABBF3B-3584-47BA-8A84-FF70C1851606","1069376F-56E9-449F-A197-454D26A28023","2840C26C-1C5B-40C0-B24A-E92F7D84AEAC","A5CAB550-5495-422F-BBB6-CAA3ED5CF007","F79EDD79-B1EC-4414-AE08-0A65F169317D"],"partTests":{"__isSmartRef__":true,"id":28},"_ClipMode":"visible","moved":true,"isBeingDragged":false,"layout":{"__isSmartRef__":true,"id":42},"informTarget":null,"informMethod":null,"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","minExtent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":43},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,0.0)","minExtent":"lively.pt(100.0,100.0)"},"1":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":4.81,"_Opacity":1,"_BorderStyle":"solid","__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(245.0,332.3)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(240,240,240)","_Padding":"lively.rect(0,0,0,0)"},"2":{"partsSpaceName":"PartsBin/BYOIE/","comment":"A plain simple rectangle","migrationLevel":8,"partName":"ReferenceArea","changes":[{"__isSmartRef__":true,"id":3},{"__isSmartRef__":true,"id":4},{"__isSmartRef__":true,"id":5},{"__isSmartRef__":true,"id":6},{"__isSmartRef__":true,"id":7},{"__isSmartRef__":true,"id":8},{"__isSmartRef__":true,"id":9},{"__isSmartRef__":true,"id":10},{"__isSmartRef__":true,"id":11},{"__isSmartRef__":true,"id":12},{"__isSmartRef__":true,"id":13},{"__isSmartRef__":true,"id":14},{"__isSmartRef__":true,"id":15},{"__isSmartRef__":true,"id":16},{"__isSmartRef__":true,"id":17},{"__isSmartRef__":true,"id":18},{"__isSmartRef__":true,"id":19},{"__isSmartRef__":true,"id":20},{"__isSmartRef__":true,"id":21},{"__isSmartRef__":true,"id":22},{"__isSmartRef__":true,"id":23},{"__isSmartRef__":true,"id":24},{"__isSmartRef__":true,"id":25},{"__isSmartRef__":true,"id":26}],"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Mon May 05 2014 17:08:42 GMT-0700 (PDT)\")"},"3":{"author":"robertkrahn","message":"no comment","id":"FBBB9C99-B61C-4D5F-8750-6E2987DF0C9C","__serializedExpressions__":["date"],"date":"new Date(\"Thu Jun 20 2013 15:16:24 GMT-0700 (PDT)\")"},"4":{"author":"robertkrahn","message":"no comment","id":"67FD74CD-7AE4-4050-ADC7-4DF73804258D","__serializedExpressions__":["date"],"date":"new Date(\"Thu May 30 2013 00:18:06 GMT-0700 (PDT)\")"},"5":{"author":"jenslincke","message":"no comment","id":"AEB2F41B-2C88-4BBA-8875-93CD17CBA1C8","__serializedExpressions__":["date"],"date":"new Date(\"Wed Jan 23 2013 03:57:18 GMT-0800 (PST)\")"},"6":{"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23","__serializedExpressions__":["date"],"date":"new Date(\"Thu May 03 2012 06:51:36 GMT-0700 (PDT)\")"},"7":{"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC","__serializedExpressions__":["date"],"date":"new Date(\"Thu May 03 2012 06:51:30 GMT-0700 (PDT)\")"},"8":{"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2","__serializedExpressions__":["date"],"date":"new Date(\"Wed Mar 14 2012 02:53:45 GMT-0700 (PDT)\")"},"9":{"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B","__serializedExpressions__":["date"],"date":"new Date(\"Fri Feb 24 2012 17:59:09 GMT-0800 (PST)\")"},"10":{"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7","__serializedExpressions__":["date"],"date":"new Date(\"Wed Mar 14 2012 02:42:26 GMT-0700 (PDT)\")"},"11":{"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350","__serializedExpressions__":["date"],"date":"new Date(\"Mon Apr 09 2012 04:42:07 GMT-0700 (PDT)\")"},"12":{"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8","__serializedExpressions__":["date"],"date":"new Date(\"Mon Jun 18 2012 10:35:08 GMT-0700 (PDT)\")"},"13":{"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205","__serializedExpressions__":["date"],"date":"new Date(\"Thu Nov 22 2012 01:35:51 GMT-0800 (PST)\")"},"14":{"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2","__serializedExpressions__":["date"],"date":"new Date(\"Fri Jan 18 2013 07:42:31 GMT-0800 (PST)\")"},"15":{"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20","__serializedExpressions__":["date"],"date":"new Date(\"Fri Jan 18 2013 07:47:05 GMT-0800 (PST)\")"},"16":{"author":"SAPLivelyScreen","message":"no comment","id":"EF145198-0649-41BD-A92E-521D98FEC49D","__serializedExpressions__":["date"],"date":"new Date(\"Wed May 29 2013 15:36:50 GMT-0700 (PDT)\")"},"17":{"author":"SAPLivelyScreen","message":"no comment","id":"7A44D8CA-6D5F-42A3-A4B4-4D7F51EECA52","__serializedExpressions__":["date"],"date":"new Date(\"Tue Jun 18 2013 11:49:27 GMT-0700 (PDT)\")"},"18":{"author":"robertkrahn","message":"no comment","id":"A452871F-4EB9-45D1-94B8-6065CBA7B8FD","__serializedExpressions__":["date"],"date":"new Date(\"Mon Jul 29 2013 23:20:51 GMT-0700 (PDT)\")"},"19":{"author":"larswassermann","message":"no comment","id":"D35A093D-D0A0-44B7-8B1C-96B6EC5E9714","__serializedExpressions__":["date"],"date":"new Date(\"Mon May 05 2014 15:50:52 GMT-0700 (PDT)\")"},"20":{"author":"larswassermann","message":"tried to fix a bug in the hierarchy","id":"EAF6AAC4-3769-457B-A73F-7C921D955D5F","__serializedExpressions__":["date"],"date":"new Date(\"Mon May 05 2014 16:27:13 GMT-0700 (PDT)\")"},"21":{"author":"larswassermann","message":"added morphic scenegraph changes listener","id":"D4C5735F-4546-4ED0-A87F-EE65B86DCA7C","__serializedExpressions__":["date"],"date":"new Date(\"Mon May 05 2014 17:08:39 GMT-0700 (PDT)\")"},"22":{"author":"larswassermann","message":"this replaced by self – again...","id":"E48869C1-0D14-4838-BD73-9EA2995DFF2D","__serializedExpressions__":["date"],"date":"new Date(\"Mon May 05 2014 17:15:54 GMT-0700 (PDT)\")"},"23":{"author":"larswassermann","message":"epi morphs are ignored when warning about non-synchronized submorphs","id":"41608F8F-2437-4477-8D26-BD6C9E3F4133","__serializedExpressions__":["date"],"date":"new Date(\"Thu Jun 19 2014 10:41:57 GMT-0700 (PDT)\")"},"24":{"author":"larswassermann","message":"onOwnerChanged needed tweaking","id":"B974D50E-8DFD-4DA3-BBB8-20937CCF2C76","__serializedExpressions__":["date"],"date":"new Date(\"Thu Jun 19 2014 11:39:20 GMT-0700 (PDT)\")"},"25":{"author":"larswassermann","message":"no comment","id":"50B266D3-4F74-452E-953D-AC1A5629BEF8","__serializedExpressions__":["date"],"date":"new Date(\"Thu Jun 19 2014 11:41:34 GMT-0700 (PDT)\")"},"26":{"__serializedExpressions__":["date"],"author":"larswassermann","message":"no comment","id":"4D284285-211E-484D-A3BB-8E08D9AE983C","date":"new Date(\"Thu Jun 19 2014 15:01:44 GMT-0700 (PDT)\")"},"27":{"morph":{"__isSmartRef__":true,"id":0},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"28":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":29}},"29":{"test01IsMorph":{"__isSmartRef__":true,"id":30},"test02synchronizedSubmorphs":{"__isSmartRef__":true,"id":33},"setUp":{"__isSmartRef__":true,"id":36},"startSynchronizing":{"__isSmartRef__":true,"id":39}},"30":{"varMapping":{"__isSmartRef__":true,"id":31},"source":"function test01IsMorph(aPart) {\n    this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":32},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"31":{"this":{"__isSmartRef__":true,"id":28}},"32":{},"33":{"varMapping":{"__isSmartRef__":true,"id":34},"source":"function test02synchronizedSubmorphs(aPart) {\n    var note = aPart.getStickyNote(),\n        subnote = aPart.getStickyNote(),\n        name = aPart.getName();\n    note.addMorph(aPart);\n    this.startSynchronizing(note);\n    this.startSynchronizing(subnote);\n    aPart.addMorph(subnote);\n    note.saveForm();\n    var model = note.getModelData();\n    \n    this.assert(model[name] && model[name].length == 1, \"submorph not correctly identified and/or added to the model\");\n    this.assert(model[name][0].path === subnote.synchronizationHandles[0].fullPath().toString(), \"the path to the subnote is not available\");\n    this.assert(model[name][0].n === aPart.submorphs.indexOf(subnote), \"The position in the scenegraph is at the wrong place.\");\n    \n    var self = this;\n    this.trait.openMorphFor(\"stickyNote.0\", this.handle, function(err) {\n            self.assert(false, \"stickyNote's form was not available for \" + err);\n        }, function(err, morph) {\n            morph.mergeWithModelData(model);\n            self.assert(morph.submorphs[1].submorphs[0], \"synchronized submorph not available...\");\n            self.assert(morph.submorphs[1].submorphs[0].getName() === subnote.getName(), \"names not equal\");\n            self.assert(morph.submorphs[1].submorphs[0].synchronizationHandles[0].fullPath().toString() === \"stickyNote.1\")\n        });\n}","funcProperties":{"__isSmartRef__":true,"id":35},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"34":{"this":{"__isSmartRef__":true,"id":28}},"35":{},"36":{"varMapping":{"__isSmartRef__":true,"id":37},"source":"function setUp() {\n    this.trait = Trait('lively.persistence.StateSync.SynchronizedMorphMixin');\n    \n    this._store = new lively.persistence.Sync.LocalStore();\n    this.handle = new lively.persistence.StateSync.StoreHandle(this._store)\n}","funcProperties":{"__isSmartRef__":true,"id":38},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"37":{"this":{"__isSmartRef__":true,"id":28}},"38":{},"39":{"varMapping":{"__isSmartRef__":true,"id":40},"source":"function startSynchronizing(someObject) {\n    var name = someObject.name,\n        slot = this._store.db[name] && this._store.db[name].length ? this._store.db[name].length : 0;\n    var syncHandle = this.handle.child(name + \".\" + slot);\n    if (Object.isArray(someObject.synchronizationHandles)) {\n        someObject.synchronizationHandles.push(syncHandle);\n    } else {\n        someObject.synchronizationHandles = [syncHandle];\n    }\n    if (!this._store.db[name]) this._store.db[name] = {}\n    this._store.db[name].length = slot + 1;\n    this.trait.mixInto(someObject, syncHandle, false);\n    someObject.save();\n    return syncHandle\n}","funcProperties":{"__isSmartRef__":true,"id":41},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"40":{"this":{"__isSmartRef__":true,"id":28}},"41":{},"42":{"resizeWidth":true,"resizeHeight":true,"adjustForNewBounds":false},"43":{"connectTo":{"__isSmartRef__":true,"id":44},"mergeWithModelData":{"__isSmartRef__":true,"id":47},"getModelData":{"__isSmartRef__":true,"id":50},"getStickyNote":{"__isSmartRef__":true,"id":53},"copy":{"__isSmartRef__":true,"id":56},"addMorph":{"__isSmartRef__":true,"id":63},"removeMorph":{"__isSmartRef__":true,"id":70},"onOwnerChanged":{"__isSmartRef__":true,"id":77}},"44":{"varMapping":{"__isSmartRef__":true,"id":45},"source":"function connectTo(targetObj, targetMethod, options) {\n    this.informTarget = targetObj;\n    this.informMethod = targetMethod;\n    this.ownerWhenConnected = this.owner;\n}","funcProperties":{"__isSmartRef__":true,"id":46},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"45":{"this":{"__isSmartRef__":true,"id":0}},"46":{"user":"larswassermann","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Thu Jun 19 2014 11:38:38 GMT-0700 (PDT)\")"},"47":{"varMapping":{"__isSmartRef__":true,"id":48},"source":"function mergeWithModelData(values, changeTime) {\n    var self = this;\n    // remove non existend synchronized morphs\n    var submorphPaths = values.pluck('path');\n    self.submorphs.forEach(function(ea) {\n        if (ea.synchronizationHandles && ea.synchronizationHandles.length > 0) {\n            var path = ea.synchronizationHandles[0].fullPath();\n            if (submorphPaths.indexOf(path.toString()) == -1) {\n                ea.remove();\n            }\n        }\n    })\n    // modify/add synchronized morphs\n    values.forEach(function(morphInfo) {\n        // look whether it is already there, and if so, just manipulate it\n        var existingMorph = self.submorphs.detect(function(ea) { \n            return ea.synchronizationHandles && ea.synchronizationHandles[0].fullPath().toString() === morphInfo.path;\n        });\n        if (existingMorph) {\n            existingMorph.setPosition(lively.pt(morphInfo.position.x, morphInfo.position.y));\n            existingMorph.setExtent(lively.pt(morphInfo.extent.x, morphInfo.extent.y));\n            return\n        }\n        var synchronizedObject = self.ownerChain().detect(function(ea) { return ea.synchronizationHandles && ea.synchronizationHandles.length > 0 })\n        if (!synchronizedObject) throw new Error(\"Something has gone horribly wrong. I am updated, but there is nothing synchronized in my owner chain.\");\n        Trait('lively.persistence.StateSync.SynchronizedMorphMixin').openMorphFor(\n            morphInfo.path, \n            synchronizedObject.synchronizationHandles[0].root(), \n            function(path) {\n                alert(\"Synchronized morphs: Could no reopen synchronized submorph \" + path\n                    + \", because it is not present in the DB.\");\n            }, function(err, morph) {\n                if (err) return alert(\"Synchronized morphs: Could no reopen submorph: \" + err);\n                morph.setPosition(lively.pt(morphInfo.position.x, morphInfo.position.y));\n                morph.setExtent(lively.pt(morphInfo.extent.x, morphInfo.extent.y));\n                self.addMorph(morph, self.submorphs[morphInfo.n]);\n            })\n    });\n}","funcProperties":{"__isSmartRef__":true,"id":49},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"48":{"this":{"__isSmartRef__":true,"id":0}},"49":{"user":"larswassermann","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Mon May 05 2014 17:14:57 GMT-0700 (PDT)\")"},"50":{"varMapping":{"__isSmartRef__":true,"id":51},"source":"function getModelData() {\n    var references = []\n    this.submorphs.forEach(function(morph, idx) {\n        if (morph.synchronizationHandles && morph.synchronizationHandles.length > 0)\n            references.push({\n                path: morph.synchronizationHandles[0].fullPath().toString(),\n                n: idx,\n                extent: morph.getExtent(),\n                position: morph.getPosition(),\n            })\n        else if (!morph.isEpiMorph) {\n            alert(\"... I should only contain synchronized objects...\");\n        }\n    });\n    return references;\n}","funcProperties":{"__isSmartRef__":true,"id":52},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"51":{"this":{"__isSmartRef__":true,"id":0}},"52":{"user":"larswassermann","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Thu Jun 19 2014 11:41:26 GMT-0700 (PDT)\")"},"53":{"varMapping":{"__isSmartRef__":true,"id":54},"source":"function getStickyNote() {\n    var background = new lively.morphic.Box(lively.rect(0, 0, 200, 150)),\n        content = new lively.morphic.Text(lively.rect(5, 5, 190, 140), \"\");\n    background.setName(\"stickyNote\");\n    content.setName(\"content\");\n    content.fixedHeight = true;\n    background.addMorph(content);\n    return background;\n}","funcProperties":{"__isSmartRef__":true,"id":55},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"54":{"this":{"__isSmartRef__":true,"id":0}},"55":{"user":"larswassermann","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Mon May 05 2014 15:18:37 GMT-0700 (PDT)\")"},"56":{"varMapping":{"__isSmartRef__":true,"id":57},"source":"function copy(stringify) {\n    // dangerous in a single threaded language?\n    var submorphs = this.submorphs;\n    try {\n        this.submorphs = [];\n        return $super(stringify);\n    } finally {\n        this.submorphs = submorphs;\n    }\n}","funcProperties":{"__isSmartRef__":true,"id":62},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"57":{"this":{"__isSmartRef__":true,"id":0},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":58}},"58":{"$super":{"__isSmartRef__":true,"id":59}},"59":{"varMapping":{"__isSmartRef__":true,"id":60},"source":"function () {\n                try {\n                    // FIXME super is supposed to be static\n                    return Object.getPrototypeOf(obj)[name].apply(obj, arguments);\n                } catch (e) {\n                    if ($world)\n                        $world.logError(e, 'Error in $super call')\n                    else\n                        alert('Error in $super call: ' + e + '\\n' + e.stack);\n                    return null;\n                }\n            }","funcProperties":{"__isSmartRef__":true,"id":61},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"60":{"obj":{"__isSmartRef__":true,"id":0},"name":"copy"},"61":{},"62":{"user":"larswassermann","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Mon May 05 2014 15:54:18 GMT-0700 (PDT)\")"},"63":{"varMapping":{"__isSmartRef__":true,"id":64},"source":"function addMorph(someMorph, optArg) {\n    $super(someMorph, optArg);\n    if (this.informTarget)\n        this.informTarget[this.informMethod](this.getModelData(), this);\n}","funcProperties":{"__isSmartRef__":true,"id":69},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"64":{"this":{"__isSmartRef__":true,"id":0},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":65}},"65":{"$super":{"__isSmartRef__":true,"id":66}},"66":{"varMapping":{"__isSmartRef__":true,"id":67},"source":"function () {\n                try {\n                    // FIXME super is supposed to be static\n                    return Object.getPrototypeOf(obj)[name].apply(obj, arguments);\n                } catch (e) {\n                    if ($world)\n                        $world.logError(e, 'Error in $super call')\n                    else\n                        alert('Error in $super call: ' + e + '\\n' + e.stack);\n                    return null;\n                }\n            }","funcProperties":{"__isSmartRef__":true,"id":68},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"67":{"obj":{"__isSmartRef__":true,"id":0},"name":"addMorph"},"68":{},"69":{"user":"larswassermann","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Mon May 05 2014 17:06:24 GMT-0700 (PDT)\")"},"70":{"varMapping":{"__isSmartRef__":true,"id":71},"source":"function removeMorph(someMorph, optArg) {\n    $super(someMorph, optArg);\n    if (this.informTarget)\n        this.informTarget[this.informMethod](this.getModelData(), this);\n}","funcProperties":{"__isSmartRef__":true,"id":76},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"71":{"this":{"__isSmartRef__":true,"id":0},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":72}},"72":{"$super":{"__isSmartRef__":true,"id":73}},"73":{"varMapping":{"__isSmartRef__":true,"id":74},"source":"function () {\n                try {\n                    // FIXME super is supposed to be static\n                    return Object.getPrototypeOf(obj)[name].apply(obj, arguments);\n                } catch (e) {\n                    if ($world)\n                        $world.logError(e, 'Error in $super call')\n                    else\n                        alert('Error in $super call: ' + e + '\\n' + e.stack);\n                    return null;\n                }\n            }","funcProperties":{"__isSmartRef__":true,"id":75},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"74":{"obj":{"__isSmartRef__":true,"id":0},"name":"removeMorph"},"75":{},"76":{"user":"larswassermann","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Mon May 05 2014 17:06:35 GMT-0700 (PDT)\")"},"77":{"varMapping":{"__isSmartRef__":true,"id":78},"source":"function onOwnerChanged(someMorph, optArg) {\n    $super(someMorph, optArg);\n    if (this.owner !== this.ownerWhenConnected) {\n        this.informTarget = null;\n        this.informMethod = null;\n    }\n}","funcProperties":{"__isSmartRef__":true,"id":83},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"78":{"this":{"__isSmartRef__":true,"id":0},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":79}},"79":{"$super":{"__isSmartRef__":true,"id":80}},"80":{"varMapping":{"__isSmartRef__":true,"id":81},"source":"function () {\n                try {\n                    // FIXME super is supposed to be static\n                    return Object.getPrototypeOf(obj)[name].apply(obj, arguments);\n                } catch (e) {\n                    if ($world)\n                        $world.logError(e, 'Error in $super call')\n                    else\n                        alert('Error in $super call: ' + e + '\\n' + e.stack);\n                    return null;\n                }\n            }","funcProperties":{"__isSmartRef__":true,"id":82},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"81":{"obj":{"__isSmartRef__":true,"id":0},"name":"onOwnerChanged"},"82":{},"83":{"user":"larswassermann","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Thu Jun 19 2014 11:39:00 GMT-0700 (PDT)\")"},"isSimplifiedRegistry":true}}