856e0da8298d4dd5e3415866cfdc8be81df84e65
[WebKit.git] / Source / JavaScriptCore / tests / stress / to-number-object-without-execution.js
1 function shouldBe(actual, expected) {
2     if (actual !== expected)
3         throw new Error(`bad value: ${String(actual)}`);
4 }
5
6 function test(x, y)
7 {
8     if (x)
9         return Number(y);
10     return y;
11 }
12 noInline(test);
13
14 var object = { valueOf() { return 41; } };
15 // Since Number is handled by inlining, it emits ForceOSRExit.
16 for (var i = 0; i < 1e4; ++i)
17     shouldBe(test(false, object), object);
18
19 for (var i = 0; i < 1e4; ++i)
20     shouldBe(test(true, object), 41);