test262/implementation-contributed/javascriptcore/stress/poly-proto-intrinsic-getter-correctness.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

38 lines
637 B
JavaScript

function assert(b) {
if (!b)
throw new Error("Bad!");
}
function makePolyProtoObject() {
function foo() {
class C {
constructor() {
this._field = 42;
}
};
return new C;
}
for (let i = 0; i < 15; ++i)
foo();
return foo();
}
let x = new Uint32Array(10);
let p = x.__proto__.__proto__;
let obj = makePolyProtoObject();
obj.__proto__ = p;
x.__proto__ = obj;
function foo(x) {
return x.byteLength;
}
noInline(foo);
for (let i = 0; i < 1000; ++i) {
assert(foo(x) === 10 * 4);
};
obj.__proto__ = {};
assert(foo(x) === undefined);