diff options
Diffstat (limited to 'deps/v8/test/mjsunit/compiler/regress-store-holey-double-array.js')
-rw-r--r-- | deps/v8/test/mjsunit/compiler/regress-store-holey-double-array.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/compiler/regress-store-holey-double-array.js b/deps/v8/test/mjsunit/compiler/regress-store-holey-double-array.js new file mode 100644 index 0000000000..81231984e0 --- /dev/null +++ b/deps/v8/test/mjsunit/compiler/regress-store-holey-double-array.js @@ -0,0 +1,43 @@ +// Copyright 2016 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Flags: --allow-natives-syntax + +(function StoreHoleBitPattern() { + function g(src, dst, i) { + dst[i] = src[i]; + } + + var b = new ArrayBuffer(16); + var i32 = new Int32Array(b); + i32[0] = 0xFFF7FFFF; + i32[1] = 0xFFF7FFFF; + i32[3] = 0xFFF7FFFF; + i32[4] = 0xFFF7FFFF; + var f64 = new Float64Array(b); + + var a = [,0.1]; + + g(f64, a, 1); + g(f64, a, 1); + %OptimizeFunctionOnNextCall(g); + g(f64, a, 0); + + assertTrue(Number.isNaN(a[0])); +})(); + + +(function ConvertHoleToNumberAndStore() { + function g(a, i) { + var x = a[i]; + a[i] = +x; + } + + var a=[,0.1]; + g(a, 1); + g(a, 1); + %OptimizeFunctionOnNextCall(g); + g(a, 0); + assertTrue(Number.isNaN(a[0])); +})(); |