From 0803ae67921c6dd10e0077b956dcb6d06917439b Mon Sep 17 00:00:00 2001
From: test262-automation <test262-automation@bocoup.com>
Date: Fri, 2 Nov 2018 18:50:48 +0000
Subject: [PATCH] [javascriptcore-test262-automation] Changes from
 https://github.com/webkit/webkit.git at sha 3f48fafe3c on Fri Nov 02 2018
 18:47:50 GMT+0000 (Coordinated Universal Time)

---
 .../javascriptcore/stress/op_add.js           | 66 +++++++++++++++++
 .../javascriptcore/stress/op_bitand.js        | 72 +++++++++++++++++++
 .../javascriptcore/stress/op_bitor.js         | 72 +++++++++++++++++++
 .../javascriptcore/stress/op_bitxor.js        | 72 +++++++++++++++++++
 .../stress/op_lshift-ConstVar.js              | 22 ++++++
 .../stress/op_lshift-VarConst.js              | 22 ++++++
 .../javascriptcore/stress/op_lshift-VarVar.js | 22 ++++++
 .../javascriptcore/stress/op_mod-ConstVar.js  | 22 ++++++
 .../javascriptcore/stress/op_mod-VarConst.js  | 22 ++++++
 .../javascriptcore/stress/op_mod-VarVar.js    | 22 ++++++
 .../javascriptcore/stress/op_mul-ConstVar.js  | 22 ++++++
 .../javascriptcore/stress/op_mul-VarConst.js  | 22 ++++++
 .../javascriptcore/stress/op_mul-VarVar.js    | 22 ++++++
 .../stress/op_rshift-ConstVar.js              | 22 ++++++
 .../stress/op_rshift-VarConst.js              | 22 ++++++
 .../javascriptcore/stress/op_rshift-VarVar.js | 22 ++++++
 .../javascriptcore/stress/op_sub-ConstVar.js  | 22 ++++++
 .../javascriptcore/stress/op_sub-VarConst.js  | 22 ++++++
 .../javascriptcore/stress/op_sub-VarVar.js    | 22 ++++++
 .../stress/op_urshift-ConstVar.js             | 22 ++++++
 .../stress/op_urshift-VarConst.js             | 22 ++++++
 .../stress/op_urshift-VarVar.js               | 22 ++++++
 ...ead-forward-call-varargs-stack-overflow.js | 61 ++++++++++++++++
 .../javascriptcore/stress/value-to-boolean.js | 70 ++++++++++++++++++
 24 files changed, 809 insertions(+)
 create mode 100644 implementation-contributed/javascriptcore/stress/op_add.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_bitand.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_bitor.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_bitxor.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_lshift-ConstVar.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_lshift-VarConst.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_lshift-VarVar.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_mod-ConstVar.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_mod-VarConst.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_mod-VarVar.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_mul-ConstVar.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_mul-VarConst.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_mul-VarVar.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_rshift-ConstVar.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_rshift-VarConst.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_rshift-VarVar.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_sub-ConstVar.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_sub-VarConst.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_sub-VarVar.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_urshift-ConstVar.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_urshift-VarConst.js
 create mode 100644 implementation-contributed/javascriptcore/stress/op_urshift-VarVar.js
 create mode 100644 implementation-contributed/javascriptcore/stress/spread-forward-call-varargs-stack-overflow.js
 create mode 100644 implementation-contributed/javascriptcore/stress/value-to-boolean.js

