diff options
Diffstat (limited to 'deps/v8/test/mjsunit/compiler/array-length.js')
-rw-r--r-- | deps/v8/test/mjsunit/compiler/array-length.js | 46 |
1 files changed, 33 insertions, 13 deletions
diff --git a/deps/v8/test/mjsunit/compiler/array-length.js b/deps/v8/test/mjsunit/compiler/array-length.js index 10be42a439..aa2210893c 100644 --- a/deps/v8/test/mjsunit/compiler/array-length.js +++ b/deps/v8/test/mjsunit/compiler/array-length.js @@ -38,16 +38,36 @@ function Test(a0, a2, a5) { var a0 = []; var a2 = [1,2]; var a5 = [1,2,3,4,5]; -%PrepareFunctionForOptimization(ArrayLength); -for (var i = 0; i < 5; i++) Test(a0, a2, a5); -%OptimizeFunctionOnNextCall(ArrayLength); -Test(a0, a2, a5); -%PrepareFunctionForOptimization(Test); -%OptimizeFunctionOnNextCall(Test); -Test(a0, a2, a5); -assertEquals("undefined", typeof(ArrayLength(0))); -%PrepareFunctionForOptimization(Test); -for (var i = 0; i < 5; i++) Test(a0, a2, a5); -%OptimizeFunctionOnNextCall(Test); -Test(a0, a2, a5); -assertEquals(4, ArrayLength("hest")); + +function MainTest() { + %PrepareFunctionForOptimization(ArrayLength); + for (var i = 0; i < 5; i++) Test(a0, a2, a5); + %OptimizeFunctionOnNextCall(ArrayLength); + Test(a0, a2, a5); + %PrepareFunctionForOptimization(Test); + %OptimizeFunctionOnNextCall(Test); + Test(a0, a2, a5); + assertEquals("undefined", typeof(ArrayLength(0))); + %PrepareFunctionForOptimization(Test); + for (var i = 0; i < 5; i++) Test(a0, a2, a5); + %OptimizeFunctionOnNextCall(Test); + Test(a0, a2, a5); + assertEquals(4, ArrayLength("hest")); +} +MainTest(); + +// Non-extensible, sealed, frozen +a0 = Object.preventExtensions([]); +a2 = Object.seal([1,2]); +a5 = Object.freeze([1,2,3,4,5]); +MainTest(); + +a0 = Object.seal([]); +a2 = Object.freeze([1,2]); +a5 = Object.preventExtensions([1,2,3,4,5]); +MainTest(); + +a0 = Object.freeze([]); +a2 = Object.preventExtensions([1,2]); +a5 = Object.seal([1,2,3,4,5]); +MainTest(); |