summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/regress
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/regress')
-rw-r--r--deps/v8/test/mjsunit/regress/regress-319722-ArrayBuffer.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-319722-TypedArrays.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-3255.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-4271.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-4279.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-707066.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-8133-1.js16
-rw-r--r--deps/v8/test/mjsunit/regress/regress-8133-2.js17
-rw-r--r--deps/v8/test/mjsunit/regress/regress-821368.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-8237.js57
-rw-r--r--deps/v8/test/mjsunit/regress/regress-8265.js12
-rw-r--r--deps/v8/test/mjsunit/regress/regress-8449.js25
-rw-r--r--deps/v8/test/mjsunit/regress/regress-883059.js7
-rw-r--r--deps/v8/test/mjsunit/regress/regress-889722.js11
-rw-r--r--deps/v8/test/mjsunit/regress/regress-890553.js11
-rw-r--r--deps/v8/test/mjsunit/regress/regress-892858.js (renamed from deps/v8/test/mjsunit/regress/regress-2185.js)14
-rw-r--r--deps/v8/test/mjsunit/regress/regress-arrow-single-expression-eval.js5
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-380671.js14
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-503578.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-503698.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-503968.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-503991.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-504136.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-504727.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-504729.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-505778.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-506549.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-511880.js4
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-514081.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-518747.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-522496.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-687063.js31
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-722871.js2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-876443.js9
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-878845.js11
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-879560.js14
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-879898.js12
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-880207.js37
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-882233-1.js17
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-882233-2.js32
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-884933.js85
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-885404.js11
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-887891.js10
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-888825.js5
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-890243.js27
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-891627.js43
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-892472-1.js9
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-892472-2.js7
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-897514.js26
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-899524.js33
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-90771.js15
-rw-r--r--deps/v8/test/mjsunit/regress/regress-splice-large-index.js41
-rw-r--r--deps/v8/test/mjsunit/regress/regress-v8-7682.js8
-rw-r--r--deps/v8/test/mjsunit/regress/wasm/regress-801850.js2
-rw-r--r--deps/v8/test/mjsunit/regress/wasm/regress-803427.js2
-rw-r--r--deps/v8/test/mjsunit/regress/wasm/regress-8059.js2
-rw-r--r--deps/v8/test/mjsunit/regress/wasm/regress-808012.js2
-rw-r--r--deps/v8/test/mjsunit/regress/wasm/regress-808848.js2
-rw-r--r--deps/v8/test/mjsunit/regress/wasm/regress-8094.js30
-rw-r--r--deps/v8/test/mjsunit/regress/wasm/regress-8095.js25
-rw-r--r--deps/v8/test/mjsunit/regress/wasm/regress-810973.js5
-rw-r--r--deps/v8/test/mjsunit/regress/wasm/regress-810973b.js1209
62 files changed, 1898 insertions, 97 deletions
diff --git a/deps/v8/test/mjsunit/regress/regress-319722-ArrayBuffer.js b/deps/v8/test/mjsunit/regress/regress-319722-ArrayBuffer.js
index 9a24fc5c7c..4a48a61ab3 100644
--- a/deps/v8/test/mjsunit/regress/regress-319722-ArrayBuffer.js
+++ b/deps/v8/test/mjsunit/regress/regress-319722-ArrayBuffer.js
@@ -26,7 +26,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --nostress-opt --allow-natives-syntax --mock-arraybuffer-allocator
-var maxSize = %_MaxSmi() + 1;
+var maxSize = %MaxSmi() + 1;
var ab;
// Allocate the largest ArrayBuffer we can on this architecture.
diff --git a/deps/v8/test/mjsunit/regress/regress-319722-TypedArrays.js b/deps/v8/test/mjsunit/regress/regress-319722-TypedArrays.js
index e497aecbe0..0445e2d2cf 100644
--- a/deps/v8/test/mjsunit/regress/regress-319722-TypedArrays.js
+++ b/deps/v8/test/mjsunit/regress/regress-319722-TypedArrays.js
@@ -27,7 +27,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --nostress-opt --allow-natives-syntax
-var maxSize = %_MaxSmi() + 1;
+var maxSize = %MaxSmi() + 1;
function TestArray(constr) {
assertThrows(function() {
new constr(maxSize);
diff --git a/deps/v8/test/mjsunit/regress/regress-3255.js b/deps/v8/test/mjsunit/regress/regress-3255.js
index 0e77435374..0c5ee4ff00 100644
--- a/deps/v8/test/mjsunit/regress/regress-3255.js
+++ b/deps/v8/test/mjsunit/regress/regress-3255.js
@@ -16,4 +16,4 @@ f(str, 0);
f(str, 0);
// This is just to trigger elements validation, object already broken.
-%SetProperty(str, 1, 'y', 0);
+%SetKeyedProperty(str, 1, 'y', 0);
diff --git a/deps/v8/test/mjsunit/regress/regress-4271.js b/deps/v8/test/mjsunit/regress/regress-4271.js
index bc18771e72..5b724b01b6 100644
--- a/deps/v8/test/mjsunit/regress/regress-4271.js
+++ b/deps/v8/test/mjsunit/regress/regress-4271.js
@@ -17,7 +17,7 @@ if (this.Worker) {
});
// Don't throw for real worker
- var worker = new Worker('');
+ var worker = new Worker('', {type: 'string'});
worker.getMessage();
worker.postMessage({});
worker.terminate();
diff --git a/deps/v8/test/mjsunit/regress/regress-4279.js b/deps/v8/test/mjsunit/regress/regress-4279.js
index 64ef967d89..ddc272793e 100644
--- a/deps/v8/test/mjsunit/regress/regress-4279.js
+++ b/deps/v8/test/mjsunit/regress/regress-4279.js
@@ -4,7 +4,7 @@
if (this.Worker && this.quit) {
try {
- new Function(new Worker("55"));
+ new Function(new Worker("55"), {type: 'string'});
} catch(err) {}
quit();
diff --git a/deps/v8/test/mjsunit/regress/regress-707066.js b/deps/v8/test/mjsunit/regress/regress-707066.js
index b33b585ebd..b5d70c2e6b 100644
--- a/deps/v8/test/mjsunit/regress/regress-707066.js
+++ b/deps/v8/test/mjsunit/regress/regress-707066.js
@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
-// Flags: --harmony-function-tostring
-
// There was a bug in CreateDynamicFunction where a stack overflow
// situation caused an assertion failure.
diff --git a/deps/v8/test/mjsunit/regress/regress-8133-1.js b/deps/v8/test/mjsunit/regress/regress-8133-1.js
new file mode 100644
index 0000000000..8f3cc734a6
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-8133-1.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.
+
+const arr = [1, , 3];
+
+function mapper(x) {
+ Array.prototype[1] = 2;
+ return x + 1;
+}
+
+// This iterates over arr using the iterator protocol, which turns the hole into
+// undefined. The mapper function then gets called in a separate iteration over
+// the acquired elements, where it increments undefined, which produces NaN and
+// gets converted to 0.
+assertArrayEquals([2, 0, 4], Uint16Array.from(arr, mapper));
diff --git a/deps/v8/test/mjsunit/regress/regress-8133-2.js b/deps/v8/test/mjsunit/regress/regress-8133-2.js
new file mode 100644
index 0000000000..e163e3c784
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-8133-2.js
@@ -0,0 +1,17 @@
+// 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.
+
+const arr = [1, , 3];
+
+function mapper(x) {
+ Array.prototype[1] = 2;
+ return x + 1;
+}
+
+// We force a direct iteration (using the array length, not the iterator
+// protocol). The mapper function gets called during this iteration, not in a
+// separate one. Hence when index 1 is read, 2 is retrieved from the prototype
+// and incremented to 3.
+Array.prototype[Symbol.iterator] = undefined;
+assertArrayEquals([2, 3, 4], Uint16Array.from(arr, mapper));
diff --git a/deps/v8/test/mjsunit/regress/regress-821368.js b/deps/v8/test/mjsunit/regress/regress-821368.js
index b41261d7c9..8f8a01b3f7 100644
--- a/deps/v8/test/mjsunit/regress/regress-821368.js
+++ b/deps/v8/test/mjsunit/regress/regress-821368.js
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-const worker = new Worker("onmessage = function(){}");
+const worker = new Worker("onmessage = function(){}", {type: 'string'});
const buffer = new ArrayBuffer();
worker.postMessage(buffer, [buffer]);
try {
diff --git a/deps/v8/test/mjsunit/regress/regress-8237.js b/deps/v8/test/mjsunit/regress/regress-8237.js
new file mode 100644
index 0000000000..c3abd17e8a
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-8237.js
@@ -0,0 +1,57 @@
+// 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 --no-always-opt
+// Files: test/mjsunit/code-coverage-utils.js
+
+%DebugToggleBlockCoverage(true);
+
+TestCoverage(
+"Repro for the bug",
+`
+function lib (n) { // 0000
+ if (n >= 0) { // 0050
+ if (n < 0) { // 0100
+ return; // 0150
+ } // 0200
+ } else if (foo()) { // 0250
+ } // 0300
+} // 0350
+function foo () { // 0400
+ console.log('foo') // 0450
+ return false // 0500
+} // 0550
+lib(1) // 0600
+`,
+[{"start":0,"end":649,"count":1},
+{"start":0,"end":351,"count":1},
+{"start":115,"end":205,"count":0},
+{"start":253,"end":303,"count":0},
+{"start":400,"end":551,"count":0}]
+);
+
+TestCoverage(
+"Variant with omitted brackets",
+`
+function lib (n) { // 0000
+ if (n >= 0) { // 0050
+ if (n < 0) // 0100
+ return; // 0150
+ } // 0200
+ else if (foo()); // 0250
+} // 0300
+function foo () { // 0350
+ console.log('foo') // 0400
+ return false // 0450
+} // 0500
+lib(1) // 0550
+`,
+[{"start":0,"end":599,"count":1},
+{"start":0,"end":301,"count":1},
+{"start":156,"end":163,"count":0},
+{"start":203,"end":268,"count":0},
+{"start":350,"end":501,"count":0}]
+);
+
+%DebugToggleBlockCoverage(false);
diff --git a/deps/v8/test/mjsunit/regress/regress-8265.js b/deps/v8/test/mjsunit/regress/regress-8265.js
new file mode 100644
index 0000000000..ffe6191c9f
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-8265.js
@@ -0,0 +1,12 @@
+// 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: --random-seed=1
+
+for (let i = 0; i < 54; ++i) Math.random();
+let sum = 0;
+for (let i = 0; i < 10; ++i)
+ sum += Math.floor(Math.random() * 50);
+
+assertNotEquals(0, sum);
diff --git a/deps/v8/test/mjsunit/regress/regress-8449.js b/deps/v8/test/mjsunit/regress/regress-8449.js
new file mode 100644
index 0000000000..32fa82aa6e
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-8449.js
@@ -0,0 +1,25 @@
+// 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.
+
+{
+ const x = [, 1];
+ x.__proto__ = [42];
+ const y = [...x];
+ assertEquals([42, 1], y);
+ assertTrue(y.hasOwnProperty(0));
+}
+
+{
+ const x = [, 1];
+ x.__proto__ = [42];
+ assertEquals(42, x[Symbol.iterator]().next().value);
+}
+
+{
+ const array_prototype = [].__proto__;
+ array_prototype[0] = 42;
+ const x = [, 1];
+ assertEquals(42, x[Symbol.iterator]().next().value);
+ delete array_prototype[0];
+}
diff --git a/deps/v8/test/mjsunit/regress/regress-883059.js b/deps/v8/test/mjsunit/regress/regress-883059.js
new file mode 100644
index 0000000000..ed70feddb4
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-883059.js
@@ -0,0 +1,7 @@
+// 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: --random-seed=-1595876594 --disable-in-process-stack-traces --no-lazy
+
+var __v_47 = ({[__v_46]: __f_52}) => { var __v_46 = 'b'; return __f_52; };
diff --git a/deps/v8/test/mjsunit/regress/regress-889722.js b/deps/v8/test/mjsunit/regress/regress-889722.js
new file mode 100644
index 0000000000..c883dbe489
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-889722.js
@@ -0,0 +1,11 @@
+// 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.
+
+function getRandomProperty(v, rand) {
+ var properties = Object.getOwnPropertyNames(v);
+ return properties[rand % properties.length];
+}
+r = Realm.create();
+o = Realm.eval(r, "() => { return Realm.global(-10) instanceof Object }");
+o.__p_211203344 = o[getRandomProperty(o, 211203344)];
diff --git a/deps/v8/test/mjsunit/regress/regress-890553.js b/deps/v8/test/mjsunit/regress/regress-890553.js
new file mode 100644
index 0000000000..33f13e8f26
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-890553.js
@@ -0,0 +1,11 @@
+// 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.
+
+"use strict";
+var s = "function __f_9(func, testName) {" +
+ "var __v_0 = function __f_10(__v_14, __v_14) {" +
+ " return __v_16;" +
+ "}; " +
+"}"
+assertThrows(function() { eval(s); });
diff --git a/deps/v8/test/mjsunit/regress/regress-2185.js b/deps/v8/test/mjsunit/regress/regress-892858.js
index 9b91066f33..ec921e3d43 100644
--- a/deps/v8/test/mjsunit/regress/regress-2185.js
+++ b/deps/v8/test/mjsunit/regress/regress-892858.js
@@ -1,4 +1,4 @@
-// Copyright 2012 the V8 project authors. All rights reserved.
+// Copyright 2018 the V8 project authors. All rights reserved.
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
@@ -25,14 +25,8 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// Flags: --noenable-slow-asserts
-
-var a = [];
-
-for (var i = 0; i < 2; i++) {
- for (var j = 0; j < 30000; j++) {
- a.push(j);
- }
+async function foo() {
+ await Promise.resolve(42);
}
-a.sort(function(a, b) { return a - b; } );
+foo();
diff --git a/deps/v8/test/mjsunit/regress/regress-arrow-single-expression-eval.js b/deps/v8/test/mjsunit/regress/regress-arrow-single-expression-eval.js
new file mode 100644
index 0000000000..83a9ca1a56
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-arrow-single-expression-eval.js
@@ -0,0 +1,5 @@
+// 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.
+
+((x=1) => eval("var x = 10"))();
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-380671.js b/deps/v8/test/mjsunit/regress/regress-crbug-380671.js
deleted file mode 100644
index e2909e0a43..0000000000
--- a/deps/v8/test/mjsunit/regress/regress-crbug-380671.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2015 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: --mock-arraybuffer-allocator --expose-gc
-
-var buffer = new ArrayBuffer(0xc0000000);
-assertEquals(0xc0000000, buffer.byteLength);
-// We call the GC here to free up the large array buffer. Otherwise, the
-// mock allocator would allow us to allocate more than the physical memory
-// available on 32bit platforms, leaving the internal counters in an invalid
-// state.
-buffer = null;
-gc();
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-503578.js b/deps/v8/test/mjsunit/regress/regress-crbug-503578.js
index 1274d91ffe..59c33da20e 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-503578.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-503578.js
@@ -8,7 +8,7 @@ if (this.Worker) {
var __v_5 = new Uint32Array(__v_1);
return __v_5;
}
- var __v_6 = new Worker('onmessage = function() {}');
+ var __v_6 = new Worker('onmessage = function() {}', {type: 'string'});
var __v_3 = __f_0(16);
__v_6.postMessage(__v_3);
}
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-503698.js b/deps/v8/test/mjsunit/regress/regress-crbug-503698.js
index 415d1bc81b..c817bede29 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-503698.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-503698.js
@@ -5,5 +5,5 @@
// Flags: --invoke-weak-callbacks
if (this.Worker) {
- var __v_6 = new Worker('');
+ var __v_6 = new Worker('', {type: 'string'});
}
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-503968.js b/deps/v8/test/mjsunit/regress/regress-crbug-503968.js
index 78d1c7b98a..0552163144 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-503968.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-503968.js
@@ -8,6 +8,6 @@ if (this.Worker) {
this.l = [new __f_0, new __f_0];
}
__v_6 = new __f_1;
- var __v_9 = new Worker('');
+ var __v_9 = new Worker('', {type: 'string'});
__v_9.postMessage(__v_6);
}
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-503991.js b/deps/v8/test/mjsunit/regress/regress-crbug-503991.js
index 6a3b0de759..7b96e92677 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-503991.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-503991.js
@@ -4,6 +4,6 @@
if (this.Worker) {
__v_3 = "";
- var __v_6 = new Worker('');
+ var __v_6 = new Worker('', {type: 'string'});
__v_6.postMessage(__v_3);
}
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-504136.js b/deps/v8/test/mjsunit/regress/regress-crbug-504136.js
index 4ed6843544..25b11e0fec 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-504136.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-504136.js
@@ -3,7 +3,7 @@
// found in the LICENSE file.
if (this.Worker) {
- var __v_10 = new Worker('');
+ var __v_10 = new Worker('', {type: 'string'});
__v_10.terminate();
__v_10.getMessage();
}
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-504727.js b/deps/v8/test/mjsunit/regress/regress-crbug-504727.js
index 16d8ff16cd..a295a1bd35 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-504727.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-504727.js
@@ -5,5 +5,5 @@
// Flags: --no-test
if (this.Worker) {
- var __v_2 = new Worker('');
+ var __v_2 = new Worker('', {type: 'string'});
}
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-504729.js b/deps/v8/test/mjsunit/regress/regress-crbug-504729.js
index 435cafee87..8b1f8b0899 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-504729.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-504729.js
@@ -5,5 +5,5 @@
if (this.Worker) {
Function.prototype.toString = "foo";
function __f_7() {}
- assertThrows(function() { var __v_5 = new Worker(__f_7.toString()); });
+ assertThrows(function() { var __v_5 = new Worker(__f_7.toString(), {type: 'string'}) });
}
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-505778.js b/deps/v8/test/mjsunit/regress/regress-crbug-505778.js
index 74d96ab094..3d87ba6982 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-505778.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-505778.js
@@ -3,6 +3,6 @@
// found in the LICENSE file.
if (this.Worker) {
- var __v_7 = new Worker('onmessage = function() {}');
+ var __v_7 = new Worker('onmessage = function() {}', {type: 'string'});
__v_7.postMessage("");
}
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-506549.js b/deps/v8/test/mjsunit/regress/regress-crbug-506549.js
index 40e162caf5..219fd10cb7 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-506549.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-506549.js
@@ -5,6 +5,6 @@
if (this.Worker) {
var __v_5 = {};
__v_5.__defineGetter__('byteLength', function() {foo();});
- var __v_8 = new Worker('onmessage = function() {};');
+ var __v_8 = new Worker('onmessage = function() {};', {type: 'string'});
assertThrows(function() { __v_8.postMessage(__v_5); });
}
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-511880.js b/deps/v8/test/mjsunit/regress/regress-crbug-511880.js
index f9b05ff7bc..5dceb2a733 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-511880.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-511880.js
@@ -4,10 +4,10 @@
if (this.Worker) {
var __v_8 =
- `var __v_9 = new Worker('postMessage(42)');
+ `var __v_9 = new Worker('postMessage(42)', {type: 'string'});
onmessage = function(parentMsg) {
__v_9.postMessage(parentMsg);
};`;
- var __v_9 = new Worker(__v_8);
+ var __v_9 = new Worker(__v_8, {type: 'string'});
__v_9.postMessage(9);
}
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-514081.js b/deps/v8/test/mjsunit/regress/regress-crbug-514081.js
index ee3ed81300..3d99b4586b 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-514081.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-514081.js
@@ -3,7 +3,7 @@
// found in the LICENSE file.
if (this.Worker) {
- var __v_7 = new Worker('onmessage = function() {};');
+ var __v_7 = new Worker('onmessage = function() {};', {type: 'string'});
var e;
var ab = new ArrayBuffer(2 * 1000 * 1000);
try {
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-518747.js b/deps/v8/test/mjsunit/regress/regress-crbug-518747.js
index f1787c4c4b..2a4058d401 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-518747.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-518747.js
@@ -4,6 +4,6 @@
if (this.Worker) {
Worker.prototype = 12;
- var __v_6 = new Worker('');
+ var __v_6 = new Worker('', {type: 'string'});
__v_6.postMessage([]);
}
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-522496.js b/deps/v8/test/mjsunit/regress/regress-crbug-522496.js
index e47e0a0677..4dea5a89ac 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-522496.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-522496.js
@@ -3,7 +3,7 @@
// found in the LICENSE file.
if (this.Worker) {
- var worker = new Worker("onmessage = function(){}");
+ var worker = new Worker("onmessage = function(){}", {type: 'string'});
var buf = new ArrayBuffer();
worker.postMessage(buf, [buf]);
}
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-687063.js b/deps/v8/test/mjsunit/regress/regress-crbug-687063.js
new file mode 100644
index 0000000000..8c579331fb
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-687063.js
@@ -0,0 +1,31 @@
+// 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
+
+// Collect the actual properties looked up on the Proxy.
+const actual = [];
+
+// Perform a relational comparison with a Proxy on the right hand
+// side and a Symbol which cannot be turned into a Number on the
+// left hand side.
+function foo() {
+ actual.length = 0;
+ const lhs = Symbol();
+ const rhs = new Proxy({}, {
+ get: function(target, property, receiver) {
+ actual.push(property);
+ return undefined;
+ }
+ });
+ return lhs < rhs;
+}
+
+assertThrows(foo, TypeError);
+assertEquals([Symbol.toPrimitive, 'valueOf', 'toString'], actual);
+assertThrows(foo, TypeError);
+assertEquals([Symbol.toPrimitive, 'valueOf', 'toString'], actual);
+%OptimizeFunctionOnNextCall(foo);
+assertThrows(foo, TypeError);
+assertEquals([Symbol.toPrimitive, 'valueOf', 'toString'], actual);
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-722871.js b/deps/v8/test/mjsunit/regress/regress-crbug-722871.js
index c5b7958f49..e71f083be6 100644
--- a/deps/v8/test/mjsunit/regress/regress-crbug-722871.js
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-722871.js
@@ -7,7 +7,7 @@ let workers = [];
let runningWorkers = 0;
function startWorker(script) {
- let worker = new Worker(script);
+ let worker = new Worker(script, {type: 'string'});
worker.done = false;
worker.idx = workers.length;
workers.push(worker);
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-876443.js b/deps/v8/test/mjsunit/regress/regress-crbug-876443.js
new file mode 100644
index 0000000000..33ffa020f3
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-876443.js
@@ -0,0 +1,9 @@
+// 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:
+
+var a = [5.65];
+a.splice(0);
+var b = a.splice(-4, 9, 10);
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-878845.js b/deps/v8/test/mjsunit/regress/regress-crbug-878845.js
new file mode 100644
index 0000000000..2913f9e849
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-878845.js
@@ -0,0 +1,11 @@
+// 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.
+
+let arr = [, 0.1];
+
+Array.prototype.lastIndexOf.call(arr, 100, {
+ valueOf() {
+ arr.length = 0;
+ }
+});
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-879560.js b/deps/v8/test/mjsunit/regress/regress-crbug-879560.js
new file mode 100644
index 0000000000..a17deadfcd
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-879560.js
@@ -0,0 +1,14 @@
+// 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 x = 1;
+ x = undefined;
+ while (x--) ;
+}
+foo();
+%OptimizeFunctionOnNextCall(foo);
+foo();
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-879898.js b/deps/v8/test/mjsunit/regress/regress-crbug-879898.js
new file mode 100644
index 0000000000..c97001ae5c
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-879898.js
@@ -0,0 +1,12 @@
+// 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() {
+ return Symbol.toPrimitive++;
+}
+assertThrows(foo);
+%OptimizeFunctionOnNextCall(foo);
+assertThrows(foo);
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-880207.js b/deps/v8/test/mjsunit/regress/regress-crbug-880207.js
new file mode 100644
index 0000000000..09796a9ff4
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-880207.js
@@ -0,0 +1,37 @@
+// 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 TestOptimizedFastExpm1MinusZero() {
+ function foo() {
+ return Object.is(Math.expm1(-0), -0);
+ }
+
+ assertTrue(foo());
+ %OptimizeFunctionOnNextCall(foo);
+ assertTrue(foo());
+})();
+
+(function TestOptimizedExpm1MinusZeroSlowPath() {
+ function f(x) {
+ return Object.is(Math.expm1(x), -0);
+ }
+
+ function g() {
+ return f(-0);
+ }
+
+ f(0);
+ // Compile function optimistically for numbers (with fast inlined
+ // path for Math.expm1).
+ %OptimizeFunctionOnNextCall(f);
+ // Invalidate the optimistic assumption, deopting and marking non-number
+ // input feedback in the call IC.
+ f("0");
+ // Optimize again, now with non-lowered call to Math.expm1.
+ assertTrue(g());
+ %OptimizeFunctionOnNextCall(g);
+ assertTrue(g());
+})();
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-882233-1.js b/deps/v8/test/mjsunit/regress/regress-crbug-882233-1.js
new file mode 100644
index 0000000000..197660a683
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-882233-1.js
@@ -0,0 +1,17 @@
+// 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.
+
+// Intended to test bug [882233] on CSA fast-path.
+
+let array = [];
+Object.defineProperty(array, 'length', {writable: false});
+
+assertEquals(array.length, 0);
+assertThrows(() => array.shift(), TypeError);
+
+let object = { length: 0 };
+Object.defineProperty(object, 'length', {writable: false});
+
+assertEquals(object.length, 0);
+assertThrows(() => Array.prototype.shift.call(object));
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-882233-2.js b/deps/v8/test/mjsunit/regress/regress-crbug-882233-2.js
new file mode 100644
index 0000000000..565e5fbc23
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-882233-2.js
@@ -0,0 +1,32 @@
+// 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 --opt
+
+// Intended to test bug [882233] on TF inlined (js-call-reducer) path.
+
+function shift_array() {
+ let array = [];
+ Object.defineProperty(array, 'length', {writable : false});
+ return array.shift();
+}
+
+assertThrows(shift_array);
+assertThrows(shift_array);
+%OptimizeFunctionOnNextCall(shift_array);
+assertThrows(shift_array);
+assertOptimized(shift_array);
+
+
+function shift_object() {
+ let object = { length: 0 };
+ Object.defineProperty(object, 'length', {writable : false});
+ return object.shift();
+}
+
+assertThrows(shift_object);
+assertThrows(shift_object);
+%OptimizeFunctionOnNextCall(shift_object);
+assertThrows(shift_object);
+assertOptimized(shift_object);
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-884933.js b/deps/v8/test/mjsunit/regress/regress-crbug-884933.js
new file mode 100644
index 0000000000..447d303bbf
--- /dev/null
+++ b/deps/v8/test/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));
+})();
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-885404.js b/deps/v8/test/mjsunit/regress/regress-crbug-885404.js
new file mode 100644
index 0000000000..534b883a01
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-885404.js
@@ -0,0 +1,11 @@
+// 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: --verify-heap --expose-gc
+
+var ab = new ArrayBuffer(2);
+try { new Int32Array(ab); } catch (e) { }
+assertEquals(2, ab.byteLength);
+gc();
+assertEquals(2, ab.byteLength);
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-887891.js b/deps/v8/test/mjsunit/regress/regress-crbug-887891.js
new file mode 100644
index 0000000000..0e72ab263a
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-887891.js
@@ -0,0 +1,10 @@
+// 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 --verify-heap
+
+const l = 1000000000;
+const a = [];
+function foo() { var x = new Int32Array(l); }
+try { foo(); } catch (e) { }
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-888825.js b/deps/v8/test/mjsunit/regress/regress-crbug-888825.js
new file mode 100644
index 0000000000..9aa52d62e1
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-888825.js
@@ -0,0 +1,5 @@
+// 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.
+
+eval("((a=function g() { function g() {}}) => {})();");
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-890243.js b/deps/v8/test/mjsunit/regress/regress-crbug-890243.js
new file mode 100644
index 0000000000..0d889b2787
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-890243.js
@@ -0,0 +1,27 @@
+// 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
+
+// We need a SpeculativeNumberAdd with Number feedback.
+function bar(x) { return x + x; }
+bar(0.1);
+
+// We also need an indirection via an object field such
+// that only after escape analysis TurboFan can figure
+// out that the value `y` is actually a Number in the
+// safe integer range.
+function baz(y) { return {y}; }
+baz(null); baz(0);
+
+// Now we can put all of that together to get a kRepBit
+// use of a kWord64 value (on 64-bit architectures).
+function foo(o) {
+ return !baz(bar(o.x)).y;
+}
+
+assertFalse(foo({x:1}));
+assertFalse(foo({x:1}));
+%OptimizeFunctionOnNextCall(foo);
+assertFalse(foo({x:1}));
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-891627.js b/deps/v8/test/mjsunit/regress/regress-crbug-891627.js
new file mode 100644
index 0000000000..afe4093c96
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-891627.js
@@ -0,0 +1,43 @@
+// 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
+
+// We need a NumberModulus, so we make sure that we have a
+// SpeculativeNumberModulus with Number feedback, and later
+// on use it with known Number inputs (via the bitwise or),
+// such that JSTypedLowering turns it into the NumberModulus.
+function bar(x) { return x % 2; }
+bar(0.1);
+
+// Check that the Word32->Float64 conversion works properly.
+(function() {
+ function foo(x) {
+ // The NumberEqual identifies 0 and -0.
+ return bar(x | -1) == 4294967295;
+ }
+
+ assertFalse(foo(1));
+ assertFalse(foo(0));
+ %OptimizeFunctionOnNextCall(foo);
+ assertFalse(foo(1));
+ assertFalse(foo(0));
+})();
+
+// Check that the Word32->Word32 conversion works properly.
+(function() {
+ function makeFoo(y) {
+ return function foo(x) {
+ return bar(x | -1) == y;
+ }
+ }
+ makeFoo(0); // Defeat the function context specialization.
+ const foo = makeFoo(1);
+
+ assertFalse(foo(1));
+ assertFalse(foo(0));
+ %OptimizeFunctionOnNextCall(foo);
+ assertFalse(foo(1));
+ assertFalse(foo(0));
+})();
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-892472-1.js b/deps/v8/test/mjsunit/regress/regress-crbug-892472-1.js
new file mode 100644
index 0000000000..d6332fd399
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-892472-1.js
@@ -0,0 +1,9 @@
+// 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: --async-stack-traces
+
+const a = /x/;
+a.exec = RegExp.prototype.test;
+assertThrows(() => RegExp.prototype.test.call(a));
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-892472-2.js b/deps/v8/test/mjsunit/regress/regress-crbug-892472-2.js
new file mode 100644
index 0000000000..0f9a2c1816
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-892472-2.js
@@ -0,0 +1,7 @@
+// 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: --async-stack-traces
+
+assertThrows(_ => '' + {toString: Object.prototype.toLocaleString});
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-897514.js b/deps/v8/test/mjsunit/regress/regress-crbug-897514.js
new file mode 100644
index 0000000000..822a6bcf5e
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-897514.js
@@ -0,0 +1,26 @@
+// 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
+
+// Create transtion => 'get a'.
+let o = {};
+Object.defineProperty(o, 'a', {
+ enumerable: true,
+ configurable: true,
+ get: function() { return 7 }
+});
+
+function spread(o) {
+ let result = { ...o };
+ %HeapObjectVerify(result);
+ return result;
+}
+
+for (let i = 0; i<3; i++) {
+ spread([]);
+ // Use different transition => 'a'.
+ spread({ a:0 });
+ spread("abc");
+}
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-899524.js b/deps/v8/test/mjsunit/regress/regress-crbug-899524.js
new file mode 100644
index 0000000000..32d28c9b09
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-899524.js
@@ -0,0 +1,33 @@
+// 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 empty() { }
+
+function baz(expected, found) {
+ var start = "";
+ found.length, start + 'x';
+ if (expected.length === found.length) {
+ for (var i = 0; i < expected.length; ++i) {
+ empty(found[i]);
+ }
+ }
+}
+
+baz([1], new (class A extends Array {}));
+
+(function () {
+ "use strict";
+ function bar() {
+ baz([1,2], arguments);
+ }
+ function foo() {
+ bar(2147483648,-[]);
+ }
+ foo();
+ foo();
+ %OptimizeFunctionOnNextCall(foo);
+ foo();
+})();
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-90771.js b/deps/v8/test/mjsunit/regress/regress-crbug-90771.js
new file mode 100644
index 0000000000..b541ff8cc2
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-90771.js
@@ -0,0 +1,15 @@
+// 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 target() {};
+
+for (let key of Object.getOwnPropertyNames(this)) {
+ try {
+ let newTarget = this[key];
+ let arg = target;
+ Reflect.construct(target, arg, newTarget);
+ } catch {}
+}
diff --git a/deps/v8/test/mjsunit/regress/regress-splice-large-index.js b/deps/v8/test/mjsunit/regress/regress-splice-large-index.js
deleted file mode 100644
index 1f4eb9ce59..0000000000
--- a/deps/v8/test/mjsunit/regress/regress-splice-large-index.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2013 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived
-// from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-var a = [];
-a[0xfffffffe] = 10;
-assertThrows("a.unshift(1);", RangeError);
-assertEquals(0xffffffff, a.length);
-assertEquals(10, a[0xffffffff]);
-assertEquals(0xffffffff, a.length);
-assertEquals(undefined, a[0xfffffffe]);
-
-a = [1,2,3];
-a[0xfffffffe] = 10;
-assertThrows("a.splice(1,1,7,7,7,7,7);", RangeError);
-assertEquals([1,7,7,7,7,7,3], a.slice(0, 7));
-assertEquals(0xffffffff, a.length);
-assertEquals(10, a[0xfffffffe + 5 - 1]);
diff --git a/deps/v8/test/mjsunit/regress/regress-v8-7682.js b/deps/v8/test/mjsunit/regress/regress-v8-7682.js
index 4f9b2e7d60..86f12f5b74 100644
--- a/deps/v8/test/mjsunit/regress/regress-v8-7682.js
+++ b/deps/v8/test/mjsunit/regress/regress-v8-7682.js
@@ -18,5 +18,9 @@ class MyArrayLike {
const xs = new MyArrayLike();
Array.prototype.sort.call(xs);
-assertEquals(1, xs[0]);
-assertEquals(2, xs[1]);
+// Sort-order is implementation-defined as we actually hit two conditions from
+// the spec:
+// - "xs" is sparse and IsExtensible(xs) is false (its frozen).
+// - "xs" is sparse and the prototype has properties in the sort range.
+assertEquals(2, xs[0]);
+assertEquals(1, xs[1]);
diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-801850.js b/deps/v8/test/mjsunit/regress/wasm/regress-801850.js
index ad6ff4c432..b56af694a9 100644
--- a/deps/v8/test/mjsunit/regress/wasm/regress-801850.js
+++ b/deps/v8/test/mjsunit/regress/wasm/regress-801850.js
@@ -7,5 +7,5 @@ load('test/mjsunit/wasm/wasm-module-builder.js');
var builder = new WasmModuleBuilder();
let module = new WebAssembly.Module(builder.toBuffer());
-var worker = new Worker('onmessage = function() {};');
+var worker = new Worker('onmessage = function() {};', {type: 'string'});
worker.postMessage(module)
diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-803427.js b/deps/v8/test/mjsunit/regress/wasm/regress-803427.js
index 833b140fd4..d3ab31b4c9 100644
--- a/deps/v8/test/mjsunit/regress/wasm/regress-803427.js
+++ b/deps/v8/test/mjsunit/regress/wasm/regress-803427.js
@@ -9,5 +9,5 @@ load('test/mjsunit/wasm/wasm-module-builder.js');
var builder = new WasmModuleBuilder();
let module = new WebAssembly.Module(builder.toBuffer());
-var worker = new Worker('onmessage = function() {};');
+var worker = new Worker('onmessage = function() {};', {type: 'string'});
worker.postMessage(module)
diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-8059.js b/deps/v8/test/mjsunit/regress/wasm/regress-8059.js
index 5c421c4ee4..c30ed152f8 100644
--- a/deps/v8/test/mjsunit/regress/wasm/regress-8059.js
+++ b/deps/v8/test/mjsunit/regress/wasm/regress-8059.js
@@ -31,7 +31,7 @@ load("test/mjsunit/wasm/wasm-module-builder.js");
Realm.shared = { m:module, s:workerScript };
let realmScript = `
- let worker = new Worker(Realm.shared.s);
+ let worker = new Worker(Realm.shared.s, {type: 'string'});
worker.postMessage(Realm.shared.m);
let message = worker.getMessage();
worker.terminate();
diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-808012.js b/deps/v8/test/mjsunit/regress/wasm/regress-808012.js
index 1b91f226a8..ae613ceb54 100644
--- a/deps/v8/test/mjsunit/regress/wasm/regress-808012.js
+++ b/deps/v8/test/mjsunit/regress/wasm/regress-808012.js
@@ -10,5 +10,5 @@ load('test/mjsunit/wasm/wasm-module-builder.js');
const builder = new WasmModuleBuilder();
builder.addFunction('test', kSig_i_i).addBody([kExprUnreachable]);
let module = new WebAssembly.Module(builder.toBuffer());
-var worker = new Worker('onmessage = function() {};');
+var worker = new Worker('onmessage = function() {};', {type: 'string'});
worker.postMessage(module);
diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-808848.js b/deps/v8/test/mjsunit/regress/wasm/regress-808848.js
index 69423b954d..bcf8469a14 100644
--- a/deps/v8/test/mjsunit/regress/wasm/regress-808848.js
+++ b/deps/v8/test/mjsunit/regress/wasm/regress-808848.js
@@ -60,7 +60,7 @@ let worker_onmessage = function(msg) {
}
let workerScript = "onmessage = " + worker_onmessage.toString();
-let worker = new Worker(workerScript);
+let worker = new Worker(workerScript, {type: 'string'});
worker.postMessage({serialized_m1, m1_bytes});
// Wait for worker to finish.
diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-8094.js b/deps/v8/test/mjsunit/regress/wasm/regress-8094.js
new file mode 100644
index 0000000000..a35d583a4a
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/wasm/regress-8094.js
@@ -0,0 +1,30 @@
+// 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: --expose-wasm --experimental-wasm-eh
+
+load("test/mjsunit/wasm/wasm-constants.js");
+load("test/mjsunit/wasm/wasm-module-builder.js");
+
+// Instantiate a throwing module.
+var builder = new WasmModuleBuilder();
+builder.addException(kSig_v_v);
+builder.addFunction("propel", kSig_v_v)
+ .addBody([kExprThrow, 0])
+ .exportFunc();
+var instance = builder.instantiate();
+
+// Catch the exception.
+var exception;
+try {
+ instance.exports.propel();
+} catch (e) {
+ exception = e;
+}
+
+// Check that the exception is an instance of the correct error function and
+// that no extraneous properties exist. Setting such properties could be
+// observable by JavaScript and could break compatibility.
+assertInstanceof(exception, WebAssembly.RuntimeError);
+assertArrayEquals(["stack", "message"], Object.getOwnPropertyNames(exception));
diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-8095.js b/deps/v8/test/mjsunit/regress/wasm/regress-8095.js
new file mode 100644
index 0000000000..66ffc0d4b7
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/wasm/regress-8095.js
@@ -0,0 +1,25 @@
+// 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: --expose-wasm --experimental-wasm-eh
+
+load("test/mjsunit/wasm/wasm-constants.js");
+load("test/mjsunit/wasm/wasm-module-builder.js");
+
+// Prepare a special error object to throw.
+var error = new Error("my error");
+error.__proto__ = new Proxy(new Error(), {
+ has(target, property, receiver) {
+ assertUnreachable();
+ }
+});
+
+// Throw it through a WebAssembly module.
+var builder = new WasmModuleBuilder();
+builder.addImport('mod', 'fun', kSig_v_v);
+builder.addFunction("funnel", kSig_v_v)
+ .addBody([kExprCallFunction, 0])
+ .exportFunc();
+var instance = builder.instantiate({ mod: {fun: function() { throw error }}});
+assertThrows(instance.exports.funnel, Error);
diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-810973.js b/deps/v8/test/mjsunit/regress/wasm/regress-810973.js
index 5a776884ee..bd3d902772 100644
--- a/deps/v8/test/mjsunit/regress/wasm/regress-810973.js
+++ b/deps/v8/test/mjsunit/regress/wasm/regress-810973.js
@@ -12,7 +12,7 @@ function MjsUnitAssertionError() {
};
let __v_692 = `(function module() { "use asm";function foo(`;
const __v_693 =
-3695;
+1005;
for (let __v_695 = 0; __v_695 < __v_693; ++__v_695) {
__v_692 += `arg${__v_695},`;
}
@@ -28,5 +28,6 @@ for (let __v_697 = 0; __v_697 < __v_693; ++__v_697) {
}
__v_692 += "1.0)|0;}";
- __v_692 += "return bar})()()";
+__v_692 += "return bar})()()";
+
const __v_694 = eval(__v_692);
diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-810973b.js b/deps/v8/test/mjsunit/regress/wasm/regress-810973b.js
new file mode 100644
index 0000000000..227bf55fc0
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/wasm/regress-810973b.js
@@ -0,0 +1,1209 @@
+// 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.
+
+(function module() {
+ "use asm";
+ function foo(
+ a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11,
+ a12, a13, a14, a15, a16, a17, a18, a19, a20, a21,
+ a22, a23, a24, a25, a26, a27, a28, a29, a30, a31,
+ a32, a33, a34, a35, a36, a37, a38, a39, a40, a41,
+ a42, a43, a44, a45, a46, a47, a48, a49, a50, a51,
+ a52, a53, a54, a55, a56, a57, a58, a59, a60, a61,
+ a62, a63, a64, a65, a66, a67, a68, a69, a70, a71,
+ a72, a73, a74, a75, a76, a77, a78, a79, a80, a81,
+ a82, a83, a84, a85, a86, a87, a88, a89, a90, a91,
+ a92, a93, a94, a95, a96, a97, a98, a99, a100, a101,
+ a102, a103, a104, a105, a106, a107, a108, a109, a110,
+ a111, a112, a113, a114, a115, a116, a117, a118, a119,
+ a120, a121, a122, a123, a124, a125, a126, a127, a128,
+ a129, a130, a131, a132, a133, a134, a135, a136, a137,
+ a138, a139, a140, a141, a142, a143, a144, a145, a146,
+ a147, a148, a149, a150, a151, a152, a153, a154, a155,
+ a156, a157, a158, a159, a160, a161, a162, a163, a164,
+ a165, a166, a167, a168, a169, a170, a171, a172, a173,
+ a174, a175, a176, a177, a178, a179, a180, a181, a182,
+ a183, a184, a185, a186, a187, a188, a189, a190, a191,
+ a192, a193, a194, a195, a196, a197, a198, a199, a200,
+ a201, a202, a203, a204, a205, a206, a207, a208, a209,
+ a210, a211, a212, a213, a214, a215, a216, a217, a218,
+ a219, a220, a221, a222, a223, a224, a225, a226, a227,
+ a228, a229, a230, a231, a232, a233, a234, a235, a236,
+ a237, a238, a239, a240, a241, a242, a243, a244, a245,
+ a246, a247, a248, a249, a250, a251, a252, a253, a254,
+ a255, a256, a257, a258, a259, a260, a261, a262, a263,
+ a264, a265, a266, a267, a268, a269, a270, a271, a272,
+ a273, a274, a275, a276, a277, a278, a279, a280, a281,
+ a282, a283, a284, a285, a286, a287, a288, a289, a290,
+ a291, a292, a293, a294, a295, a296, a297, a298, a299,
+ a300, a301, a302, a303, a304, a305, a306, a307, a308,
+ a309, a310, a311, a312, a313, a314, a315, a316, a317,
+ a318, a319, a320, a321, a322, a323, a324, a325, a326,
+ a327, a328, a329, a330, a331, a332, a333, a334, a335,
+ a336, a337, a338, a339, a340, a341, a342, a343, a344,
+ a345, a346, a347, a348, a349, a350, a351, a352, a353,
+ a354, a355, a356, a357, a358, a359, a360, a361, a362,
+ a363, a364, a365, a366, a367, a368, a369, a370, a371,
+ a372, a373, a374, a375, a376, a377, a378, a379, a380,
+ a381, a382, a383, a384, a385, a386, a387, a388, a389,
+ a390, a391, a392, a393, a394, a395, a396, a397, a398,
+ a399, a400, a401, a402, a403, a404, a405, a406, a407,
+ a408, a409, a410, a411, a412, a413, a414, a415, a416,
+ a417, a418, a419, a420, a421, a422, a423, a424, a425,
+ a426, a427, a428, a429, a430, a431, a432, a433, a434,
+ a435, a436, a437, a438, a439, a440, a441, a442, a443,
+ a444, a445, a446, a447, a448, a449, a450, a451, a452,
+ a453, a454, a455, a456, a457, a458, a459, a460, a461,
+ a462, a463, a464, a465, a466, a467, a468, a469, a470,
+ a471, a472, a473, a474, a475, a476, a477, a478, a479,
+ a480, a481, a482, a483, a484, a485, a486, a487, a488,
+ a489, a490, a491, a492, a493, a494, a495, a496, a497,
+ a498, a499, a500, a501, a502, a503, a504, a505, a506,
+ a507, a508, a509, a510, a511, a512, a513, a514, a515,
+ a516, a517, a518, a519, a520, a521, a522, a523, a524,
+ a525, a526, a527, a528, a529, a530, a531, a532, a533,
+ a534, a535, a536, a537, a538, a539, a540, a541, a542,
+ a543, a544, a545, a546, a547, a548, a549, a550, a551,
+ a552, a553, a554, a555, a556, a557, a558, a559, a560,
+ a561, a562, a563, a564, a565, a566, a567, a568, a569,
+ a570, a571, a572, a573, a574, a575, a576, a577, a578,
+ a579, a580, a581, a582, a583, a584, a585, a586, a587,
+ a588, a589, a590, a591, a592, a593, a594, a595, a596,
+ a597, a598, a599, a600, a601, a602, a603, a604, a605,
+ a606, a607, a608, a609, a610, a611, a612, a613, a614,
+ a615, a616, a617, a618, a619, a620, a621, a622, a623,
+ a624, a625, a626, a627, a628, a629, a630, a631, a632,
+ a633, a634, a635, a636, a637, a638, a639, a640, a641,
+ a642, a643, a644, a645, a646, a647, a648, a649, a650,
+ a651, a652, a653, a654, a655, a656, a657, a658, a659,
+ a660, a661, a662, a663, a664, a665, a666, a667, a668,
+ a669, a670, a671, a672, a673, a674, a675, a676, a677,
+ a678, a679, a680, a681, a682, a683, a684, a685, a686,
+ a687, a688, a689, a690, a691, a692, a693, a694, a695,
+ a696, a697, a698, a699, a700, a701, a702, a703, a704,
+ a705, a706, a707, a708, a709, a710, a711, a712, a713,
+ a714, a715, a716, a717, a718, a719, a720, a721, a722,
+ a723, a724, a725, a726, a727, a728, a729, a730, a731,
+ a732, a733, a734, a735, a736, a737, a738, a739, a740,
+ a741, a742, a743, a744, a745, a746, a747, a748, a749,
+ a750, a751, a752, a753, a754, a755, a756, a757, a758,
+ a759, a760, a761, a762, a763, a764, a765, a766, a767,
+ a768, a769, a770, a771, a772, a773, a774, a775, a776,
+ a777, a778, a779, a780, a781, a782, a783, a784, a785,
+ a786, a787, a788, a789, a790, a791, a792, a793, a794,
+ a795, a796, a797, a798, a799, a800, a801, a802, a803,
+ a804, a805, a806, a807, a808, a809, a810, a811, a812,
+ a813, a814, a815, a816, a817, a818, a819, a820, a821,
+ a822, a823, a824, a825, a826, a827, a828, a829, a830,
+ a831, a832, a833, a834, a835, a836, a837, a838, a839,
+ a840, a841, a842, a843, a844, a845, a846, a847, a848,
+ a849, a850, a851, a852, a853, a854, a855, a856, a857,
+ a858, a859, a860, a861, a862, a863, a864, a865, a866,
+ a867, a868, a869, a870, a871, a872, a873, a874, a875,
+ a876, a877, a878, a879, a880, a881, a882, a883, a884,
+ a885, a886, a887, a888, a889, a890, a891, a892, a893,
+ a894, a895, a896, a897, a898, a899, a900, a901, a902,
+ a903, a904, a905, a906, a907, a908, a909, a910, a911,
+ a912, a913, a914, a915, a916, a917, a918, a919, a920,
+ a921, a922, a923, a924, a925, a926, a927, a928, a929,
+ a930, a931, a932, a933, a934, a935, a936, a937, a938,
+ a939, a940, a941, a942, a943, a944, a945, a946, a947,
+ a948, a949, a950, a951, a952, a953, a954, a955, a956,
+ a957, a958, a959, a960, a961, a962, a963, a964, a965,
+ a966, a967, a968, a969, a970, a971, a972, a973, a974,
+ a975, a976, a977, a978, a979, a980, a981, a982, a983,
+ a984, a985, a986, a987, a988, a989, a990, a991, a992,
+ a993, a994, a995, a996, a997, a998, a999, a1000, a1001,
+ a1002, a1003, a1004, a1005) {
+ a0 = +a0;
+ a1 = +a1;
+ a2 = +a2;
+ a3 = +a3;
+ a4 = +a4;
+ a5 = +a5;
+ a6 = +a6;
+ a7 = +a7;
+ a8 = +a8;
+ a9 = +a9;
+ a10 = +a10;
+ a11 = +a11;
+ a12 = +a12;
+ a13 = +a13;
+ a14 = +a14;
+ a15 = +a15;
+ a16 = +a16;
+ a17 = +a17;
+ a18 = +a18;
+ a19 = +a19;
+ a20 = +a20;
+ a21 = +a21;
+ a22 = +a22;
+ a23 = +a23;
+ a24 = +a24;
+ a25 = +a25;
+ a26 = +a26;
+ a27 = +a27;
+ a28 = +a28;
+ a29 = +a29;
+ a30 = +a30;
+ a31 = +a31;
+ a32 = +a32;
+ a33 = +a33;
+ a34 = +a34;
+ a35 = +a35;
+ a36 = +a36;
+ a37 = +a37;
+ a38 = +a38;
+ a39 = +a39;
+ a40 = +a40;
+ a41 = +a41;
+ a42 = +a42;
+ a43 = +a43;
+ a44 = +a44;
+ a45 = +a45;
+ a46 = +a46;
+ a47 = +a47;
+ a48 = +a48;
+ a49 = +a49;
+ a50 = +a50;
+ a51 = +a51;
+ a52 = +a52;
+ a53 = +a53;
+ a54 = +a54;
+ a55 = +a55;
+ a56 = +a56;
+ a57 = +a57;
+ a58 = +a58;
+ a59 = +a59;
+ a60 = +a60;
+ a61 = +a61;
+ a62 = +a62;
+ a63 = +a63;
+ a64 = +a64;
+ a65 = +a65;
+ a66 = +a66;
+ a67 = +a67;
+ a68 = +a68;
+ a69 = +a69;
+ a70 = +a70;
+ a71 = +a71;
+ a72 = +a72;
+ a73 = +a73;
+ a74 = +a74;
+ a75 = +a75;
+ a76 = +a76;
+ a77 = +a77;
+ a78 = +a78;
+ a79 = +a79;
+ a80 = +a80;
+ a81 = +a81;
+ a82 = +a82;
+ a83 = +a83;
+ a84 = +a84;
+ a85 = +a85;
+ a86 = +a86;
+ a87 = +a87;
+ a88 = +a88;
+ a89 = +a89;
+ a90 = +a90;
+ a91 = +a91;
+ a92 = +a92;
+ a93 = +a93;
+ a94 = +a94;
+ a95 = +a95;
+ a96 = +a96;
+ a97 = +a97;
+ a98 = +a98;
+ a99 = +a99;
+ a100 = +a100;
+ a101 = +a101;
+ a102 = +a102;
+ a103 = +a103;
+ a104 = +a104;
+ a105 = +a105;
+ a106 = +a106;
+ a107 = +a107;
+ a108 = +a108;
+ a109 = +a109;
+ a110 = +a110;
+ a111 = +a111;
+ a112 = +a112;
+ a113 = +a113;
+ a114 = +a114;
+ a115 = +a115;
+ a116 = +a116;
+ a117 = +a117;
+ a118 = +a118;
+ a119 = +a119;
+ a120 = +a120;
+ a121 = +a121;
+ a122 = +a122;
+ a123 = +a123;
+ a124 = +a124;
+ a125 = +a125;
+ a126 = +a126;
+ a127 = +a127;
+ a128 = +a128;
+ a129 = +a129;
+ a130 = +a130;
+ a131 = +a131;
+ a132 = +a132;
+ a133 = +a133;
+ a134 = +a134;
+ a135 = +a135;
+ a136 = +a136;
+ a137 = +a137;
+ a138 = +a138;
+ a139 = +a139;
+ a140 = +a140;
+ a141 = +a141;
+ a142 = +a142;
+ a143 = +a143;
+ a144 = +a144;
+ a145 = +a145;
+ a146 = +a146;
+ a147 = +a147;
+ a148 = +a148;
+ a149 = +a149;
+ a150 = +a150;
+ a151 = +a151;
+ a152 = +a152;
+ a153 = +a153;
+ a154 = +a154;
+ a155 = +a155;
+ a156 = +a156;
+ a157 = +a157;
+ a158 = +a158;
+ a159 = +a159;
+ a160 = +a160;
+ a161 = +a161;
+ a162 = +a162;
+ a163 = +a163;
+ a164 = +a164;
+ a165 = +a165;
+ a166 = +a166;
+ a167 = +a167;
+ a168 = +a168;
+ a169 = +a169;
+ a170 = +a170;
+ a171 = +a171;
+ a172 = +a172;
+ a173 = +a173;
+ a174 = +a174;
+ a175 = +a175;
+ a176 = +a176;
+ a177 = +a177;
+ a178 = +a178;
+ a179 = +a179;
+ a180 = +a180;
+ a181 = +a181;
+ a182 = +a182;
+ a183 = +a183;
+ a184 = +a184;
+ a185 = +a185;
+ a186 = +a186;
+ a187 = +a187;
+ a188 = +a188;
+ a189 = +a189;
+ a190 = +a190;
+ a191 = +a191;
+ a192 = +a192;
+ a193 = +a193;
+ a194 = +a194;
+ a195 = +a195;
+ a196 = +a196;
+ a197 = +a197;
+ a198 = +a198;
+ a199 = +a199;
+ a200 = +a200;
+ a201 = +a201;
+ a202 = +a202;
+ a203 = +a203;
+ a204 = +a204;
+ a205 = +a205;
+ a206 = +a206;
+ a207 = +a207;
+ a208 = +a208;
+ a209 = +a209;
+ a210 = +a210;
+ a211 = +a211;
+ a212 = +a212;
+ a213 = +a213;
+ a214 = +a214;
+ a215 = +a215;
+ a216 = +a216;
+ a217 = +a217;
+ a218 = +a218;
+ a219 = +a219;
+ a220 = +a220;
+ a221 = +a221;
+ a222 = +a222;
+ a223 = +a223;
+ a224 = +a224;
+ a225 = +a225;
+ a226 = +a226;
+ a227 = +a227;
+ a228 = +a228;
+ a229 = +a229;
+ a230 = +a230;
+ a231 = +a231;
+ a232 = +a232;
+ a233 = +a233;
+ a234 = +a234;
+ a235 = +a235;
+ a236 = +a236;
+ a237 = +a237;
+ a238 = +a238;
+ a239 = +a239;
+ a240 = +a240;
+ a241 = +a241;
+ a242 = +a242;
+ a243 = +a243;
+ a244 = +a244;
+ a245 = +a245;
+ a246 = +a246;
+ a247 = +a247;
+ a248 = +a248;
+ a249 = +a249;
+ a250 = +a250;
+ a251 = +a251;
+ a252 = +a252;
+ a253 = +a253;
+ a254 = +a254;
+ a255 = +a255;
+ a256 = +a256;
+ a257 = +a257;
+ a258 = +a258;
+ a259 = +a259;
+ a260 = +a260;
+ a261 = +a261;
+ a262 = +a262;
+ a263 = +a263;
+ a264 = +a264;
+ a265 = +a265;
+ a266 = +a266;
+ a267 = +a267;
+ a268 = +a268;
+ a269 = +a269;
+ a270 = +a270;
+ a271 = +a271;
+ a272 = +a272;
+ a273 = +a273;
+ a274 = +a274;
+ a275 = +a275;
+ a276 = +a276;
+ a277 = +a277;
+ a278 = +a278;
+ a279 = +a279;
+ a280 = +a280;
+ a281 = +a281;
+ a282 = +a282;
+ a283 = +a283;
+ a284 = +a284;
+ a285 = +a285;
+ a286 = +a286;
+ a287 = +a287;
+ a288 = +a288;
+ a289 = +a289;
+ a290 = +a290;
+ a291 = +a291;
+ a292 = +a292;
+ a293 = +a293;
+ a294 = +a294;
+ a295 = +a295;
+ a296 = +a296;
+ a297 = +a297;
+ a298 = +a298;
+ a299 = +a299;
+ a300 = +a300;
+ a301 = +a301;
+ a302 = +a302;
+ a303 = +a303;
+ a304 = +a304;
+ a305 = +a305;
+ a306 = +a306;
+ a307 = +a307;
+ a308 = +a308;
+ a309 = +a309;
+ a310 = +a310;
+ a311 = +a311;
+ a312 = +a312;
+ a313 = +a313;
+ a314 = +a314;
+ a315 = +a315;
+ a316 = +a316;
+ a317 = +a317;
+ a318 = +a318;
+ a319 = +a319;
+ a320 = +a320;
+ a321 = +a321;
+ a322 = +a322;
+ a323 = +a323;
+ a324 = +a324;
+ a325 = +a325;
+ a326 = +a326;
+ a327 = +a327;
+ a328 = +a328;
+ a329 = +a329;
+ a330 = +a330;
+ a331 = +a331;
+ a332 = +a332;
+ a333 = +a333;
+ a334 = +a334;
+ a335 = +a335;
+ a336 = +a336;
+ a337 = +a337;
+ a338 = +a338;
+ a339 = +a339;
+ a340 = +a340;
+ a341 = +a341;
+ a342 = +a342;
+ a343 = +a343;
+ a344 = +a344;
+ a345 = +a345;
+ a346 = +a346;
+ a347 = +a347;
+ a348 = +a348;
+ a349 = +a349;
+ a350 = +a350;
+ a351 = +a351;
+ a352 = +a352;
+ a353 = +a353;
+ a354 = +a354;
+ a355 = +a355;
+ a356 = +a356;
+ a357 = +a357;
+ a358 = +a358;
+ a359 = +a359;
+ a360 = +a360;
+ a361 = +a361;
+ a362 = +a362;
+ a363 = +a363;
+ a364 = +a364;
+ a365 = +a365;
+ a366 = +a366;
+ a367 = +a367;
+ a368 = +a368;
+ a369 = +a369;
+ a370 = +a370;
+ a371 = +a371;
+ a372 = +a372;
+ a373 = +a373;
+ a374 = +a374;
+ a375 = +a375;
+ a376 = +a376;
+ a377 = +a377;
+ a378 = +a378;
+ a379 = +a379;
+ a380 = +a380;
+ a381 = +a381;
+ a382 = +a382;
+ a383 = +a383;
+ a384 = +a384;
+ a385 = +a385;
+ a386 = +a386;
+ a387 = +a387;
+ a388 = +a388;
+ a389 = +a389;
+ a390 = +a390;
+ a391 = +a391;
+ a392 = +a392;
+ a393 = +a393;
+ a394 = +a394;
+ a395 = +a395;
+ a396 = +a396;
+ a397 = +a397;
+ a398 = +a398;
+ a399 = +a399;
+ a400 = +a400;
+ a401 = +a401;
+ a402 = +a402;
+ a403 = +a403;
+ a404 = +a404;
+ a405 = +a405;
+ a406 = +a406;
+ a407 = +a407;
+ a408 = +a408;
+ a409 = +a409;
+ a410 = +a410;
+ a411 = +a411;
+ a412 = +a412;
+ a413 = +a413;
+ a414 = +a414;
+ a415 = +a415;
+ a416 = +a416;
+ a417 = +a417;
+ a418 = +a418;
+ a419 = +a419;
+ a420 = +a420;
+ a421 = +a421;
+ a422 = +a422;
+ a423 = +a423;
+ a424 = +a424;
+ a425 = +a425;
+ a426 = +a426;
+ a427 = +a427;
+ a428 = +a428;
+ a429 = +a429;
+ a430 = +a430;
+ a431 = +a431;
+ a432 = +a432;
+ a433 = +a433;
+ a434 = +a434;
+ a435 = +a435;
+ a436 = +a436;
+ a437 = +a437;
+ a438 = +a438;
+ a439 = +a439;
+ a440 = +a440;
+ a441 = +a441;
+ a442 = +a442;
+ a443 = +a443;
+ a444 = +a444;
+ a445 = +a445;
+ a446 = +a446;
+ a447 = +a447;
+ a448 = +a448;
+ a449 = +a449;
+ a450 = +a450;
+ a451 = +a451;
+ a452 = +a452;
+ a453 = +a453;
+ a454 = +a454;
+ a455 = +a455;
+ a456 = +a456;
+ a457 = +a457;
+ a458 = +a458;
+ a459 = +a459;
+ a460 = +a460;
+ a461 = +a461;
+ a462 = +a462;
+ a463 = +a463;
+ a464 = +a464;
+ a465 = +a465;
+ a466 = +a466;
+ a467 = +a467;
+ a468 = +a468;
+ a469 = +a469;
+ a470 = +a470;
+ a471 = +a471;
+ a472 = +a472;
+ a473 = +a473;
+ a474 = +a474;
+ a475 = +a475;
+ a476 = +a476;
+ a477 = +a477;
+ a478 = +a478;
+ a479 = +a479;
+ a480 = +a480;
+ a481 = +a481;
+ a482 = +a482;
+ a483 = +a483;
+ a484 = +a484;
+ a485 = +a485;
+ a486 = +a486;
+ a487 = +a487;
+ a488 = +a488;
+ a489 = +a489;
+ a490 = +a490;
+ a491 = +a491;
+ a492 = +a492;
+ a493 = +a493;
+ a494 = +a494;
+ a495 = +a495;
+ a496 = +a496;
+ a497 = +a497;
+ a498 = +a498;
+ a499 = +a499;
+ a500 = +a500;
+ a501 = +a501;
+ a502 = +a502;
+ a503 = +a503;
+ a504 = +a504;
+ a505 = +a505;
+ a506 = +a506;
+ a507 = +a507;
+ a508 = +a508;
+ a509 = +a509;
+ a510 = +a510;
+ a511 = +a511;
+ a512 = +a512;
+ a513 = +a513;
+ a514 = +a514;
+ a515 = +a515;
+ a516 = +a516;
+ a517 = +a517;
+ a518 = +a518;
+ a519 = +a519;
+ a520 = +a520;
+ a521 = +a521;
+ a522 = +a522;
+ a523 = +a523;
+ a524 = +a524;
+ a525 = +a525;
+ a526 = +a526;
+ a527 = +a527;
+ a528 = +a528;
+ a529 = +a529;
+ a530 = +a530;
+ a531 = +a531;
+ a532 = +a532;
+ a533 = +a533;
+ a534 = +a534;
+ a535 = +a535;
+ a536 = +a536;
+ a537 = +a537;
+ a538 = +a538;
+ a539 = +a539;
+ a540 = +a540;
+ a541 = +a541;
+ a542 = +a542;
+ a543 = +a543;
+ a544 = +a544;
+ a545 = +a545;
+ a546 = +a546;
+ a547 = +a547;
+ a548 = +a548;
+ a549 = +a549;
+ a550 = +a550;
+ a551 = +a551;
+ a552 = +a552;
+ a553 = +a553;
+ a554 = +a554;
+ a555 = +a555;
+ a556 = +a556;
+ a557 = +a557;
+ a558 = +a558;
+ a559 = +a559;
+ a560 = +a560;
+ a561 = +a561;
+ a562 = +a562;
+ a563 = +a563;
+ a564 = +a564;
+ a565 = +a565;
+ a566 = +a566;
+ a567 = +a567;
+ a568 = +a568;
+ a569 = +a569;
+ a570 = +a570;
+ a571 = +a571;
+ a572 = +a572;
+ a573 = +a573;
+ a574 = +a574;
+ a575 = +a575;
+ a576 = +a576;
+ a577 = +a577;
+ a578 = +a578;
+ a579 = +a579;
+ a580 = +a580;
+ a581 = +a581;
+ a582 = +a582;
+ a583 = +a583;
+ a584 = +a584;
+ a585 = +a585;
+ a586 = +a586;
+ a587 = +a587;
+ a588 = +a588;
+ a589 = +a589;
+ a590 = +a590;
+ a591 = +a591;
+ a592 = +a592;
+ a593 = +a593;
+ a594 = +a594;
+ a595 = +a595;
+ a596 = +a596;
+ a597 = +a597;
+ a598 = +a598;
+ a599 = +a599;
+ a600 = +a600;
+ a601 = +a601;
+ a602 = +a602;
+ a603 = +a603;
+ a604 = +a604;
+ a605 = +a605;
+ a606 = +a606;
+ a607 = +a607;
+ a608 = +a608;
+ a609 = +a609;
+ a610 = +a610;
+ a611 = +a611;
+ a612 = +a612;
+ a613 = +a613;
+ a614 = +a614;
+ a615 = +a615;
+ a616 = +a616;
+ a617 = +a617;
+ a618 = +a618;
+ a619 = +a619;
+ a620 = +a620;
+ a621 = +a621;
+ a622 = +a622;
+ a623 = +a623;
+ a624 = +a624;
+ a625 = +a625;
+ a626 = +a626;
+ a627 = +a627;
+ a628 = +a628;
+ a629 = +a629;
+ a630 = +a630;
+ a631 = +a631;
+ a632 = +a632;
+ a633 = +a633;
+ a634 = +a634;
+ a635 = +a635;
+ a636 = +a636;
+ a637 = +a637;
+ a638 = +a638;
+ a639 = +a639;
+ a640 = +a640;
+ a641 = +a641;
+ a642 = +a642;
+ a643 = +a643;
+ a644 = +a644;
+ a645 = +a645;
+ a646 = +a646;
+ a647 = +a647;
+ a648 = +a648;
+ a649 = +a649;
+ a650 = +a650;
+ a651 = +a651;
+ a652 = +a652;
+ a653 = +a653;
+ a654 = +a654;
+ a655 = +a655;
+ a656 = +a656;
+ a657 = +a657;
+ a658 = +a658;
+ a659 = +a659;
+ a660 = +a660;
+ a661 = +a661;
+ a662 = +a662;
+ a663 = +a663;
+ a664 = +a664;
+ a665 = +a665;
+ a666 = +a666;
+ a667 = +a667;
+ a668 = +a668;
+ a669 = +a669;
+ a670 = +a670;
+ a671 = +a671;
+ a672 = +a672;
+ a673 = +a673;
+ a674 = +a674;
+ a675 = +a675;
+ a676 = +a676;
+ a677 = +a677;
+ a678 = +a678;
+ a679 = +a679;
+ a680 = +a680;
+ a681 = +a681;
+ a682 = +a682;
+ a683 = +a683;
+ a684 = +a684;
+ a685 = +a685;
+ a686 = +a686;
+ a687 = +a687;
+ a688 = +a688;
+ a689 = +a689;
+ a690 = +a690;
+ a691 = +a691;
+ a692 = +a692;
+ a693 = +a693;
+ a694 = +a694;
+ a695 = +a695;
+ a696 = +a696;
+ a697 = +a697;
+ a698 = +a698;
+ a699 = +a699;
+ a700 = +a700;
+ a701 = +a701;
+ a702 = +a702;
+ a703 = +a703;
+ a704 = +a704;
+ a705 = +a705;
+ a706 = +a706;
+ a707 = +a707;
+ a708 = +a708;
+ a709 = +a709;
+ a710 = +a710;
+ a711 = +a711;
+ a712 = +a712;
+ a713 = +a713;
+ a714 = +a714;
+ a715 = +a715;
+ a716 = +a716;
+ a717 = +a717;
+ a718 = +a718;
+ a719 = +a719;
+ a720 = +a720;
+ a721 = +a721;
+ a722 = +a722;
+ a723 = +a723;
+ a724 = +a724;
+ a725 = +a725;
+ a726 = +a726;
+ a727 = +a727;
+ a728 = +a728;
+ a729 = +a729;
+ a730 = +a730;
+ a731 = +a731;
+ a732 = +a732;
+ a733 = +a733;
+ a734 = +a734;
+ a735 = +a735;
+ a736 = +a736;
+ a737 = +a737;
+ a738 = +a738;
+ a739 = +a739;
+ a740 = +a740;
+ a741 = +a741;
+ a742 = +a742;
+ a743 = +a743;
+ a744 = +a744;
+ a745 = +a745;
+ a746 = +a746;
+ a747 = +a747;
+ a748 = +a748;
+ a749 = +a749;
+ a750 = +a750;
+ a751 = +a751;
+ a752 = +a752;
+ a753 = +a753;
+ a754 = +a754;
+ a755 = +a755;
+ a756 = +a756;
+ a757 = +a757;
+ a758 = +a758;
+ a759 = +a759;
+ a760 = +a760;
+ a761 = +a761;
+ a762 = +a762;
+ a763 = +a763;
+ a764 = +a764;
+ a765 = +a765;
+ a766 = +a766;
+ a767 = +a767;
+ a768 = +a768;
+ a769 = +a769;
+ a770 = +a770;
+ a771 = +a771;
+ a772 = +a772;
+ a773 = +a773;
+ a774 = +a774;
+ a775 = +a775;
+ a776 = +a776;
+ a777 = +a777;
+ a778 = +a778;
+ a779 = +a779;
+ a780 = +a780;
+ a781 = +a781;
+ a782 = +a782;
+ a783 = +a783;
+ a784 = +a784;
+ a785 = +a785;
+ a786 = +a786;
+ a787 = +a787;
+ a788 = +a788;
+ a789 = +a789;
+ a790 = +a790;
+ a791 = +a791;
+ a792 = +a792;
+ a793 = +a793;
+ a794 = +a794;
+ a795 = +a795;
+ a796 = +a796;
+ a797 = +a797;
+ a798 = +a798;
+ a799 = +a799;
+ a800 = +a800;
+ a801 = +a801;
+ a802 = +a802;
+ a803 = +a803;
+ a804 = +a804;
+ a805 = +a805;
+ a806 = +a806;
+ a807 = +a807;
+ a808 = +a808;
+ a809 = +a809;
+ a810 = +a810;
+ a811 = +a811;
+ a812 = +a812;
+ a813 = +a813;
+ a814 = +a814;
+ a815 = +a815;
+ a816 = +a816;
+ a817 = +a817;
+ a818 = +a818;
+ a819 = +a819;
+ a820 = +a820;
+ a821 = +a821;
+ a822 = +a822;
+ a823 = +a823;
+ a824 = +a824;
+ a825 = +a825;
+ a826 = +a826;
+ a827 = +a827;
+ a828 = +a828;
+ a829 = +a829;
+ a830 = +a830;
+ a831 = +a831;
+ a832 = +a832;
+ a833 = +a833;
+ a834 = +a834;
+ a835 = +a835;
+ a836 = +a836;
+ a837 = +a837;
+ a838 = +a838;
+ a839 = +a839;
+ a840 = +a840;
+ a841 = +a841;
+ a842 = +a842;
+ a843 = +a843;
+ a844 = +a844;
+ a845 = +a845;
+ a846 = +a846;
+ a847 = +a847;
+ a848 = +a848;
+ a849 = +a849;
+ a850 = +a850;
+ a851 = +a851;
+ a852 = +a852;
+ a853 = +a853;
+ a854 = +a854;
+ a855 = +a855;
+ a856 = +a856;
+ a857 = +a857;
+ a858 = +a858;
+ a859 = +a859;
+ a860 = +a860;
+ a861 = +a861;
+ a862 = +a862;
+ a863 = +a863;
+ a864 = +a864;
+ a865 = +a865;
+ a866 = +a866;
+ a867 = +a867;
+ a868 = +a868;
+ a869 = +a869;
+ a870 = +a870;
+ a871 = +a871;
+ a872 = +a872;
+ a873 = +a873;
+ a874 = +a874;
+ a875 = +a875;
+ a876 = +a876;
+ a877 = +a877;
+ a878 = +a878;
+ a879 = +a879;
+ a880 = +a880;
+ a881 = +a881;
+ a882 = +a882;
+ a883 = +a883;
+ a884 = +a884;
+ a885 = +a885;
+ a886 = +a886;
+ a887 = +a887;
+ a888 = +a888;
+ a889 = +a889;
+ a890 = +a890;
+ a891 = +a891;
+ a892 = +a892;
+ a893 = +a893;
+ a894 = +a894;
+ a895 = +a895;
+ a896 = +a896;
+ a897 = +a897;
+ a898 = +a898;
+ a899 = +a899;
+ a900 = +a900;
+ a901 = +a901;
+ a902 = +a902;
+ a903 = +a903;
+ a904 = +a904;
+ a905 = +a905;
+ a906 = +a906;
+ a907 = +a907;
+ a908 = +a908;
+ a909 = +a909;
+ a910 = +a910;
+ a911 = +a911;
+ a912 = +a912;
+ a913 = +a913;
+ a914 = +a914;
+ a915 = +a915;
+ a916 = +a916;
+ a917 = +a917;
+ a918 = +a918;
+ a919 = +a919;
+ a920 = +a920;
+ a921 = +a921;
+ a922 = +a922;
+ a923 = +a923;
+ a924 = +a924;
+ a925 = +a925;
+ a926 = +a926;
+ a927 = +a927;
+ a928 = +a928;
+ a929 = +a929;
+ a930 = +a930;
+ a931 = +a931;
+ a932 = +a932;
+ a933 = +a933;
+ a934 = +a934;
+ a935 = +a935;
+ a936 = +a936;
+ a937 = +a937;
+ a938 = +a938;
+ a939 = +a939;
+ a940 = +a940;
+ a941 = +a941;
+ a942 = +a942;
+ a943 = +a943;
+ a944 = +a944;
+ a945 = +a945;
+ a946 = +a946;
+ a947 = +a947;
+ a948 = +a948;
+ a949 = +a949;
+ a950 = +a950;
+ a951 = +a951;
+ a952 = +a952;
+ a953 = +a953;
+ a954 = +a954;
+ a955 = +a955;
+ a956 = +a956;
+ a957 = +a957;
+ a958 = +a958;
+ a959 = +a959;
+ a960 = +a960;
+ a961 = +a961;
+ a962 = +a962;
+ a963 = +a963;
+ a964 = +a964;
+ a965 = +a965;
+ a966 = +a966;
+ a967 = +a967;
+ a968 = +a968;
+ a969 = +a969;
+ a970 = +a970;
+ a971 = +a971;
+ a972 = +a972;
+ a973 = +a973;
+ a974 = +a974;
+ a975 = +a975;
+ a976 = +a976;
+ a977 = +a977;
+ a978 = +a978;
+ a979 = +a979;
+ a980 = +a980;
+ a981 = +a981;
+ a982 = +a982;
+ a983 = +a983;
+ a984 = +a984;
+ a985 = +a985;
+ a986 = +a986;
+ a987 = +a987;
+ a988 = +a988;
+ a989 = +a989;
+ a990 = +a990;
+ a991 = +a991;
+ a992 = +a992;
+ a993 = +a993;
+ a994 = +a994;
+ a995 = +a995;
+ a996 = +a996;
+ a997 = +a997;
+ a998 = +a998;
+ a999 = +a999;
+ a1000 = +a1000;
+ a1001 = +a1001;
+ a1002 = +a1002;
+ a1003 = +a1003;
+ a1004 = +a1004;
+ a1005 = +a1005;
+ return 10;
+ }
+ function bar() {
+ return foo(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, 0.0, 1.0) |
+ 0;
+ }
+ return bar
+})()();