diff --git a/implementation-contributed/javascriptcore/stress/op_add.js b/implementation-contributed/javascriptcore/stress/op_add.js
new file mode 100644
index 0000000000..65679b43ae
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_add.js
@@ -0,0 +1,66 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "add";
+var op = "+";
+
+var o1 = {
+    valueOf: function() { return 10; }
+};
+
+var posInfinity = 1 / 0;
+var negInfinity = -1 / 0;
+
+var values = [
+    'o1',
+    'null',
+    'undefined',
+    'true',
+    'false',
+
+    'NaN',
+    'posInfinity',
+    'negInfinity',
+    '100.2', // Some random small double value.
+    '-100.2',
+    '54294967296.2923', // Some random large double value.
+    '-54294967296.2923',
+
+    '0',
+    '-0',
+    '1',
+    '-1',
+    '0x3fff',
+    '-0x3fff',
+    '0x7fff',
+    '-0x7fff',
+    '0x10000',
+    '-0x10000',
+    '0x7ffffff',
+    '-0x7ffffff',
+    '0x100000000',
+    '-0x100000000',
+
+    '"abc"',
+    '"0"',
+    '"-0"',
+    '"1"',
+    '"-1"',
+];
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarVar", values, values);
+generateBinaryTests(tests, opName, op, "VarConst", values, values);
+generateBinaryTests(tests, opName, op, "ConstVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_bitand.js b/implementation-contributed/javascriptcore/stress/op_bitand.js
new file mode 100644
index 0000000000..1bc61a00eb
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_bitand.js
@@ -0,0 +1,72 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "bitand";
+var op = "&";
+
+var o1 = {
+    valueOf: function() { return 10; }
+};
+
+var posInfinity = 1 / 0;
+var negInfinity = -1 / 0;
+
+var values = [
+    'o1',
+    'null',
+    'undefined',
+    'true',
+    'false',
+
+    'NaN',
+    'posInfinity',
+    'negInfinity',
+    '100.2', // Some random small double value.
+    '-100.2',
+    '54294967296.2923', // Some random large double value.
+    '-54294967296.2923',
+
+    '0',
+    '-0',
+    '1',
+    '-1',
+    '0x3fff',
+    '-0x3fff',
+    '0x7fff',
+    '-0x7fff',
+    '0x10000',
+    '-0x10000',
+    '0x7fffffff',
+    '-0x7fffffff',
+    '0xa5a5a5a5',
+    '0x100000000',
+    '-0x100000000',
+
+    '"abc"',
+    '"0"',
+    '"-0"',
+    '"1"',
+    '"-1"',
+    '"0x7fffffff"',
+    '"-0x7fffffff"',
+    '"0xa5a5a5a5"',
+    '"0x100000000"',
+    '"-0x100000000"',
+];
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarVar", values, values);
+generateBinaryTests(tests, opName, op, "VarConst", values, values);
+generateBinaryTests(tests, opName, op, "ConstVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_bitor.js b/implementation-contributed/javascriptcore/stress/op_bitor.js
new file mode 100644
index 0000000000..685e236241
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_bitor.js
@@ -0,0 +1,72 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "bitor";
+var op = "|";
+
+var o1 = {
+    valueOf: function() { return 10; }
+};
+
+var posInfinity = 1 / 0;
+var negInfinity = -1 / 0;
+
+var values = [
+    'o1',
+    'null',
+    'undefined',
+    'true',
+    'false',
+
+    'NaN',
+    'posInfinity',
+    'negInfinity',
+    '100.2', // Some random small double value.
+    '-100.2',
+    '54294967296.2923', // Some random large double value.
+    '-54294967296.2923',
+
+    '0',
+    '-0',
+    '1',
+    '-1',
+    '0x3fff',
+    '-0x3fff',
+    '0x7fff',
+    '-0x7fff',
+    '0x10000',
+    '-0x10000',
+    '0x7fffffff',
+    '-0x7fffffff',
+    '0xa5a5a5a5',
+    '0x100000000',
+    '-0x100000000',
+
+    '"abc"',
+    '"0"',
+    '"-0"',
+    '"1"',
+    '"-1"',
+    '"0x7fffffff"',
+    '"-0x7fffffff"',
+    '"0xa5a5a5a5"',
+    '"0x100000000"',
+    '"-0x100000000"',
+];
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarVar", values, values);
+generateBinaryTests(tests, opName, op, "VarConst", values, values);
+generateBinaryTests(tests, opName, op, "ConstVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_bitxor.js b/implementation-contributed/javascriptcore/stress/op_bitxor.js
new file mode 100644
index 0000000000..e05fa5d78a
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_bitxor.js
@@ -0,0 +1,72 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "bitxor";
+var op = "^";
+
+var o1 = {
+    valueOf: function() { return 10; }
+};
+
+var posInfinity = 1 / 0;
+var negInfinity = -1 / 0;
+
+var values = [
+    'o1',
+    'null',
+    'undefined',
+    'true',
+    'false',
+
+    'NaN',
+    'posInfinity',
+    'negInfinity',
+    '100.2', // Some random small double value.
+    '-100.2',
+    '54294967296.2923', // Some random large double value.
+    '-54294967296.2923',
+
+    '0',
+    '-0',
+    '1',
+    '-1',
+    '0x3fff',
+    '-0x3fff',
+    '0x7fff',
+    '-0x7fff',
+    '0x10000',
+    '-0x10000',
+    '0x7fffffff',
+    '-0x7fffffff',
+    '0xa5a5a5a5',
+    '0x100000000',
+    '-0x100000000',
+
+    '"abc"',
+    '"0"',
+    '"-0"',
+    '"1"',
+    '"-1"',
+    '"0x7fffffff"',
+    '"-0x7fffffff"',
+    '"0xa5a5a5a5"',
+    '"0x100000000"',
+    '"-0x100000000"',
+];
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarVar", values, values);
+generateBinaryTests(tests, opName, op, "VarConst", values, values);
+generateBinaryTests(tests, opName, op, "ConstVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_lshift-ConstVar.js b/implementation-contributed/javascriptcore/stress/op_lshift-ConstVar.js
new file mode 100644
index 0000000000..0feac842b0
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_lshift-ConstVar.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "lshift";
+var op = "<<";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "ConstVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_lshift-VarConst.js b/implementation-contributed/javascriptcore/stress/op_lshift-VarConst.js
new file mode 100644
index 0000000000..3345eee26b
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_lshift-VarConst.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "lshift";
+var op = "<<";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarConst", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_lshift-VarVar.js b/implementation-contributed/javascriptcore/stress/op_lshift-VarVar.js
new file mode 100644
index 0000000000..5c20cc3b79
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_lshift-VarVar.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "lshift";
+var op = "<<";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_mod-ConstVar.js b/implementation-contributed/javascriptcore/stress/op_mod-ConstVar.js
new file mode 100644
index 0000000000..f7d439f82a
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_mod-ConstVar.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT("--timeoutMultiplier=1.5")
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "mod";
+var op = "%";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "ConstVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_mod-VarConst.js b/implementation-contributed/javascriptcore/stress/op_mod-VarConst.js
new file mode 100644
index 0000000000..97bdcf26fa
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_mod-VarConst.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT("--timeoutMultiplier=1.5")
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "mod";
+var op = "%";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarConst", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_mod-VarVar.js b/implementation-contributed/javascriptcore/stress/op_mod-VarVar.js
new file mode 100644
index 0000000000..4d321700f8
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_mod-VarVar.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT("--timeoutMultiplier=1.5")
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "mod";
+var op = "%";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_mul-ConstVar.js b/implementation-contributed/javascriptcore/stress/op_mul-ConstVar.js
new file mode 100644
index 0000000000..934926afb9
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_mul-ConstVar.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "mul";
+var op = "*";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "ConstVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_mul-VarConst.js b/implementation-contributed/javascriptcore/stress/op_mul-VarConst.js
new file mode 100644
index 0000000000..e7c617bfd1
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_mul-VarConst.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "mul";
+var op = "*";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarConst", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_mul-VarVar.js b/implementation-contributed/javascriptcore/stress/op_mul-VarVar.js
new file mode 100644
index 0000000000..ec1225bca2
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_mul-VarVar.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "mul";
+var op = "*";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_rshift-ConstVar.js b/implementation-contributed/javascriptcore/stress/op_rshift-ConstVar.js
new file mode 100644
index 0000000000..b6d65bccd7
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_rshift-ConstVar.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "rshift";
+var op = ">>";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "ConstVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_rshift-VarConst.js b/implementation-contributed/javascriptcore/stress/op_rshift-VarConst.js
new file mode 100644
index 0000000000..ab46fcdb34
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_rshift-VarConst.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "rshift";
+var op = ">>";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarConst", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_rshift-VarVar.js b/implementation-contributed/javascriptcore/stress/op_rshift-VarVar.js
new file mode 100644
index 0000000000..02c5b4112b
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_rshift-VarVar.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "rshift";
+var op = ">>";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_sub-ConstVar.js b/implementation-contributed/javascriptcore/stress/op_sub-ConstVar.js
new file mode 100644
index 0000000000..9e94c2b0ce
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_sub-ConstVar.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "sub";
+var op = "-";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "ConstVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_sub-VarConst.js b/implementation-contributed/javascriptcore/stress/op_sub-VarConst.js
new file mode 100644
index 0000000000..5223846d68
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_sub-VarConst.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "sub";
+var op = "-";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarConst", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_sub-VarVar.js b/implementation-contributed/javascriptcore/stress/op_sub-VarVar.js
new file mode 100644
index 0000000000..e8bbc15400
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_sub-VarVar.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "sub";
+var op = "-";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_urshift-ConstVar.js b/implementation-contributed/javascriptcore/stress/op_urshift-ConstVar.js
new file mode 100644
index 0000000000..82312fe5c8
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_urshift-ConstVar.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "urshift";
+var op = ">>>";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "ConstVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_urshift-VarConst.js b/implementation-contributed/javascriptcore/stress/op_urshift-VarConst.js
new file mode 100644
index 0000000000..491153b43a
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_urshift-VarConst.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "urshift";
+var op = ">>>";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarConst", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/op_urshift-VarVar.js b/implementation-contributed/javascriptcore/stress/op_urshift-VarVar.js
new file mode 100644
index 0000000000..5b6f5cb739
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/op_urshift-VarVar.js
@@ -0,0 +1,22 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ runFTLNoCJIT
+
+// If all goes well, this test module will terminate silently. If not, it will print
+// errors. See binary-op-test.js for debugging options if needed.
+
+load("./resources/binary-op-test.js");
+
+//============================================================================
+// Test configuration data:
+
+var opName = "urshift";
+var op = ">>>";
+
+load("./resources/binary-op-values.js");
+
+tests = [];
+generateBinaryTests(tests, opName, op, "VarVar", values, values);
+
+run();
diff --git a/implementation-contributed/javascriptcore/stress/spread-forward-call-varargs-stack-overflow.js b/implementation-contributed/javascriptcore/stress/spread-forward-call-varargs-stack-overflow.js
new file mode 100644
index 0000000000..ec1339b5ca
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/spread-forward-call-varargs-stack-overflow.js
@@ -0,0 +1,61 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "arm"
+//@ skip if $architecture == "x86"
+function assert(b) {
+    if (!b)
+        throw new Error("Bad assertion");
+}
+noInline(assert);
+
+function identity(a) { return a; }
+noInline(identity);
+
+function bar(...args) {
+    return args;
+}
+noInline(bar);
+
+function foo(a, ...args) {
+    let arg = identity(a);
+    try {
+        let r = bar(...args, ...args);
+        return r;
+    } catch(e) {
+        return arg;
+    }
+}
+noInline(foo);
+
+for (let i = 0; i < 40000; i++) {
+    let args = [];
+    for (let i = 0; i < 400; i++) {
+        args.push(i);
+    }
+
+    let o = {};
+    let r = foo(o, ...args);
+    let i = 0;
+    for (let arg of args) {
+        assert(r[i] === arg);
+        i++;
+    }
+    for (let arg of args) {
+        assert(r[i] === arg);
+        i++;
+    }
+}
+
+for (let i = 0; i < 20; i++) {
+    let threw = false;
+    let o = {};
+    let args = [];
+    let argCount = maxArguments() * (2/3);
+    argCount = argCount | 0;
+    for (let i = 0; i < argCount; i++) {
+        args.push(i);
+    }
+
+    let r = foo(o, ...args);
+    assert(r === o);
+}
diff --git a/implementation-contributed/javascriptcore/stress/value-to-boolean.js b/implementation-contributed/javascriptcore/stress/value-to-boolean.js
new file mode 100644
index 0000000000..f1c0a74530
--- /dev/null
+++ b/implementation-contributed/javascriptcore/stress/value-to-boolean.js
@@ -0,0 +1,70 @@
+// FIXME: unskip when this is solved
+// https://bugs.webkit.org/show_bug.cgi?id=191163
+//@ skip if $architecture == "mips" or $architecture == "arm"
+//@ if $buildType == "release" then runDefault else skip end
+
+function assert(b) {
+    if (!b)
+        throw new Error("Bad assertion")
+}
+noInline(assert);
+
+let tests = [
+    [true, true],
+    [false, false],
+    ["", false],
+    ["" + "" + "", false],
+    ["foo", true],
+    ["foo" + "bar", true],
+    [{}, true],
+    [Symbol(), true],
+    [undefined, false],
+    [null, false],
+    [0, false],
+    [-0, false],
+    [+0, false],
+    [NaN, false],
+    [10, true],
+    [10.2012, true],
+    [function() { }, true],
+    [new String("foo"), true],
+    [new String(""), true],
+    [new String, true]
+];
+
+function test1(c) {
+    return !!c;
+}
+noInline(test1);
+
+function test2(c) {
+    if (c)
+        return true;
+    return false;
+}
+noInline(test2);
+
+function test3(c) {
+    if (!c)
+        return false;
+    return true;
+}
+noInline(test3);
+
+let testFunctions = [test1, test2, test3];
+
+for (let testFunction of testFunctions) {
+    for (let i = 0; i < 10000; i++) {
+        let item = tests[i % tests.length];
+        assert(testFunction(item[0]) === item[1]);
+    }
+}
+
+let masquerader = makeMasquerader();
+for (let testFunction of testFunctions) {
+    for (let i = 0; i < 10000; i++) {
+        for (let i = 0; i < 10000; i++) {
+            assert(testFunction(masquerader) === false);
+        }
+    }
+}
-- 
GitLab