diff options
Diffstat (limited to 'js/src/jit-test/tests/warp/scalar-replace-array-construct-array-01.js')
-rw-r--r-- | js/src/jit-test/tests/warp/scalar-replace-array-construct-array-01.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/warp/scalar-replace-array-construct-array-01.js b/js/src/jit-test/tests/warp/scalar-replace-array-construct-array-01.js new file mode 100644 index 0000000000..a68a9dad0e --- /dev/null +++ b/js/src/jit-test/tests/warp/scalar-replace-array-construct-array-01.js @@ -0,0 +1,28 @@ +setJitCompilerOption("inlining.bytecode-max-length", 200); + +function escape(x) { with ({}) {} } + +class Bar { + constructor(x, y) { + this.value = x + y; + } +} + +class Foo extends Bar { + constructor(...args) { + escape(args); + 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, 300); |