mirror of https://github.com/tc39/test262.git
56 lines
755 B
JavaScript
56 lines
755 B
JavaScript
function Cons1()
|
|
{
|
|
this.e = 1;
|
|
this.f = 2;
|
|
}
|
|
|
|
Cons1.prototype.g = 1;
|
|
|
|
function Cons2()
|
|
{
|
|
this.f = 1;
|
|
this.h = 2;
|
|
}
|
|
|
|
Cons2.prototype.g = 2;
|
|
|
|
function Cons3()
|
|
{
|
|
this.d = 1;
|
|
this.e = 2;
|
|
this.f = 3;
|
|
}
|
|
|
|
Cons3.prototype = Cons2.prototype;
|
|
|
|
function foo(o, p, q)
|
|
{
|
|
var x = 0, y = 0;
|
|
if (p)
|
|
x = o.f;
|
|
if (q)
|
|
y = o.f;
|
|
return x + y;
|
|
}
|
|
|
|
for (var i = 0; i < 10000; ++i) {
|
|
foo(new Cons1(), true, false);
|
|
foo(new Cons2(), false, true);
|
|
foo(new Cons3(), false, true);
|
|
}
|
|
|
|
function bar(o, p)
|
|
{
|
|
return foo(o, true, p);
|
|
}
|
|
|
|
noInline(bar);
|
|
|
|
for (var i = 0; i < 100000; ++i)
|
|
bar(new Cons1(), false);
|
|
|
|
var result = bar(new Cons1(), true);
|
|
if (result != 4)
|
|
throw "Error: bad result: " + result;
|
|
|