{"ScriptPreparationCode":"\u0022use strict\u0022;\r\nconst objArr = [\r\n {thingOne: \u0022abcdef\u0022, thingTwo: \u0022123456\u0022, unused: 73529835},\r\n {thingOne: \u0022ghijkl\u0022, thingTwo: \u0022789012\u0022, unused: 32478428},\r\n {thingOne: \u0022mnopqr\u0022, thingTwo: \u0022345678\u0022, unused: 28937592},\r\n {thingOne: \u0022stuvwx\u0022, thingTwo: \u0022901234\u0022, unused: 67352879},\r\n {thingOne: \u0022yzabcd\u0022, thingTwo: \u0022567890\u0022, unused: 92356201}\r\n];\r\nconst len = objArr.length;","TestCases":[{"Name":"Object Destructuring","Code":"\u0022use strict\u0022;\r\nlet x;\r\nfor (let i = 0; i \u003C len; i\u002B\u002B) {\r\n const { thingOne, thingTwo } = objArr[i];\r\n x = thingOne\u002BthingTwo;\r\n}","IsDeferred":false},{"Name":"Object Destructuring (Cached Obj)","Code":"\u0022use strict\u0022;\r\nlet x;\r\nfor (let i = 0; i \u003C len; i\u002B\u002B) {\r\n const obj = objArr[i];\r\n const { thingOne, thingTwo } = obj;\r\n x = thingOne\u002BthingTwo;\r\n}","IsDeferred":false},{"Name":"Variable Assignment","Code":"\u0022use strict\u0022;\r\nlet x;\r\nfor (let i = 0; i \u003C len; i\u002B\u002B) {\r\n const thingOne = objArr[i].thingOne;\r\n const thingTwo = objArr[i].thingTwo;\r\n x = thingOne\u002BthingTwo;\r\n}","IsDeferred":false},{"Name":"Variable Assignment (Cached Obj)","Code":"\u0022use strict\u0022;\r\nlet x;\r\nfor (let i = 0; i \u003C len; i\u002B\u002B) {\r\n const obj = objArr[i];\r\n const thingOne = obj.thingOne;\r\n const thingTwo = obj.thingTwo;\r\n x = thingOne\u002BthingTwo;\r\n}","IsDeferred":false},{"Name":"Direct Property Access","Code":"\u0022use strict\u0022;\r\nlet x;\r\nfor (let i = 0; i \u003C len; i\u002B\u002B) {\r\n x = objArr[i].thingOne\u002BobjArr[i].thingTwo;\r\n}","IsDeferred":false},{"Name":"Direct Property Access (Cached Obj)","Code":"\u0022use strict\u0022;\r\nlet x;\r\nfor (let i = 0; i \u003C len; i\u002B\u002B) {\r\n const obj = objArr[i];\r\n x = obj.thingOne\u002Bobj.thingTwo;\r\n}","IsDeferred":false}]}