{"ScriptPreparationCode":"function ObjCon() {\r\n this.a = 1\r\n this.b = 2\r\n this.r = 0\r\n}\r\nvar Literal = {a:1,b:2,r:0}\r\nvar Obj = new ObjCon()\r\nclass ObjClass {\r\n constructor() {\r\n this.a = 1\r\n this.b = 2\r\n this.r = 0\r\n }\r\n}\r\nvar Cls = new ObjClass()\r\nvar FieldMap = new Map()\r\nFieldMap.set(\u0022a\u0022, 1)\r\nFieldMap.set(\u0022b\u0022, 2)\r\nFieldMap.set(\u0022r\u0022, 0)\r\nvar FieldArray = [1,2,0]\r\nvar IntObject = {0:1,1:2,2:0}\r\nvar A = 1\r\nvar B = 2\r\nvar R = 0","TestCases":[{"Name":"Using a new function Object for the fields","Code":"Obj.r = Obj.b - Obj.a","IsDeferred":false},{"Name":"Using dot syntax in an object literal","Code":"Literal.r = Literal.b - Literal.a","IsDeferred":false},{"Name":"Using string keys in an object literal","Code":"Literal[\u0022r\u0022] = Literal[\u0022b\u0022] - Literal[\u0022a\u0022]","IsDeferred":false},{"Name":"Using Class fields","Code":"Cls.r = Cls.b - Cls.a","IsDeferred":false},{"Name":"Using a builtin Map","Code":"FieldMap.set(\u0022r\u0022, FieldMap.get(\u0022b\u0022) - FieldMap.get(\u0022a\u0022))","IsDeferred":false},{"Name":"Using an array with 3 slots","Code":"FieldArray[2] = FieldArray[1]-FieldArray[0]","IsDeferred":false},{"Name":"Using an object literal with integer keys","Code":"IntObject[2] = IntObject[1]-IntObject[0]","IsDeferred":false},{"Name":"Baseline using normal variables","Code":"R = B - A","IsDeferred":false}]}