40 lines
679 B
JavaScript
40 lines
679 B
JavaScript
//@ requireOptions("--jitPolicyScale=0", "--useDFGJIT=0")
|
|
|
|
{
|
|
var obj1 = this
|
|
function foo1() {
|
|
for (let i = 0; i < 5; ++i)
|
|
delete obj1.x
|
|
}
|
|
noInline(foo1)
|
|
|
|
foo1()
|
|
Object.defineProperty(obj1, "x", {})
|
|
foo1()
|
|
}
|
|
|
|
{
|
|
var obj2 = new Proxy({}, {})
|
|
function foo2() {
|
|
for (let i = 0; i < 5; ++i)
|
|
delete obj2.x
|
|
}
|
|
noInline(foo2)
|
|
|
|
foo2()
|
|
Object.defineProperty(obj2, "x", {})
|
|
foo2()
|
|
}
|
|
|
|
{
|
|
var obj3 = $vm.createProxy({})
|
|
function foo3() {
|
|
for (let i = 0; i < 5; ++i)
|
|
delete obj3.x
|
|
}
|
|
noInline(foo3)
|
|
|
|
foo3()
|
|
Object.defineProperty(obj3, "x", {})
|
|
foo3()
|
|
} |