From 14c9a6fb30e48b097a6a475de34dd852727c97b6 Mon Sep 17 00:00:00 2001 From: test262-automation Date: Tue, 18 Sep 2018 18:28:58 +0000 Subject: [PATCH] [v8-test262-automation] Changes from https://github.com/v8/v8.git at sha ceacdcd0 on Tue Sep 18 2018 18:28:28 GMT+0000 (Coordinated Universal Time) --- .../v8/mjsunit/compiler/regress-884052.js | 16 ++++ .../mjsunit/regress/regress-crbug-884933.js | 85 +++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 implementation-contributed/v8/mjsunit/compiler/regress-884052.js create mode 100644 implementation-contributed/v8/mjsunit/regress/regress-crbug-884933.js diff --git a/implementation-contributed/v8/mjsunit/compiler/regress-884052.js b/implementation-contributed/v8/mjsunit/compiler/regress-884052.js new file mode 100644 index 0000000000..babfcc3cea --- /dev/null +++ b/implementation-contributed/v8/mjsunit/compiler/regress-884052.js @@ -0,0 +1,16 @@ +// Copyright 2018 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 foo() { + var a = new Array(2); + for (var i = 1; i > -1; i = i - 2) { + if (i < a.length) a = new Array(i); + } +} + +foo(); +%OptimizeFunctionOnNextCall(foo); +foo(); diff --git a/implementation-contributed/v8/mjsunit/regress/regress-crbug-884933.js b/implementation-contributed/v8/mjsunit/regress/regress-crbug-884933.js new file mode 100644 index 0000000000..447d303bbf --- /dev/null +++ b/implementation-contributed/v8/mjsunit/regress/regress-crbug-884933.js @@ -0,0 +1,85 @@ +// Copyright 2018 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 + +// Test Uint8 -> Word64 conversions. +(function() { + function bar(x, y) { + return x + y; + } + + bar(0.1, 0.2); + bar(0.1, 0.2); + + function foo(dv) { + return bar(dv.getUint8(0, true), 0xFFFFFFFF); + } + + const dv = new DataView(new ArrayBuffer(8)); + assertEquals(0xFFFFFFFF, foo(dv)); + assertEquals(0xFFFFFFFF, foo(dv)); + %OptimizeFunctionOnNextCall(foo); + assertEquals(0xFFFFFFFF, foo(dv)); +})(); + +// Test Int8 -> Word64 conversions. +(function() { + function bar(x, y) { + return x + y; + } + + bar(0.1, 0.2); + bar(0.1, 0.2); + + function foo(dv) { + return bar(dv.getInt8(0, true), 0xFFFFFFFF); + } + + const dv = new DataView(new ArrayBuffer(8)); + assertEquals(0xFFFFFFFF, foo(dv)); + assertEquals(0xFFFFFFFF, foo(dv)); + %OptimizeFunctionOnNextCall(foo); + assertEquals(0xFFFFFFFF, foo(dv)); +})(); + +// Test Uint16 -> Word64 conversions. +(function() { + function bar(x, y) { + return x + y; + } + + bar(0.1, 0.2); + bar(0.1, 0.2); + + function foo(dv) { + return bar(dv.getUint16(0, true), 0xFFFFFFFF); + } + + const dv = new DataView(new ArrayBuffer(8)); + assertEquals(0xFFFFFFFF, foo(dv)); + assertEquals(0xFFFFFFFF, foo(dv)); + %OptimizeFunctionOnNextCall(foo); + assertEquals(0xFFFFFFFF, foo(dv)); +})(); + +// Test Int16 -> Word64 conversions. +(function() { + function bar(x, y) { + return x + y; + } + + bar(0.1, 0.2); + bar(0.1, 0.2); + + function foo(dv) { + return bar(dv.getInt16(0, true), 0xFFFFFFFF); + } + + const dv = new DataView(new ArrayBuffer(8)); + assertEquals(0xFFFFFFFF, foo(dv)); + assertEquals(0xFFFFFFFF, foo(dv)); + %OptimizeFunctionOnNextCall(foo); + assertEquals(0xFFFFFFFF, foo(dv)); +})();