{"ScriptPreparationCode":"let scopeX = 0;\r\n\r\n\r\nfunction Constructor(f) {\r\n return Object.setPrototypeOf(f, Constructor.prototype);\r\n};\r\nConstructor.prototype = {\r\n get x() {\r\n return scopeX;\r\n },\r\n y() {\r\n scopeX = scopeX \u002B 1;\r\n }\r\n};\r\nObject.setPrototypeOf(Constructor, Function);\r\nObject.setPrototypeOf(Constructor.prototype, Function.prototype);\r\nvar makeConstructor = name =\u003E new Constructor(({\r\n [name]() {\r\n return \u0022My name is\\n\u0022 \u002B name;\r\n }\r\n})[name]);\r\nvar aConstructor = makeConstructor(\u0022Chika-chika\\nSlim Shady\u0022);\r\n\r\n\r\nliteralPrototype = {\r\n get x() {\r\n return scopeX;\r\n },\r\n y() {\r\n scopeX = scopeX \u002B 1;\r\n }\r\n};\r\nObject.setPrototypeOf(literalPrototype, Function.prototype);\r\nvar makeLiteral = name =\u003E Object.setPrototypeOf(({\r\n [name]() {\r\n return \u0022My name is\\n\u0022 \u002B name;\r\n }\r\n})[name], literalPrototype);\r\nvar aLiteral = makeConstructor(\u0022Chika-chika\\nSlim Shady\u0022);\r\n\r\n\r\n","TestCases":[{"Name":"makeConstructor","Code":"const aConstructor = makeConstructor(\u0022Chika-chika\\nSlim Shady\u0022);","IsDeferred":false},{"Name":"makeLiteral","Code":"var aLiteral = makeConstructor(\u0022Chika-chika\\nSlim Shady\u0022);","IsDeferred":false},{"Name":"invoke aConstructor","Code":"aConstructor();","IsDeferred":false},{"Name":"invoke aLiteral","Code":"aLiteral();","IsDeferred":false},{"Name":"invoke prototype method aConstructor","Code":"aConstructor.y()","IsDeferred":false},{"Name":"invoke prototype method aLiteral","Code":"aLiteral.y();","IsDeferred":false},{"Name":"getter aConstructor","Code":"const value = aConstructor.x;","IsDeferred":false},{"Name":"getter aLiteral","Code":"const value = aLiteral.x;","IsDeferred":false}]}