diff options
Diffstat (limited to 'deps/v8/test/mjsunit/compiler/array-find.js')
-rw-r--r-- | deps/v8/test/mjsunit/compiler/array-find.js | 50 |
1 files changed, 38 insertions, 12 deletions
diff --git a/deps/v8/test/mjsunit/compiler/array-find.js b/deps/v8/test/mjsunit/compiler/array-find.js index 29d15d096e..39404cc0a2 100644 --- a/deps/v8/test/mjsunit/compiler/array-find.js +++ b/deps/v8/test/mjsunit/compiler/array-find.js @@ -17,27 +17,53 @@ assertEquals(3, foo([1, 2, 3], {x:3})); assertEquals(undefined, foo([0, 1, 2], {x:3})); + // Packed // Non-extensible %PrepareFunctionForOptimization(foo); - assertEquals(3, foo(Object.preventExtensions([1, 2, 3]), {x:3})); - assertEquals(undefined, foo(Object.preventExtensions([0, 1, 2]), {x:3})); + assertEquals(3, foo(Object.preventExtensions(['1', 2, 3]), {x:3})); + assertEquals(undefined, foo(Object.preventExtensions(['0', 1, 2]), {x:3})); %OptimizeFunctionOnNextCall(foo); - assertEquals(3, foo(Object.preventExtensions([1, 2, 3]), {x:3})); - assertEquals(undefined, foo(Object.preventExtensions([0, 1, 2]), {x:3})); + assertEquals(3, foo(Object.preventExtensions(['1', 2, 3]), {x:3})); + assertEquals(undefined, foo(Object.preventExtensions(['0', 1, 2]), {x:3})); // Sealed %PrepareFunctionForOptimization(foo); - assertEquals(3, foo(Object.seal([1, 2, 3]), {x:3})); - assertEquals(undefined, foo(Object.seal([0, 1, 2]), {x:3})); + assertEquals(3, foo(Object.seal(['1', 2, 3]), {x:3})); + assertEquals(undefined, foo(Object.seal(['0', 1, 2]), {x:3})); %OptimizeFunctionOnNextCall(foo); - assertEquals(3, foo(Object.seal([1, 2, 3]), {x:3})); - assertEquals(undefined, foo(Object.seal([0, 1, 2]), {x:3})); + assertEquals(3, foo(Object.seal(['1', 2, 3]), {x:3})); + assertEquals(undefined, foo(Object.seal(['0', 1, 2]), {x:3})); // Frozen %PrepareFunctionForOptimization(foo); - assertEquals(3, foo(Object.freeze([1, 2, 3]), {x:3})); - assertEquals(undefined, foo(Object.freeze([0, 1, 2]), {x:3})); + assertEquals(3, foo(Object.freeze(['1', 2, 3]), {x:3})); + assertEquals(undefined, foo(Object.freeze(['0', 1, 2]), {x:3})); %OptimizeFunctionOnNextCall(foo); - assertEquals(3, foo(Object.freeze([1, 2, 3]), {x:3})); - assertEquals(undefined, foo(Object.freeze([0, 1, 2]), {x:3})); + assertEquals(3, foo(Object.freeze(['1', 2, 3]), {x:3})); + assertEquals(undefined, foo(Object.freeze(['0', 1, 2]), {x:3})); + + // Holey + // Non-extensible + %PrepareFunctionForOptimization(foo); + assertEquals(3, foo(Object.preventExtensions([, '1', 2, 3]), {x:3})); + assertEquals(undefined, foo(Object.preventExtensions([, '0', 1, 2]), {x:3})); + %OptimizeFunctionOnNextCall(foo); + assertEquals(3, foo(Object.preventExtensions([, '1', 2, 3]), {x:3})); + assertEquals(undefined, foo(Object.preventExtensions([, '0', 1, 2]), {x:3})); + + // Sealed + %PrepareFunctionForOptimization(foo); + assertEquals(3, foo(Object.seal([, '1', 2, 3]), {x:3})); + assertEquals(undefined, foo(Object.seal([, '0', 1, 2]), {x:3})); + %OptimizeFunctionOnNextCall(foo); + assertEquals(3, foo(Object.seal([, '1', 2, 3]), {x:3})); + assertEquals(undefined, foo(Object.seal([, '0', 1, 2]), {x:3})); + + // Frozen + %PrepareFunctionForOptimization(foo); + assertEquals(3, foo(Object.freeze([, 1, 2, 3]), {x:3})); + assertEquals(undefined, foo(Object.freeze([, 0, 1, 2]), {x:3})); + %OptimizeFunctionOnNextCall(foo); + assertEquals(3, foo(Object.freeze([, 1, 2, 3]), {x:3})); + assertEquals(undefined, foo(Object.freeze([, 0, 1, 2]), {x:3})); })(); |