Source code

Revision control

Copy as Markdown

Other Tools

var o2 = new Proxy({}, {});
function f1() {}
function f2() {}
function f4(o) {
var key = Object.getOwnPropertyNames(o)[18];
o4 = o[key];
o.prototype = {};
}
f4(f1);
f4(f1);
f4(f2);
new f2(o2);
// these will hold only if type inference is enabled.
//assertEq(shapeOf(f1) == shapeOf(f2), false);
//assertEq(shapeOf(f1) == shapeOf(f4), false);
function factory() {
function foo() {}
foo.x = 0;
return foo;
}
var fobjs = [];
for (var i = 0; i < 10; i++) {
var of = fobjs[i] = factory();
if (i > 0) {
assertEq(fobjs[i - 1] === of, false);
assertEq(shapeOf(fobjs[i - 1]), shapeOf(of));
}
}
assertEq(shapeOf(fobjs[0]) == shapeOf(f1), false);