aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2018-10-24 15:30:26 +0200
committerMichaël Zasso <targos@protonmail.com>2018-10-28 10:17:58 +0100
commit124d91667abb203098baa7d6cf6011e8df5eeeff (patch)
tree105c8717e6a97f67656b3744863a1b8b310c74ce
parent1b473542dc54cbf6185c12021076d5c7626046ea (diff)
downloadandroid-node-v8-124d91667abb203098baa7d6cf6011e8df5eeeff.tar.gz
android-node-v8-124d91667abb203098baa7d6cf6011e8df5eeeff.tar.bz2
android-node-v8-124d91667abb203098baa7d6cf6011e8df5eeeff.zip
deps: patch V8 to 7.0.276.32
Refs: https://github.com/v8/v8/compare/7.0.276.28...7.0.276.32 PR-URL: https://github.com/nodejs/node/pull/23851 Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
-rw-r--r--deps/v8/include/v8-version.h2
-rw-r--r--deps/v8/infra/testing/PRESUBMIT.py4
-rw-r--r--deps/v8/infra/testing/builders.pyl1337
-rw-r--r--deps/v8/src/debug/debug-coverage.cc39
-rw-r--r--deps/v8/src/debug/debug-evaluate.cc7
-rw-r--r--deps/v8/src/debug/debug.cc15
-rw-r--r--deps/v8/src/interpreter/bytecode-array-accessor.cc13
-rw-r--r--deps/v8/src/interpreter/bytecode-array-accessor.h2
-rw-r--r--deps/v8/src/value-serializer.cc14
-rw-r--r--deps/v8/test/debugger/regress/regress-crbug-882664.js41
-rw-r--r--deps/v8/test/mjsunit/code-coverage-block.js44
11 files changed, 1471 insertions, 47 deletions
diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h
index 5005762818..360d80865c 100644
--- a/deps/v8/include/v8-version.h
+++ b/deps/v8/include/v8-version.h
@@ -11,7 +11,7 @@
#define V8_MAJOR_VERSION 7
#define V8_MINOR_VERSION 0
#define V8_BUILD_NUMBER 276
-#define V8_PATCH_LEVEL 28
+#define V8_PATCH_LEVEL 32
// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
diff --git a/deps/v8/infra/testing/PRESUBMIT.py b/deps/v8/infra/testing/PRESUBMIT.py
index e145534e6e..d8047bc244 100644
--- a/deps/v8/infra/testing/PRESUBMIT.py
+++ b/deps/v8/infra/testing/PRESUBMIT.py
@@ -115,9 +115,9 @@ def _check_test(error_msg, test):
if not all(isinstance(x, basestring) for x in test_args):
errors += error_msg('If specified, all test_args must be strings')
- # Limit shards to 10 to avoid erroneous resource exhaustion.
+ # Limit shards to 12 to avoid erroneous resource exhaustion.
errors += _check_int_range(
- error_msg, test, 'shards', lower_bound=1, upper_bound=10)
+ error_msg, test, 'shards', lower_bound=1, upper_bound=12)
variant = test.get('variant', 'default')
if not variant or not isinstance(variant, basestring):
diff --git a/deps/v8/infra/testing/builders.pyl b/deps/v8/infra/testing/builders.pyl
index b2cd761817..bf24d2c995 100644
--- a/deps/v8/infra/testing/builders.pyl
+++ b/deps/v8/infra/testing/builders.pyl
@@ -8,10 +8,10 @@
# come last. Test definitions must have keys in the following order, but omit
# optional fields:
# * name (required)
+# * suffix
# * variant
# * test_args
# * shards
-# * suffix
# * swarming_dimensions
# * swarming_task_attrs
#
@@ -39,7 +39,10 @@
'os': 'Android',
},
'tests': [
- {'name': 'mjsunit', 'variant': 'default', 'shards': 2},
+ {'name': 'benchmarks', 'variant': 'default'},
+ {'name': 'v8testing', 'variant': 'default', 'shards': 4},
+ {'name': 'mozilla', 'variant': 'default'},
+ {'name': 'test262_variants', 'variant': 'default', 'shards': 6},
],
},
##############################################################################
@@ -82,10 +85,15 @@
{'name': 'mozilla', 'variant': 'extra'},
{'name': 'test262_variants', 'shards': 2},
{'name': 'test262_variants', 'variant': 'extra', 'shards': 2},
- {'name': 'v8testing'},
+ {'name': 'v8testing', 'shards': 2},
{'name': 'v8testing', 'variant': 'extra'},
],
},
+ 'v8_linux_noembed_rel_ng_triggered': {
+ 'tests': [
+ {'name': 'v8testing', 'shards': 2},
+ ],
+ },
'v8_linux_noi18n_rel_ng_triggered': {
'tests': [
{'name': 'mozilla', 'variant': 'default'},
@@ -120,14 +128,69 @@
{'name': 'optimize_for_size'},
{'name': 'test262_variants', 'shards': 4},
{'name': 'test262_variants', 'variant': 'extra', 'shards': 2},
- {'name': 'v8testing'},
+ {'name': 'v8testing', 'shards': 2},
{'name': 'v8testing', 'suffix': 'isolates', 'test_args': ['--isolates'], 'shards': 2},
{'name': 'v8testing', 'variant': 'extra'},
],
},
+ 'v8_linux_optional_rel_ng_triggered': {
+ 'swarming_dimensions' : {
+ 'cpu': 'x86-64-avx2',
+ },
+ 'tests': [
+ # Code serializer.
+ {'name': 'benchmarks', 'variant': 'code_serializer', 'shards': 1},
+ {'name': 'd8testing', 'variant': 'code_serializer', 'shards': 1},
+ {'name': 'mozilla', 'variant': 'code_serializer', 'shards': 1},
+ {'name': 'test262_variants', 'variant': 'code_serializer', 'shards': 1},
+ # No SSE3.
+ {
+ 'name': 'mozilla',
+ 'suffix': 'nosse3',
+ 'test_args': [
+ '--extra-flags',
+ '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx',
+ ],
+ },
+ {
+ 'name': 'test262',
+ 'suffix': 'nosse3',
+ 'test_args': [
+ '--extra-flags',
+ '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx',
+ ],
+ },
+ {
+ 'name': 'v8testing',
+ 'suffix': 'nosse3',
+ 'test_args': [
+ '--extra-flags',
+ '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx',
+ ],
+ 'shards': 3,
+ },
+ # No SSE4.
+ {
+ 'name': 'mozilla',
+ 'suffix': 'nosse4',
+ 'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx'],
+ },
+ {
+ 'name': 'test262',
+ 'suffix': 'nosse4',
+ 'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx'],
+ },
+ {
+ 'name': 'v8testing',
+ 'suffix': 'nosse4',
+ 'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx'],
+ 'shards': 3,
+ },
+ ],
+ },
'v8_linux_verify_csa_rel_ng_triggered': {
'tests': [
- {'name': 'v8testing'},
+ {'name': 'v8testing', 'shards': 2},
],
},
##############################################################################
@@ -141,12 +204,17 @@
{'name': 'v8testing', 'variant': 'extra', 'shards': 3},
],
},
+ 'v8_linux_arm_lite_rel_ng_triggered': {
+ 'tests': [
+ {'name': 'v8testing', 'variant': 'default', 'shards': 4},
+ ],
+ },
'v8_linux_arm_rel_ng_triggered': {
'tests': [
{'name': 'mjsunit_sp_frame_access'},
- {'name': 'mozilla'},
- {'name': 'test262'},
- {'name': 'v8testing', 'shards': 7},
+ {'name': 'mozilla', 'shards': 2},
+ {'name': 'test262', 'shards': 2},
+ {'name': 'v8testing', 'shards': 8},
{'name': 'v8testing', 'variant': 'extra', 'shards': 3},
],
},
@@ -214,12 +282,23 @@
{'name': 'test262_variants', 'shards': 4},
{'name': 'test262_variants', 'variant': 'extra', 'shards': 2},
{'name': 'v8initializers'},
- {'name': 'v8testing'},
+ {'name': 'v8testing', 'shards': 2},
{'name': 'v8testing', 'variant': 'extra'},
{'name': 'v8testing', 'variant': 'minor_mc'},
{'name': 'v8testing', 'variant': 'slow_path'},
],
},
+ # TODO(machenbach): Experimental builder with incomplete configs. Should be
+ # similar to v8_linux64_rel_ng_triggered after testing.
+ 'v8_linux64_rel_xg': {
+ 'swarming_dimensions' : {
+ 'cpu': 'x86-64-avx2',
+ },
+ 'tests': [
+ {'name': 'v8initializers'},
+ {'name': 'v8testing', 'shards': 2},
+ ],
+ },
'v8_linux64_tsan_rel': {
'tests': [
{'name': 'benchmarks'},
@@ -242,7 +321,7 @@
},
'v8_linux64_verify_csa_rel_ng_triggered': {
'tests': [
- {'name': 'v8testing'},
+ {'name': 'v8testing', 'shards': 2},
],
},
##############################################################################
@@ -258,16 +337,34 @@
},
'v8_linux_arm64_gc_stress_dbg': {
'tests': [
- {'name': 'd8testing', 'test_args': ['--gc-stress'], 'shards': 8},
+ {'name': 'd8testing', 'test_args': ['--gc-stress'], 'shards': 10},
],
},
'v8_linux_arm64_rel_ng_triggered': {
'tests': [
{'name': 'mjsunit_sp_frame_access'},
- {'name': 'mozilla'},
- {'name': 'test262'},
+ {'name': 'mozilla', 'shards': 2},
+ {'name': 'test262', 'shards': 2},
{'name': 'v8testing', 'shards': 9},
- {'name': 'v8testing', 'variant': 'extra', 'shards': 4},
+ {'name': 'v8testing', 'variant': 'extra', 'shards': 6},
+ ],
+ },
+ ##############################################################################
+ # Odroids with native arm
+ 'v8_odroid_arm_rel_ng_triggered': {
+ 'swarming_dimensions' : {
+ 'cores': '8',
+ 'cpu': 'armv7l-32-ODROID-XU4',
+ 'os': 'Ubuntu-16.04',
+ },
+ 'swarming_task_attrs': {
+ # Use same prio as CI due to limited resources.
+ 'priority': 25,
+ },
+ 'tests': [
+ {'name': 'benchmarks'},
+ {'name': 'optimize_for_size'},
+ {'name': 'v8testing', 'shards': 2},
],
},
##############################################################################
@@ -298,7 +395,7 @@
},
'tests': [
{'name': 'test262'},
- {'name': 'v8testing'},
+ {'name': 'v8testing', 'shards': 2},
],
},
##############################################################################
@@ -331,7 +428,7 @@
'tests': [
{'name': 'mozilla'},
{'name': 'test262'},
- {'name': 'v8testing'},
+ {'name': 'v8testing', 'shards': 2},
],
},
'v8_win64_rel_ng_triggered': {
@@ -341,7 +438,7 @@
},
'tests': [
{'name': 'test262'},
- {'name': 'v8testing'},
+ {'name': 'v8testing', 'shards': 2},
{'name': 'v8testing', 'variant': 'extra'},
],
},
@@ -385,44 +482,319 @@
'tests': [
{'name': 'mozilla'},
{'name': 'test262'},
- {'name': 'v8testing'},
+ {'name': 'v8testing', 'shards': 2},
{'name': 'v8testing', 'variant': 'extra'},
],
},
##############################################################################
### luci.v8.ci
##############################################################################
- # Linux32
+ # Main.
+ 'V8 Fuzzer': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'jsfunfuzz'},
+ ],
+ },
+ 'V8 Linux': {
+ 'swarming_dimensions': {
+ 'cpu': 'x86-64-avx2',
+ },
+ 'tests': [
+ {'name': 'benchmarks'},
+ {'name': 'benchmarks', 'variant': 'extra'},
+ {'name': 'gcmole'},
+ {'name': 'mjsunit_sp_frame_access'},
+ {'name': 'mozilla'},
+ {'name': 'mozilla', 'variant': 'extra'},
+ {'name': 'optimize_for_size'},
+ {'name': 'test262_variants', 'shards': 2},
+ {'name': 'test262_variants', 'variant': 'extra'},
+ {'name': 'v8initializers'},
+ {'name': 'v8testing'},
+ {'name': 'v8testing', 'suffix': 'isolates', 'test_args': ['--isolates']},
+ {'name': 'v8testing', 'variant': 'extra'},
+ # Nosse3.
+ {
+ 'name': 'mozilla',
+ 'suffix': 'nosse3',
+ 'test_args': ['--extra-flags', '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx']
+ },
+ {
+ 'name': 'v8testing',
+ 'suffix': 'nosse3',
+ 'test_args': ['--extra-flags', '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx']
+ },
+ # Nosse4.
+ {
+ 'name': 'mozilla',
+ 'suffix': 'nosse4',
+ 'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx']
+ },
+ {
+ 'name': 'v8testing',
+ 'suffix': 'nosse4',
+ 'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx']
+ },
+ ],
+ },
+ 'V8 Linux - arm64 - sim - MSAN': {
+ 'tests': [
+ {'name': 'test262', 'shards': 3},
+ {'name': 'v8testing', 'shards': 4},
+ ],
+ },
'V8 Linux - debug': {
+ 'swarming_dimensions': {
+ 'cpu': 'x86-64-avx2',
+ },
'tests': [
+ {'name': 'benchmarks'},
{'name': 'benchmarks', 'variant': 'code_serializer', 'shards': 1},
+ {'name': 'benchmarks', 'variant': 'extra'},
{'name': 'd8testing', 'variant': 'code_serializer', 'shards': 1},
+ {'name': 'mjsunit_sp_frame_access'},
+ {'name': 'mozilla'},
{'name': 'mozilla', 'variant': 'code_serializer', 'shards': 1},
+ {'name': 'mozilla', 'variant': 'extra'},
+ {'name': 'optimize_for_size'},
+ {'name': 'test262_variants', 'shards': 6},
{'name': 'test262_variants', 'variant': 'code_serializer', 'shards': 1},
+ {'name': 'test262_variants', 'variant': 'extra', 'shards': 2},
+ {'name': 'v8testing', 'shards': 3},
+ {
+ 'name': 'v8testing',
+ 'suffix': 'isolates',
+ 'test_args': ['--isolates'],
+ 'shards': 4
+ },
+ {'name': 'v8testing', 'variant': 'extra'},
+ # Nosse3.
+ {
+ 'name': 'mozilla',
+ 'suffix': 'nosse3',
+ 'test_args': ['--extra-flags', '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx']
+ },
+ {
+ 'name': 'test262',
+ 'suffix': 'nosse3',
+ 'test_args': ['--extra-flags', '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx']
+ },
+ {
+ 'name': 'v8testing',
+ 'suffix': 'nosse3',
+ 'test_args': ['--extra-flags', '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx'],
+ 'shards': 3
+ },
+ # Nosse4.
+ {
+ 'name': 'mozilla',
+ 'suffix': 'nosse4',
+ 'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx']
+ },
+ {
+ 'name': 'test262',
+ 'suffix': 'nosse4',
+ 'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx']
+ },
+ {
+ 'name': 'v8testing',
+ 'suffix': 'nosse4',
+ 'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx'],
+ 'shards': 3
+ },
+ ],
+ },
+ 'V8 Linux - noembed': {
+ 'tests': [
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Linux - noembed - debug': {
+ 'tests': [
+ {'name': 'v8testing', 'shards': 3},
+ ],
+ },
+ 'V8 Linux - full debug': {
+ 'tests': [
+ {'name': 'v8testing', 'variant': 'default'},
],
},
'V8 Linux - gc stress': {
'tests': [
- {'name': 'mjsunit', 'variant': 'slow_path', 'shards': 2},
+ {
+ 'name': 'd8testing',
+ 'test_args': ['--gc-stress'],
+ 'shards': 5,
+ },
+ {
+ 'name': 'mjsunit',
+ 'variant': 'slow_path',
+ 'test_args': ['--gc-stress'],
+ 'shards': 2,
+ },
+ ],
+ },
+ 'V8 Linux - interpreted regexp': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Linux - noi18n - debug': {
+ 'tests': [
+ {'name': 'mozilla', 'variant': 'default'},
+ {'name': 'test262', 'variant': 'default'},
+ {'name': 'v8testing', 'variant': 'default'},
+ ],
+ },
+ 'V8 Linux - nosnap': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'mozilla', 'variant': 'default'},
+ {'name': 'test262', 'variant': 'default', 'shards': 2},
+ {'name': 'v8testing', 'variant': 'default', 'shards': 3},
+ ],
+ },
+ 'V8 Linux - nosnap - debug': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'v8testing', 'variant': 'default', 'shards': 12},
+ ],
+ },
+ 'V8 Linux - predictable': {
+ 'tests': [
+ {'name': 'benchmarks'},
+ {'name': 'd8testing'},
+ {'name': 'mozilla'},
+ ],
+ },
+ 'V8 Linux - presubmit': {
+ 'tests': [
+ {'name': 'presubmit'},
+ ],
+ },
+ 'V8 Linux - shared': {
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Linux - verify csa': {
+ 'tests': [
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Linux gcc 4.8': {
+ 'tests': [
+ {'name': 'v8testing'},
],
},
- ##############################################################################
- # Linux64
'V8 Linux64': {
+ 'swarming_dimensions': {
+ 'cpu': 'x86-64-avx2',
+ },
'tests': [
+ {'name': 'benchmarks'},
+ {'name': 'benchmarks', 'variant': 'extra'},
+ {'name': 'mjsunit_sp_frame_access'},
+ {'name': 'mozilla'},
+ {'name': 'mozilla', 'variant': 'extra'},
+ {'name': 'optimize_for_size'},
+ {'name': 'test262_variants', 'shards': 2},
+ {'name': 'test262_variants', 'variant': 'extra'},
+ {'name': 'v8initializers'},
+ {'name': 'v8testing'},
+ {'name': 'v8testing', 'variant': 'extra'},
{'name': 'v8testing', 'variant': 'minor_mc', 'shards': 1},
+ # Noavx.
+ {
+ 'name': 'mozilla',
+ 'suffix': 'noavx',
+ 'test_args': ['--extra-flags', '--noenable-avx']
+ },
+ {
+ 'name': 'test262',
+ 'suffix': 'noavx',
+ 'test_args': ['--extra-flags', '--noenable-avx']
+ },
+ {
+ 'name': 'v8testing',
+ 'suffix': 'noavx',
+ 'test_args': ['--extra-flags', '--noenable-avx']
+ },
+ ],
+ },
+ 'V8 Linux64 - cfi': {
+ 'tests': [
+ {'name': 'benchmarks'},
+ {'name': 'mozilla'},
+ {'name': 'optimize_for_size'},
+ {'name': 'test262'},
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Linux64 - custom snapshot - debug': {
+ 'tests': [
+ {'name': 'mjsunit', 'test_args': ['--no-harness']},
],
},
'V8 Linux64 - debug': {
+ 'swarming_dimensions': {
+ 'cpu': 'x86-64-avx2',
+ },
'tests': [
+ {'name': 'benchmarks'},
+ {'name': 'benchmarks', 'variant': 'extra'},
+ {'name': 'mjsunit_sp_frame_access'},
+ {'name': 'mozilla'},
+ {'name': 'mozilla', 'variant': 'extra'},
+ {'name': 'optimize_for_size'},
+ {'name': 'test262_variants', 'shards': 5},
+ {'name': 'test262_variants', 'variant': 'extra', 'shards': 2},
+ {'name': 'v8testing', 'shards': 2},
+ {'name': 'v8testing', 'variant': 'extra'},
{'name': 'v8testing', 'variant': 'minor_mc', 'shards': 1},
{'name': 'v8testing', 'variant': 'slow_path', 'shards': 1},
+ # Noavx.
+ {
+ 'name': 'mozilla',
+ 'suffix': 'noavx',
+ 'test_args': ['--extra-flags', '--noenable-avx']
+ },
+ {
+ 'name': 'test262',
+ 'suffix': 'noavx',
+ 'test_args': ['--extra-flags', '--noenable-avx']
+ },
+ {
+ 'name': 'v8testing',
+ 'suffix': 'noavx',
+ 'test_args': ['--extra-flags', '--noenable-avx'],
+ 'shards': 2
+ },
],
},
'V8 Linux64 - debug - fyi': {
'tests': [
# Infra staging.
- {'name': 'test262_variants', 'variant': 'infra_staging', 'shards': 3},
{'name': 'v8testing', 'variant': 'infra_staging', 'shards': 2},
# Stress sampling.
{'name': 'mjsunit', 'variant': 'stress_sampling', 'shards': 1},
@@ -431,20 +803,935 @@
},
'V8 Linux64 - fyi': {
'tests': [
- {'name': 'mjsunit', 'variant': 'stress_sampling', 'shards': 1},
- {'name': 'test262_variants', 'variant': 'infra_staging', 'shards': 2},
+ # Infra staging.
{'name': 'v8testing', 'variant': 'infra_staging', 'shards': 1},
+ # Stress sampling.
+ {'name': 'mjsunit', 'variant': 'stress_sampling', 'shards': 1},
{'name': 'webkit', 'variant': 'stress_sampling', 'shards': 1},
],
},
+ 'V8 Linux64 - gcov coverage': {
+ 'tests': [
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Linux64 - internal snapshot': {
+ 'tests': [
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Linux64 - verify csa': {
+ 'tests': [
+ {'name': 'v8testing'},
+ ],
+ },
'V8 Linux64 ASAN': {
'tests': [
+ {'name': 'test262_variants', 'shards': 5},
+ {'name': 'v8testing', 'shards': 2},
+ {'name': 'v8testing', 'variant': 'extra'},
{'name': 'v8testing', 'variant': 'slow_path', 'shards': 1},
],
},
+ 'V8 Linux64 GC Stress - custom snapshot': {
+ 'tests': [
+ {
+ 'name': 'mjsunit',
+ 'test_args': ['--gc-stress', '--no-harness'],
+ 'shards': 3,
+ },
+ ],
+ },
'V8 Linux64 TSAN': {
'tests': [
+ {'name': 'benchmarks'},
+ {'name': 'mozilla'},
+ {'name': 'test262', 'shards': 3},
+ {'name': 'v8testing', 'shards': 5},
+ {'name': 'v8testing', 'variant': 'extra', 'shards': 3},
{'name': 'v8testing', 'variant': 'slow_path', 'shards': 1},
],
},
+ 'V8 Linux64 TSAN - concurrent marking': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {
+ 'name': 'benchmarks',
+ 'test_args': ['--extra-flags=--stress-incremental-marking'],
+ },
+ {
+ 'name': 'mozilla',
+ 'test_args': ['--extra-flags=--stress-incremental-marking'],
+ },
+ {
+ 'name': 'test262',
+ 'test_args': ['--extra-flags=--stress-incremental-marking'],
+ 'shards': 4,
+ },
+ {
+ 'name': 'v8testing',
+ 'test_args': ['--extra-flags=--stress-incremental-marking'],
+ 'shards': 4,
+ },
+ ],
+ },
+ 'V8 Linux64 TSAN - isolates': {
+ 'tests': [
+ {'name': 'v8testing', 'test_args': ['--isolates'], 'shards': 5},
+ ],
+ },
+ 'V8 Linux64 UBSan': {
+ 'tests': [
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Linux64 UBSanVptr': {
+ 'tests': [
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Mac64': {
+ 'swarming_dimensions': {
+ 'cpu': 'x86-64',
+ 'os': 'Mac-10.13',
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing'},
+ {'name': 'v8testing', 'variant': 'extra'},
+ ],
+ },
+ 'V8 Mac64 - debug': {
+ 'swarming_dimensions': {
+ 'cpu': 'x86-64',
+ 'os': 'Mac-10.13',
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 3},
+ {'name': 'v8testing', 'variant': 'extra'},
+ ],
+ },
+ 'V8 Mac64 ASAN': {
+ 'swarming_dimensions': {
+ 'cpu': 'x86-64',
+ 'os': 'Mac-10.13',
+ },
+ 'tests': [
+ {'name': 'v8testing', 'shards': 5},
+ ],
+ },
+ 'V8 Mac64 GC Stress': {
+ 'swarming_dimensions': {
+ 'cpu': 'x86-64',
+ 'os': 'Mac-10.13',
+ },
+ 'tests': [
+ {'name': 'd8testing', 'test_args': ['--gc-stress'], 'shards': 4},
+ ],
+ },
+ 'V8 Win32': {
+ 'swarming_dimensions': {
+ 'cpu': 'x86-64',
+ 'os': 'Windows-7-SP1',
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Win32 - debug': {
+ 'swarming_dimensions': {
+ 'cpu': 'x86-64',
+ 'os': 'Windows-7-SP1',
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 5},
+ ],
+ },
+ 'V8 Win32 - nosnap - shared': {
+ 'swarming_dimensions': {
+ 'cpu': 'x86-64',
+ 'os': 'Windows-7-SP1',
+ },
+ 'tests': [
+ {'name': 'v8testing', 'variant': 'default', 'shards': 2},
+ ],
+ },
+ 'V8 Win64': {
+ 'swarming_dimensions': {
+ 'os': 'Windows-7-SP1',
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing'},
+ {'name': 'v8testing', 'variant': 'extra'},
+ ],
+ },
+ 'V8 Win64 - debug': {
+ 'swarming_dimensions': {
+ 'os': 'Windows-7-SP1',
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 4},
+ {'name': 'v8testing', 'variant': 'extra', 'shards': 3},
+ ],
+ },
+ 'V8 Win64 - msvc': {
+ 'swarming_dimensions': {
+ 'os': 'Windows-7-SP1',
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Win64 ASAN': {
+ 'swarming_dimensions': {
+ 'os': 'Windows-10',
+ },
+ 'tests': [
+ {'name': 'v8testing', 'shards': 5},
+ ],
+ },
+ ##############################################################################
+ # Ports.
+ 'V8 Android Arm64 - N5X': {
+ 'swarming_dimensions': {
+ 'device_os': 'MMB29Q',
+ 'device_type': 'bullhead',
+ 'os': 'Android',
+ },
+ 'tests': [
+ {'name': 'mozilla', 'variant': 'default'},
+ {'name': 'test262', 'variant': 'default', 'shards': 5},
+ {'name': 'v8testing', 'variant': 'default', 'shards': 3},
+ ],
+ },
+ 'V8 Arm': {
+ 'swarming_dimensions': {
+ 'cores': '2',
+ 'cpu': 'armv7l',
+ },
+ 'swarming_task_attrs': {
+ 'expiration': 21600,
+ 'hard_timeout': 5400,
+ },
+ 'tests': [
+ {'name': 'benchmarks'},
+ {'name': 'optimize_for_size'},
+ {'name': 'v8testing', 'shards': 2},
+ # Odroid.
+ {
+ 'name': 'benchmarks',
+ 'suffix': 'ODROID',
+ 'swarming_dimensions': {
+ 'cores': '8',
+ 'os': 'Ubuntu-16.04',
+ 'cpu': 'armv7l-32-ODROID-XU4',
+ }
+ },
+ {
+ 'name': 'optimize_for_size',
+ 'suffix': 'ODROID',
+ 'swarming_dimensions': {
+ 'cores': '8',
+ 'os': 'Ubuntu-16.04',
+ 'cpu': 'armv7l-32-ODROID-XU4',
+ }
+ },
+ {
+ 'name': 'v8testing',
+ 'suffix': 'ODROID',
+ 'shards': 2,
+ 'swarming_dimensions': {
+ 'cores': '8',
+ 'os': 'Ubuntu-16.04',
+ 'cpu': 'armv7l-32-ODROID-XU4',
+ }
+ },
+ ],
+ },
+ 'V8 Arm - debug': {
+ 'swarming_dimensions': {
+ 'cores': '2',
+ 'cpu': 'armv7l',
+ },
+ 'swarming_task_attrs': {
+ 'expiration': 21600,
+ 'hard_timeout': 3600,
+ },
+ 'tests': [
+ {
+ 'name': 'optimize_for_size',
+ 'variant': 'default',
+ 'test_args': ['--extra-flags=--verify-heap-skip-remembered-set'],
+ 'shards': 2
+ },
+ {
+ 'name': 'v8testing',
+ 'variant': 'default',
+ 'test_args': ['--extra-flags=--verify-heap-skip-remembered-set'],
+ 'shards': 3
+ },
+ # Odroid.
+ {
+ 'name': 'optimize_for_size',
+ 'suffix': 'ODROID',
+ 'variant': 'default',
+ 'test_args': ['--extra-flags=--verify-heap-skip-remembered-set'],
+ 'shards': 2,
+ 'swarming_dimensions': {
+ 'cores': '8',
+ 'os': 'Ubuntu-16.04',
+ 'cpu': 'armv7l-32-ODROID-XU4',
+ }
+ },
+ {
+ 'name': 'v8testing',
+ 'suffix': 'ODROID',
+ 'variant': 'default',
+ 'test_args': ['--extra-flags=--verify-heap-skip-remembered-set'],
+ 'shards': 3,
+ 'swarming_dimensions': {
+ 'cores': '8',
+ 'os': 'Ubuntu-16.04',
+ 'cpu': 'armv7l-32-ODROID-XU4',
+ }
+ },
+ ],
+ },
+ 'V8 Arm GC Stress': {
+ 'swarming_dimensions': {
+ 'cores': '2',
+ 'cpu': 'armv7l',
+ },
+ 'swarming_task_attrs': {
+ 'expiration': 21600,
+ 'hard_timeout': 7200,
+ },
+ 'tests': [
+ {
+ 'name': 'd8testing',
+ 'variant': 'default',
+ 'test_args': ['--gc-stress', '--extra-flags=--verify-heap-skip-remembered-set'],
+ 'shards': 3
+ },
+ {
+ 'name': 'd8testing',
+ 'suffix': 'ODROID',
+ 'variant': 'default',
+ 'test_args': ['--gc-stress', '--extra-flags=--verify-heap-skip-remembered-set'],
+ 'shards': 3,
+ 'swarming_dimensions': {
+ 'cores': '8',
+ 'os': 'Ubuntu-16.04',
+ 'cpu': 'armv7l-32-ODROID-XU4',
+ }
+ },
+ ],
+ },
+ 'V8 Linux - arm - sim': {
+ 'tests': [
+ {'name': 'mjsunit_sp_frame_access'},
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 4},
+ {'name': 'v8testing', 'variant': 'extra'},
+ # Armv8-a.
+ {
+ 'name': 'mozilla',
+ 'suffix': 'armv8-a',
+ 'test_args': ['--extra-flags', '--enable-armv8']
+ },
+ {
+ 'name': 'test262',
+ 'suffix': 'armv8-a',
+ 'test_args': ['--extra-flags', '--enable-armv8']
+ },
+ {
+ 'name': 'v8testing',
+ 'suffix': 'armv8-a',
+ 'test_args': ['--extra-flags', '--enable-armv8'],
+ 'shards': 4
+ },
+ # Novfp3.
+ {'name': 'mozilla', 'suffix': 'novfp3', 'test_args': ['--novfp3']},
+ {'name': 'test262', 'suffix': 'novfp3', 'test_args': ['--novfp3']},
+ {
+ 'name': 'v8testing',
+ 'suffix': 'novfp3',
+ 'test_args': ['--novfp3'],
+ 'shards': 4
+ },
+ ],
+ },
+ 'V8 Linux - arm - sim - debug': {
+ 'tests': [
+ {'name': 'mjsunit_sp_frame_access'},
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 7},
+ {'name': 'v8testing', 'variant': 'extra', 'shards': 3},
+ # Armv8-a.
+ {
+ 'name': 'mozilla',
+ 'suffix': 'armv8-a',
+ 'test_args': ['--extra-flags', '--enable-armv8']
+ },
+ {
+ 'name': 'test262',
+ 'suffix': 'armv8-a',
+ 'test_args': ['--extra-flags', '--enable-armv8']
+ },
+ {
+ 'name': 'v8testing',
+ 'suffix': 'armv8-a',
+ 'test_args': ['--extra-flags', '--enable-armv8'],
+ 'shards': 7
+ },
+ # Novfp3.
+ {
+ 'name': 'mozilla',
+ 'suffix': 'novfp3',
+ 'variant': 'default',
+ 'test_args': ['--novfp3']
+ },
+ {
+ 'name': 'test262',
+ 'suffix': 'novfp3',
+ 'variant': 'default',
+ 'test_args': ['--novfp3']
+ },
+ {
+ 'name': 'v8testing',
+ 'suffix': 'novfp3',
+ 'variant': 'default',
+ 'test_args': ['--novfp3'],
+ 'shards': 7
+ },
+ ],
+ },
+ 'V8 Linux - arm - sim - lite': {
+ 'tests': [
+ {'name': 'v8testing', 'variant': 'default', 'shards': 2},
+ ],
+ },
+ 'V8 Linux - arm - sim - lite - debug': {
+ 'tests': [
+ {'name': 'v8testing', 'variant': 'default', 'shards': 4},
+ ],
+ },
+ 'V8 Linux - arm64 - sim': {
+ 'tests': [
+ {'name': 'mjsunit_sp_frame_access'},
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 3},
+ {'name': 'v8testing', 'variant': 'extra'},
+ ],
+ },
+ 'V8 Linux - arm64 - sim - debug': {
+ 'tests': [
+ {'name': 'mjsunit_sp_frame_access'},
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 10},
+ {'name': 'v8testing', 'variant': 'extra', 'shards': 6},
+ ],
+ },
+ 'V8 Linux - arm64 - sim - gc stress': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 7200,
+ 'priority': 35,
+ },
+ 'tests': [
+ {
+ 'name': 'd8testing',
+ 'test_args': ['--gc-stress', '--extra-flags=--verify-heap-skip-remembered-set'],
+ 'shards': 5
+ },
+ ],
+ },
+ 'V8 Linux - mips64el - sim': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 4},
+ ],
+ },
+ 'V8 Linux - mipsel - sim': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 4},
+ ],
+ },
+ 'V8 Linux - ppc64 - sim': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'v8testing', 'shards': 3},
+ ],
+ },
+ 'V8 Linux - s390x - sim': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'v8testing', 'shards': 3},
+ ],
+ },
+ 'V8 Mips - big endian - nosnap': {
+ 'swarming_dimensions': {
+ 'cpu': 'mips-32',
+ 'os': 'Debian-8.7',
+ },
+ 'swarming_task_attrs': {
+ 'expiration': 18000,
+ 'hard_timeout': 18000,
+ },
+ 'tests': [
+ {'name': 'v8testing', 'variant': 'default', 'shards': 2},
+ ],
+ },
+ ##############################################################################
+ # Clusterfuzz.
+ 'V8 NumFuzz': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'deopt',
+ 'test_args': ['--total-timeout-sec=2100', '--stress-deopt=1']
+ },
+ ],
+ },
+ 'V8 NumFuzz - TSAN': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'd8testing_random_gc', 'shards': 2},
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'marking',
+ 'test_args': ['--total-timeout-sec=2100', '--stress-marking=1']
+ },
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'endurance',
+ 'test_args': [
+ '--total-timeout-sec=1200',
+ '--combine-tests',
+ '--combine-min=10',
+ '--combine-max=30',
+ '--stress-delay-tasks=1',
+ '--stress-compaction=2',
+ '--stress-gc=6',
+ '--stress-marking=6',
+ '--stress-scavenge=4',
+ '--stress-thread-pool-size=1',
+ ],
+ },
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'delay',
+ 'test_args': ['--total-timeout-sec=2100', '--stress-delay-tasks=1']
+ },
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'threads',
+ 'test_args': ['--total-timeout-sec=2100', '--stress-thread-pool-size=1']
+ },
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'combined',
+ 'test_args': [
+ '--total-timeout-sec=2100',
+ '--stress-delay-tasks=4',
+ '--stress-deopt=2',
+ '--stress-compaction=2',
+ '--stress-gc=4',
+ '--stress-marking=4',
+ '--stress-scavenge=4',
+ '--stress-thread-pool-size=2',
+ ],
+ 'shards': 4
+ },
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'scavenge',
+ 'test_args': ['--total-timeout-sec=2100', '--stress-scavenge=1']
+ },
+ ],
+ },
+ 'V8 NumFuzz - debug': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'd8testing_random_gc'},
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'marking',
+ 'test_args': ['--total-timeout-sec=2100', '--stress-marking=1'],
+ 'shards': 2
+ },
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'endurance',
+ 'test_args': [
+ '--total-timeout-sec=1200',
+ '--combine-tests',
+ '--combine-min=30',
+ '--combine-max=50',
+ '--stress-delay-tasks=1',
+ '--stress-deopt=2',
+ '--stress-compaction=2',
+ '--stress-gc=6',
+ '--stress-marking=6',
+ '--stress-scavenge=4',
+ '--stress-thread-pool-size=1',
+ ],
+ },
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'delay',
+ 'test_args': ['--total-timeout-sec=2100', '--stress-delay-tasks=1']
+ },
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'threads',
+ 'test_args': ['--total-timeout-sec=2100', '--stress-thread-pool-size=1']
+ },
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'combined',
+ 'test_args': [
+ '--total-timeout-sec=2100',
+ '--stress-delay-tasks=4',
+ '--stress-deopt=2',
+ '--stress-compaction=2',
+ '--stress-gc=4',
+ '--stress-marking=4',
+ '--stress-scavenge=4',
+ '--stress-thread-pool-size=2',
+ ],
+ 'shards': 3
+ },
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'scavenge',
+ 'test_args': ['--total-timeout-sec=2100', '--stress-scavenge=1']
+ },
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'deopt',
+ 'test_args': ['--total-timeout-sec=2100', '--stress-deopt=1'],
+ 'shards': 2
+ },
+ ],
+ },
+ 'V8 NumFuzz - nosnap': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'interrupt-budget',
+ 'test_args': [
+ '--total-timeout-sec=2100',
+ '--stress-interrupt-budget=10',
+ '--stress-deopt=5',
+ ]
+ },
+ ],
+ },
+ 'V8 NumFuzz - nosnap debug': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 3600,
+ 'priority': 35,
+ },
+ 'tests': [
+ {
+ 'name': 'numfuzz',
+ 'suffix': 'interrupt-budget',
+ 'test_args': [
+ '--total-timeout-sec=2100',
+ '--stress-interrupt-budget=10',
+ '--stress-deopt=5',
+ ]
+ },
+ ],
+ },
+ ##############################################################################
+ # Clusterfuzz.
+ 'V8 Linux - beta branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'presubmit'},
+ {'name': 'test262'},
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Linux - beta branch - debug': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'presubmit'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 3},
+ ],
+ },
+ 'V8 Linux - stable branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'presubmit'},
+ {'name': 'test262'},
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Linux - stable branch - debug': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'presubmit'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 3},
+ ],
+ },
+ 'V8 Linux64 - beta branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Linux64 - beta branch - debug': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 3},
+ ],
+ },
+ 'V8 Linux64 - stable branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing'},
+ ],
+ },
+ 'V8 Linux64 - stable branch - debug': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 3},
+ ],
+ },
+ 'V8 arm - sim - beta branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 2},
+ ],
+ },
+ 'V8 arm - sim - beta branch - debug': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 3},
+ ],
+ },
+ 'V8 arm - sim - stable branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 2},
+ ],
+ },
+ 'V8 arm - sim - stable branch - debug': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'mozilla'},
+ {'name': 'test262'},
+ {'name': 'v8testing', 'shards': 3},
+ ],
+ },
+ 'V8 mips64el - sim - beta branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'unittests'},
+ ],
+ },
+ 'V8 mips64el - sim - stable branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'unittests'},
+ ],
+ },
+ 'V8 mipsel - sim - beta branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'v8testing', 'shards': 4},
+ ],
+ },
+ 'V8 mipsel - sim - stable branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'v8testing', 'shards': 4},
+ ],
+ },
+ 'V8 ppc64 - sim - beta branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'unittests'},
+ ],
+ },
+ 'V8 ppc64 - sim - stable branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'unittests'},
+ ],
+ },
+ 'V8 s390x - sim - beta branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'unittests'},
+ ],
+ },
+ 'V8 s390x - sim - stable branch': {
+ 'swarming_task_attrs': {
+ 'expiration': 14400,
+ 'hard_timeout': 5400,
+ 'priority': 35,
+ },
+ 'tests': [
+ {'name': 'unittests'},
+ ],
+ },
}
diff --git a/deps/v8/src/debug/debug-coverage.cc b/deps/v8/src/debug/debug-coverage.cc
index a71c9e572b..f8b716f7c9 100644
--- a/deps/v8/src/debug/debug-coverage.cc
+++ b/deps/v8/src/debug/debug-coverage.cc
@@ -171,6 +171,12 @@ class CoverageBlockIterator final {
return function_->blocks[read_index_ + 1];
}
+ CoverageBlock& GetPreviousBlock() {
+ DCHECK(IsActive());
+ DCHECK_GT(read_index_, 0);
+ return function_->blocks[read_index_ - 1];
+ }
+
CoverageBlock& GetParent() {
DCHECK(IsActive());
return nesting_stack_.back();
@@ -325,6 +331,30 @@ void MergeNestedRanges(CoverageFunction* function) {
}
}
+void FilterAliasedSingletons(CoverageFunction* function) {
+ CoverageBlockIterator iter(function);
+
+ iter.Next(); // Advance once since we reference the previous block later.
+
+ while (iter.Next()) {
+ CoverageBlock& previous_block = iter.GetPreviousBlock();
+ CoverageBlock& block = iter.GetBlock();
+
+ bool is_singleton = block.end == kNoSourcePosition;
+ bool aliases_start = block.start == previous_block.start;
+
+ if (is_singleton && aliases_start) {
+ // The previous block must have a full range since duplicate singletons
+ // have already been merged.
+ DCHECK_NE(previous_block.end, kNoSourcePosition);
+ // Likewise, the next block must have another start position since
+ // singletons are sorted to the end.
+ DCHECK_IMPLIES(iter.HasNext(), iter.GetNextBlock().start != block.start);
+ iter.DeleteBlock();
+ }
+ }
+}
+
void FilterUncoveredRanges(CoverageFunction* function) {
CoverageBlockIterator iter(function);
@@ -397,6 +427,15 @@ void CollectBlockCoverage(CoverageFunction* function, SharedFunctionInfo* info,
// Remove duplicate singleton ranges, keeping the max count.
MergeDuplicateSingletons(function);
+ // Remove singleton ranges with the same start position as a full range and
+ // throw away their counts.
+ // Singleton ranges are only intended to split existing full ranges and should
+ // never expand into a full range. Consider 'if (cond) { ... } else { ... }'
+ // as a problematic example; if the then-block produces a continuation
+ // singleton, it would incorrectly expand into the else range.
+ // For more context, see https://crbug.com/v8/8237.
+ FilterAliasedSingletons(function);
+
// Rewrite all singletons (created e.g. by continuations and unconditional
// control flow) to ranges.
RewritePositionSingletonsToRanges(function);
diff --git a/deps/v8/src/debug/debug-evaluate.cc b/deps/v8/src/debug/debug-evaluate.cc
index 5466ca050b..583b41f1b2 100644
--- a/deps/v8/src/debug/debug-evaluate.cc
+++ b/deps/v8/src/debug/debug-evaluate.cc
@@ -995,12 +995,7 @@ void DebugEvaluate::ApplySideEffectChecks(
for (interpreter::BytecodeArrayIterator it(bytecode_array); !it.done();
it.Advance()) {
interpreter::Bytecode bytecode = it.current_bytecode();
- if (BytecodeRequiresRuntimeCheck(bytecode)) {
- interpreter::Bytecode debugbreak =
- interpreter::Bytecodes::GetDebugBreak(bytecode);
- bytecode_array->set(it.current_offset(),
- interpreter::Bytecodes::ToByte(debugbreak));
- }
+ if (BytecodeRequiresRuntimeCheck(bytecode)) it.ApplyDebugBreak();
}
}
diff --git a/deps/v8/src/debug/debug.cc b/deps/v8/src/debug/debug.cc
index a7114b1434..3a3a48b699 100644
--- a/deps/v8/src/debug/debug.cc
+++ b/deps/v8/src/debug/debug.cc
@@ -279,15 +279,12 @@ void BreakIterator::SkipToPosition(int position) {
void BreakIterator::SetDebugBreak() {
DebugBreakType debug_break_type = GetDebugBreakType();
if (debug_break_type == DEBUGGER_STATEMENT) return;
+ HandleScope scope(isolate());
DCHECK(debug_break_type >= DEBUG_BREAK_SLOT);
- BytecodeArray* bytecode_array = debug_info_->DebugBytecodeArray();
- interpreter::Bytecode bytecode =
- interpreter::Bytecodes::FromByte(bytecode_array->get(code_offset()));
- if (interpreter::Bytecodes::IsDebugBreak(bytecode)) return;
- interpreter::Bytecode debugbreak =
- interpreter::Bytecodes::GetDebugBreak(bytecode);
- bytecode_array->set(code_offset(),
- interpreter::Bytecodes::ToByte(debugbreak));
+ Handle<BytecodeArray> bytecode_array(debug_info_->DebugBytecodeArray(),
+ isolate());
+ interpreter::BytecodeArrayAccessor(bytecode_array, code_offset())
+ .ApplyDebugBreak();
}
void BreakIterator::ClearDebugBreak() {
@@ -2127,6 +2124,8 @@ void Debug::ClearSideEffectChecks(Handle<DebugInfo> debug_info) {
Handle<BytecodeArray> original(debug_info->OriginalBytecodeArray(), isolate_);
for (interpreter::BytecodeArrayIterator it(debug_bytecode); !it.done();
it.Advance()) {
+ // Restore from original. This may copy only the scaling prefix, which is
+ // correct, since we patch scaling prefixes to debug breaks if exists.
debug_bytecode->set(it.current_offset(),
original->get(it.current_offset()));
}
diff --git a/deps/v8/src/interpreter/bytecode-array-accessor.cc b/deps/v8/src/interpreter/bytecode-array-accessor.cc
index ef6bdd30a1..3ec2cc595b 100644
--- a/deps/v8/src/interpreter/bytecode-array-accessor.cc
+++ b/deps/v8/src/interpreter/bytecode-array-accessor.cc
@@ -28,6 +28,19 @@ void BytecodeArrayAccessor::SetOffset(int offset) {
UpdateOperandScale();
}
+void BytecodeArrayAccessor::ApplyDebugBreak() {
+ // Get the raw bytecode from the bytecode array. This may give us a
+ // scaling prefix, which we can patch with the matching debug-break
+ // variant.
+ interpreter::Bytecode bytecode =
+ interpreter::Bytecodes::FromByte(bytecode_array_->get(bytecode_offset_));
+ if (interpreter::Bytecodes::IsDebugBreak(bytecode)) return;
+ interpreter::Bytecode debugbreak =
+ interpreter::Bytecodes::GetDebugBreak(bytecode);
+ bytecode_array_->set(bytecode_offset_,
+ interpreter::Bytecodes::ToByte(debugbreak));
+}
+
void BytecodeArrayAccessor::UpdateOperandScale() {
if (OffsetInBounds()) {
uint8_t current_byte = bytecode_array()->get(bytecode_offset_);
diff --git a/deps/v8/src/interpreter/bytecode-array-accessor.h b/deps/v8/src/interpreter/bytecode-array-accessor.h
index 443929aefe..e36eed8ade 100644
--- a/deps/v8/src/interpreter/bytecode-array-accessor.h
+++ b/deps/v8/src/interpreter/bytecode-array-accessor.h
@@ -70,6 +70,8 @@ class V8_EXPORT_PRIVATE BytecodeArrayAccessor {
void SetOffset(int offset);
+ void ApplyDebugBreak();
+
Bytecode current_bytecode() const;
int current_bytecode_size() const;
int current_offset() const { return bytecode_offset_; }
diff --git a/deps/v8/src/value-serializer.cc b/deps/v8/src/value-serializer.cc
index 26ab746e8c..0633d19a2a 100644
--- a/deps/v8/src/value-serializer.cc
+++ b/deps/v8/src/value-serializer.cc
@@ -517,12 +517,14 @@ Maybe<bool> ValueSerializer::WriteJSReceiver(Handle<JSReceiver> receiver) {
case JS_TYPED_ARRAY_TYPE:
case JS_DATA_VIEW_TYPE:
return WriteJSArrayBufferView(JSArrayBufferView::cast(*receiver));
- case WASM_MODULE_TYPE:
- if (!FLAG_wasm_disable_structured_cloning) {
+ case WASM_MODULE_TYPE: {
+ auto enabled_features = wasm::WasmFeaturesFromIsolate(isolate_);
+ if (!FLAG_wasm_disable_structured_cloning || enabled_features.threads) {
// Only write WebAssembly modules if not disabled by a flag.
return WriteWasmModule(Handle<WasmModuleObject>::cast(receiver));
}
break;
+ }
case WASM_MEMORY_TYPE: {
auto enabled_features = wasm::WasmFeaturesFromIsolate(isolate_);
if (enabled_features.threads) {
@@ -1753,7 +1755,9 @@ MaybeHandle<JSArrayBufferView> ValueDeserializer::ReadJSArrayBufferView(
}
MaybeHandle<JSObject> ValueDeserializer::ReadWasmModuleTransfer() {
- if (FLAG_wasm_disable_structured_cloning || expect_inline_wasm()) {
+ auto enabled_features = wasm::WasmFeaturesFromIsolate(isolate_);
+ if ((FLAG_wasm_disable_structured_cloning && !enabled_features.threads) ||
+ expect_inline_wasm()) {
return MaybeHandle<JSObject>();
}
@@ -1775,7 +1779,9 @@ MaybeHandle<JSObject> ValueDeserializer::ReadWasmModuleTransfer() {
}
MaybeHandle<JSObject> ValueDeserializer::ReadWasmModule() {
- if (FLAG_wasm_disable_structured_cloning || !expect_inline_wasm()) {
+ auto enabled_features = wasm::WasmFeaturesFromIsolate(isolate_);
+ if ((FLAG_wasm_disable_structured_cloning && !enabled_features.threads) ||
+ !expect_inline_wasm()) {
return MaybeHandle<JSObject>();
}
diff --git a/deps/v8/test/debugger/regress/regress-crbug-882664.js b/deps/v8/test/debugger/regress/regress-crbug-882664.js
new file mode 100644
index 0000000000..399cfba9e2
--- /dev/null
+++ b/deps/v8/test/debugger/regress/regress-crbug-882664.js
@@ -0,0 +1,41 @@
+// 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 provoke_scaling_prefix() {
+ var a = [0];
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++; a[0]++;
+ return a;
+}
+
+Debug = debug.Debug;
+
+function success(expectation, source) {
+ const result = Debug.evaluateGlobal(source, true).value();
+ assertEquals(expectation, result);
+}
+
+success([216], "provoke_scaling_prefix()");
diff --git a/deps/v8/test/mjsunit/code-coverage-block.js b/deps/v8/test/mjsunit/code-coverage-block.js
index 2ecd1b0d1e..8cbb2969f7 100644
--- a/deps/v8/test/mjsunit/code-coverage-block.js
+++ b/deps/v8/test/mjsunit/code-coverage-block.js
@@ -847,7 +847,49 @@ Util.escape("foo.bar"); // 0400
[{"start":0,"end":449,"count":1},
{"start":64,"end":351,"count":1},
{"start":112,"end":203,"count":0},
- {"start":303,"end":350,"count":0}]
+ {"start":268,"end":350,"count":0}]
+);
+
+TestCoverage(
+"https://crbug.com/v8/8237",
+`
+!function() { // 0000
+ if (true) // 0050
+ while (false) return; else nop(); // 0100
+}(); // 0150
+!function() { // 0200
+ if (true) l0: { break l0; } else // 0250
+ if (nop()) { } // 0300
+}(); // 0350
+!function() { // 0400
+ if (true) { if (false) { return; } // 0450
+ } else if (nop()) { } }(); // 0500
+!function(){ // 0550
+ if(true)while(false)return;else nop() // 0600
+}(); // 0650
+!function(){ // 0700
+ if(true) l0:{break l0}else if (nop()){} // 0750
+}(); // 0800
+!function(){ // 0850
+ if(true){if(false){return}}else // 0900
+ if(nop()){} // 0950
+}(); // 1000
+`,
+[{"start":0,"end":1049,"count":1},
+ {"start":1,"end":151,"count":1},
+ {"start":118,"end":137,"count":0},
+ {"start":201,"end":351,"count":1},
+ {"start":277,"end":318,"count":0},
+ {"start":401,"end":525,"count":1},
+ {"start":475,"end":486,"count":0},
+ {"start":503,"end":523,"count":0},
+ {"start":551,"end":651,"count":1},
+ {"start":622,"end":639,"count":0},
+ {"start":701,"end":801,"count":1},
+ {"start":773,"end":791,"count":0},
+ {"start":851,"end":1001,"count":1},
+ {"start":920,"end":928,"count":0},
+ {"start":929,"end":965,"count":0}]
);
%DebugToggleBlockCoverage(false);