{"ScriptPreparationCode":"var obj = {\r\n $names : [\u0027a\u0027,\u0027b\u0027,\u0027c\u0027],\r\n a:1,\r\n b:2,\r\n c:3\r\n}","TestCases":[{"Name":"getOwnPropertyNames","Code":"var ks = Object.getOwnPropertyNames(obj);\r\nvar n = 0;\r\nfor (var i = 0; i \u003C ks.length; i\u002B\u002B) {\r\n var k = ks[i];\r\n if (k.charAt(0) == \u0027$\u0027) continue;\r\n n\u002B\u002B;\r\n}","IsDeferred":false},{"Name":"Cached property names","Code":"var ks = obj[\u0027$names\u0027];\r\nvar n = 0;\r\nfor (var i = 0; i \u003C ks.length; i\u002B\u002B) {\r\n var k = obj[ks[i]];\r\n n\u002B\u002B;\r\n}","IsDeferred":false},{"Name":"for in","Code":"var n = 0;\r\nfor (var k in obj) {\r\n if (k.charAt(0) == \u0027$\u0027) continue;\r\n n\u002B\u002B;\r\n}","IsDeferred":false},{"Name":"Object.keys","Code":"var ks = Object.keys(obj);\r\nvar n = 0;\r\nfor (var i = 0; i \u003C ks.length; i\u002B\u002B) {\r\n var k = ks[i];\r\n if (k.charAt(0) == \u0027$\u0027) continue;\r\n n\u002B\u002B;\r\n}","IsDeferred":false},{"Name":"Object.entries","Code":"var n = 0;\r\nfor (const [k, v] of Object.entries(obj)){\r\n if (k.charAt(0) == \u0027$\u0027) continue;\r\n n\u002B\u002B;\r\n}","IsDeferred":false}]}