diff options
Diffstat (limited to 'js/src/jit-test/tests/warp/scalar-replace-array-construct-array-02.js')
-rw-r--r-- | js/src/jit-test/tests/warp/scalar-replace-array-construct-array-02.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/warp/scalar-replace-array-construct-array-02.js b/js/src/jit-test/tests/warp/scalar-replace-array-construct-array-02.js new file mode 100644 index 0000000000..06d44779c1 --- /dev/null +++ b/js/src/jit-test/tests/warp/scalar-replace-array-construct-array-02.js @@ -0,0 +1,26 @@ +setJitCompilerOption("inlining.bytecode-max-length", 200); + +class Bar { + constructor(x, y) { + this.value = x + y; + } +} + +class Foo extends Bar { + constructor(...args) { + args[0] = 3; + super(...args); + } +} + +// |Foo| must be small enough to be inlinable. +assertEq(isSmallFunction(Foo), true); + +with ({}) {} + +var sum = 0; +for (var i = 0; i < 100; i++) { + let obj = new Foo(1, 2); + sum += obj.value; +} +assertEq(sum, 500); |