test262/implementation-contributed/javascriptcore/stress/symbol-should-not-break-for-in.js
test262-automation e9a5a7f918 [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time) (#1620)
* [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time)
2018-07-03 15:59:58 -04:00

30 lines
529 B
JavaScript

function assert(b) {
if (!b)
throw new Error("bad assertion.");
}
function foo(o) {
let r = [];
for (let p in o)
r.push(o[p]);
return r;
}
noInline(foo);
let o = {};
o[Symbol()] = "symbol";
o.prop = "prop";
for (let i = 0; i < 1000; i++) {
let arr = foo(o);
assert(arr.length === 1);
assert(arr[0] === "prop");
}
o.prop2 = "prop2";
for (let i = 0; i < 1000; i++) {
let arr = foo(o);
assert(arr.length === 2);
assert(arr[0] === "prop");
assert(arr[1] === "prop2");
}