summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/compiler/array-find.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/compiler/array-find.js')
-rw-r--r--deps/v8/test/mjsunit/compiler/array-find.js50
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}));
})();