From 19cb7efafbf45bc340c294da8326a60ff5daa5d8 Mon Sep 17 00:00:00 2001 From: Myles Borins Date: Tue, 1 Aug 2017 11:36:44 -0500 Subject: [PATCH 1/8] deps: update V8 to 6.0.286.52 --- deps/v8/.gitignore | 10 +- deps/v8/.gn | 6 +- deps/v8/AUTHORS | 1 + deps/v8/BUILD.gn | 262 +- deps/v8/ChangeLog | 1490 +++++++++ deps/v8/DEPS | 37 +- deps/v8/Makefile | 7 - deps/v8/PRESUBMIT.py | 14 +- .../trace_event/common/trace_event_common.h | 6 + deps/v8/codereview.settings | 6 +- deps/v8/gypfiles/all.gyp | 1 + deps/v8/gypfiles/coverage_wrapper.py | 2 + deps/v8/gypfiles/features.gypi | 8 +- deps/v8/gypfiles/standalone.gypi | 7 +- deps/v8/gypfiles/toolchain.gypi | 2 +- deps/v8/include/libplatform/libplatform.h | 19 +- deps/v8/include/v8-value-serializer-version.h | 24 + deps/v8/include/v8-version.h | 8 +- deps/v8/include/v8.h | 135 +- deps/v8/include/v8config.h | 2 +- deps/v8/infra/config/cq.cfg | 6 +- deps/v8/infra/mb/mb_config.pyl | 29 +- deps/v8/src/DEPS | 2 + deps/v8/src/OWNERS | 6 +- deps/v8/src/accessors.cc | 24 +- deps/v8/src/accessors.h | 2 - deps/v8/src/api-arguments.h | 5 +- deps/v8/src/api-natives.cc | 45 +- deps/v8/src/api.cc | 414 ++- deps/v8/src/api.h | 15 +- deps/v8/src/arm/assembler-arm-inl.h | 118 +- deps/v8/src/arm/assembler-arm.cc | 471 ++- deps/v8/src/arm/assembler-arm.h | 50 +- deps/v8/src/arm/code-stubs-arm.cc | 80 +- deps/v8/src/arm/constants-arm.h | 19 +- deps/v8/src/arm/deoptimizer-arm.cc | 57 +- deps/v8/src/arm/disasm-arm.cc | 99 +- deps/v8/src/arm/frames-arm.cc | 8 +- deps/v8/src/arm/frames-arm.h | 16 +- deps/v8/src/arm/interface-descriptors-arm.cc | 18 +- deps/v8/src/arm/macro-assembler-arm.cc | 278 +- deps/v8/src/arm/macro-assembler-arm.h | 25 +- deps/v8/src/arm/simulator-arm.cc | 185 +- deps/v8/src/arm/simulator-arm.h | 17 +- deps/v8/src/arm64/assembler-arm64-inl.h | 14 +- deps/v8/src/arm64/assembler-arm64.cc | 9 +- deps/v8/src/arm64/assembler-arm64.h | 3 + deps/v8/src/arm64/code-stubs-arm64.cc | 71 +- deps/v8/src/arm64/deoptimizer-arm64.cc | 25 +- .../src/arm64/interface-descriptors-arm64.cc | 18 +- deps/v8/src/arm64/macro-assembler-arm64.cc | 107 +- deps/v8/src/arm64/macro-assembler-arm64.h | 18 +- deps/v8/src/arm64/simulator-arm64.cc | 69 +- deps/v8/src/arm64/simulator-arm64.h | 11 +- deps/v8/src/asmjs/OWNERS | 3 - deps/v8/src/asmjs/asm-js.cc | 523 ++- deps/v8/src/asmjs/asm-js.h | 20 +- deps/v8/src/asmjs/asm-names.h | 19 +- deps/v8/src/asmjs/asm-parser.cc | 463 +-- deps/v8/src/asmjs/asm-parser.h | 115 +- deps/v8/src/asmjs/asm-scanner.cc | 23 +- deps/v8/src/asmjs/asm-scanner.h | 33 +- deps/v8/src/asmjs/asm-typer.cc | 2963 ----------------- deps/v8/src/asmjs/asm-typer.h | 420 --- deps/v8/src/asmjs/asm-types.h | 6 +- deps/v8/src/asmjs/asm-wasm-builder.cc | 2025 ----------- deps/v8/src/asmjs/asm-wasm-builder.h | 45 - deps/v8/src/asmjs/switch-logic.h | 7 +- deps/v8/src/assembler.cc | 54 +- deps/v8/src/assembler.h | 16 +- deps/v8/src/ast/ast-expression-rewriter.cc | 2 +- deps/v8/src/ast/ast-numbering.cc | 3 +- deps/v8/src/ast/ast-types.cc | 8 +- deps/v8/src/ast/ast-value-factory.cc | 10 +- deps/v8/src/ast/ast-value-factory.h | 21 +- deps/v8/src/ast/ast.cc | 106 +- deps/v8/src/ast/ast.h | 198 +- deps/v8/src/ast/compile-time-value.cc | 20 +- deps/v8/src/ast/compile-time-value.h | 15 +- deps/v8/src/ast/scopes.cc | 86 +- deps/v8/src/ast/scopes.h | 20 +- deps/v8/src/ast/variables.cc | 1 + deps/v8/src/ast/variables.h | 51 +- deps/v8/src/background-parsing-task.cc | 3 + deps/v8/src/bailout-reason.h | 2 - deps/v8/src/base/bits.cc | 36 +- deps/v8/src/base/bits.h | 12 +- deps/v8/src/base/build_config.h | 6 +- deps/v8/src/base/debug/stack_trace_win.cc | 4 +- deps/v8/src/base/export-template.h | 163 + deps/v8/src/base/logging.h | 12 +- deps/v8/src/base/platform/platform-aix.cc | 5 +- deps/v8/src/base/platform/platform-cygwin.cc | 8 +- deps/v8/src/base/platform/platform-freebsd.cc | 7 +- deps/v8/src/base/platform/platform-linux.cc | 4 +- deps/v8/src/base/platform/platform-macos.cc | 8 +- deps/v8/src/base/platform/platform-openbsd.cc | 7 +- deps/v8/src/base/platform/platform-posix.cc | 24 +- deps/v8/src/base/platform/platform-posix.h | 3 + deps/v8/src/base/platform/platform-qnx.cc | 7 +- deps/v8/src/base/platform/platform-solaris.cc | 7 +- deps/v8/src/base/platform/platform-win32.cc | 27 +- deps/v8/src/base/platform/platform.h | 12 +- deps/v8/src/bootstrapper.cc | 347 +- deps/v8/src/bootstrapper.h | 10 +- deps/v8/src/builtins/arm/builtins-arm.cc | 577 ++-- deps/v8/src/builtins/arm64/builtins-arm64.cc | 547 +-- deps/v8/src/builtins/builtins-api.cc | 9 +- deps/v8/src/builtins/builtins-array-gen.cc | 1465 ++++---- deps/v8/src/builtins/builtins-array.cc | 17 +- deps/v8/src/builtins/builtins-arraybuffer.cc | 3 +- .../builtins/builtins-async-generator-gen.cc | 66 +- deps/v8/src/builtins/builtins-call-gen.cc | 5 +- deps/v8/src/builtins/builtins-console-gen.cc | 38 + deps/v8/src/builtins/builtins-console.cc | 59 + .../src/builtins/builtins-constructor-gen.cc | 240 +- .../src/builtins/builtins-constructor-gen.h | 6 +- deps/v8/src/builtins/builtins-constructor.h | 18 +- .../src/builtins/builtins-conversion-gen.cc | 30 +- deps/v8/src/builtins/builtins-definitions.h | 134 +- deps/v8/src/builtins/builtins-forin-gen.cc | 2 +- deps/v8/src/builtins/builtins-function.cc | 3 +- deps/v8/src/builtins/builtins-handler-gen.cc | 17 +- deps/v8/src/builtins/builtins-internal-gen.cc | 125 +- deps/v8/src/builtins/builtins-intl-gen.cc | 124 + deps/v8/src/builtins/builtins-intl.cc | 19 +- deps/v8/src/builtins/builtins-number.cc | 15 +- deps/v8/src/builtins/builtins-object-gen.cc | 178 +- deps/v8/src/builtins/builtins-object.cc | 53 +- deps/v8/src/builtins/builtins-regexp-gen.cc | 214 +- deps/v8/src/builtins/builtins-regexp-gen.h | 8 +- .../builtins-sharedarraybuffer-gen.cc | 195 +- .../builtins/builtins-sharedarraybuffer.cc | 26 +- deps/v8/src/builtins/builtins-string-gen.cc | 889 +++-- deps/v8/src/builtins/builtins-string-gen.h | 95 + deps/v8/src/builtins/builtins-string.cc | 8 +- .../src/builtins/builtins-typedarray-gen.cc | 351 +- deps/v8/src/builtins/builtins-typedarray.cc | 80 +- deps/v8/src/builtins/builtins.cc | 69 +- deps/v8/src/builtins/builtins.h | 23 +- deps/v8/src/builtins/ia32/builtins-ia32.cc | 536 +-- deps/v8/src/builtins/mips/OWNERS | 7 +- deps/v8/src/builtins/mips/builtins-mips.cc | 581 ++-- deps/v8/src/builtins/mips64/OWNERS | 7 +- .../v8/src/builtins/mips64/builtins-mips64.cc | 934 +++--- deps/v8/src/builtins/ppc/builtins-ppc.cc | 568 ++-- deps/v8/src/builtins/s390/builtins-s390.cc | 562 ++-- deps/v8/src/builtins/x64/builtins-x64.cc | 492 +-- deps/v8/src/char-predicates.cc | 12 +- deps/v8/src/code-factory.cc | 67 +- deps/v8/src/code-factory.h | 15 +- deps/v8/src/code-stub-assembler.cc | 1083 ++++-- deps/v8/src/code-stub-assembler.h | 212 +- deps/v8/src/code-stubs.h | 32 +- deps/v8/src/codegen.cc | 12 +- deps/v8/src/compilation-cache.cc | 10 +- deps/v8/src/compilation-cache.h | 6 +- deps/v8/src/compilation-dependencies.h | 1 + deps/v8/src/compilation-info.cc | 3 +- .../compiler-dispatcher-job.cc | 12 +- .../compiler-dispatcher-job.h | 9 +- .../compiler-dispatcher.cc | 35 +- .../compiler-dispatcher/compiler-dispatcher.h | 7 +- .../optimizing-compile-dispatcher.cc | 2 +- deps/v8/src/compiler.cc | 176 +- deps/v8/src/compiler.h | 1 + deps/v8/src/compiler/OWNERS | 2 + deps/v8/src/compiler/access-builder.cc | 69 +- deps/v8/src/compiler/access-builder.h | 24 +- deps/v8/src/compiler/access-info.cc | 166 +- deps/v8/src/compiler/access-info.h | 38 +- .../v8/src/compiler/arm/code-generator-arm.cc | 538 ++- .../src/compiler/arm/instruction-codes-arm.h | 33 +- .../compiler/arm/instruction-scheduler-arm.cc | 33 +- .../compiler/arm/instruction-selector-arm.cc | 388 ++- .../compiler/arm64/code-generator-arm64.cc | 75 +- .../arm64/instruction-selector-arm64.cc | 15 +- deps/v8/src/compiler/ast-graph-builder.cc | 51 +- deps/v8/src/compiler/ast-graph-builder.h | 9 +- deps/v8/src/compiler/bytecode-analysis.cc | 13 +- deps/v8/src/compiler/bytecode-analysis.h | 6 + .../v8/src/compiler/bytecode-graph-builder.cc | 199 +- deps/v8/src/compiler/bytecode-graph-builder.h | 15 +- deps/v8/src/compiler/c-linkage.cc | 2 + deps/v8/src/compiler/code-assembler.cc | 39 +- deps/v8/src/compiler/code-assembler.h | 22 + deps/v8/src/compiler/code-generator.cc | 102 +- deps/v8/src/compiler/code-generator.h | 37 +- deps/v8/src/compiler/common-operator.cc | 28 - deps/v8/src/compiler/common-operator.h | 6 - .../src/compiler/effect-control-linearizer.cc | 10 +- .../src/compiler/effect-control-linearizer.h | 1 + deps/v8/src/compiler/escape-analysis.cc | 86 +- deps/v8/src/compiler/escape-analysis.h | 2 - deps/v8/src/compiler/frame.h | 13 +- deps/v8/src/compiler/graph-reducer.cc | 8 +- deps/v8/src/compiler/graph-reducer.h | 2 +- .../src/compiler/ia32/code-generator-ia32.cc | 2 +- .../ia32/instruction-selector-ia32.cc | 20 +- deps/v8/src/compiler/instruction-selector.cc | 206 +- deps/v8/src/compiler/instruction.h | 2 +- deps/v8/src/compiler/js-builtin-reducer.cc | 33 +- deps/v8/src/compiler/js-call-reducer.cc | 355 +- deps/v8/src/compiler/js-call-reducer.h | 13 +- .../src/compiler/js-context-specialization.cc | 53 +- .../src/compiler/js-context-specialization.h | 20 +- deps/v8/src/compiler/js-create-lowering.cc | 185 +- deps/v8/src/compiler/js-create-lowering.h | 7 + .../src/compiler/js-frame-specialization.cc | 9 - .../v8/src/compiler/js-frame-specialization.h | 1 - deps/v8/src/compiler/js-generic-lowering.cc | 49 +- deps/v8/src/compiler/js-graph.cc | 8 + deps/v8/src/compiler/js-graph.h | 5 + deps/v8/src/compiler/js-inlining-heuristic.cc | 84 +- deps/v8/src/compiler/js-inlining-heuristic.h | 9 +- deps/v8/src/compiler/js-inlining.cc | 119 +- deps/v8/src/compiler/js-intrinsic-lowering.cc | 50 +- deps/v8/src/compiler/js-intrinsic-lowering.h | 2 + .../js-native-context-specialization.cc | 305 +- .../js-native-context-specialization.h | 28 +- deps/v8/src/compiler/js-operator.cc | 53 +- deps/v8/src/compiler/js-operator.h | 106 +- deps/v8/src/compiler/js-typed-lowering.cc | 296 +- deps/v8/src/compiler/js-typed-lowering.h | 5 + deps/v8/src/compiler/linkage.cc | 8 + deps/v8/src/compiler/load-elimination.cc | 57 +- deps/v8/src/compiler/load-elimination.h | 26 +- deps/v8/src/compiler/machine-operator.cc | 113 +- deps/v8/src/compiler/machine-operator.h | 45 +- deps/v8/src/compiler/mips/OWNERS | 7 +- .../src/compiler/mips/code-generator-mips.cc | 345 +- .../compiler/mips/instruction-codes-mips.h | 54 +- .../mips/instruction-selector-mips.cc | 218 ++ deps/v8/src/compiler/mips64/OWNERS | 7 +- .../compiler/mips64/code-generator-mips64.cc | 464 ++- .../mips64/instruction-codes-mips64.h | 54 +- .../mips64/instruction-selector-mips64.cc | 219 ++ deps/v8/src/compiler/node-properties.cc | 50 +- deps/v8/src/compiler/node-properties.h | 10 +- deps/v8/src/compiler/opcodes.h | 23 +- deps/v8/src/compiler/operator-properties.cc | 5 + deps/v8/src/compiler/operator.cc | 6 +- deps/v8/src/compiler/osr.cc | 23 +- deps/v8/src/compiler/pipeline.cc | 122 +- .../v8/src/compiler/ppc/code-generator-ppc.cc | 13 +- .../compiler/ppc/instruction-selector-ppc.cc | 8 + deps/v8/src/compiler/raw-machine-assembler.cc | 45 + deps/v8/src/compiler/raw-machine-assembler.h | 20 +- deps/v8/src/compiler/representation-change.cc | 29 +- deps/v8/src/compiler/representation-change.h | 4 +- .../s390/instruction-selector-s390.cc | 26 +- deps/v8/src/compiler/schedule.cc | 19 +- deps/v8/src/compiler/schedule.h | 6 + deps/v8/src/compiler/simd-scalar-lowering.cc | 834 +++-- deps/v8/src/compiler/simd-scalar-lowering.h | 46 +- deps/v8/src/compiler/simplified-lowering.cc | 100 +- deps/v8/src/compiler/simplified-operator.cc | 1 + deps/v8/src/compiler/simplified-operator.h | 3 +- deps/v8/src/compiler/typer.cc | 36 +- deps/v8/src/compiler/types.cc | 13 +- deps/v8/src/compiler/types.h | 7 +- deps/v8/src/compiler/verifier.cc | 47 +- deps/v8/src/compiler/wasm-compiler.cc | 279 +- deps/v8/src/compiler/wasm-compiler.h | 39 +- .../v8/src/compiler/x64/code-generator-x64.cc | 224 +- .../src/compiler/x64/instruction-codes-x64.h | 43 +- .../compiler/x64/instruction-scheduler-x64.cc | 43 +- .../compiler/x64/instruction-selector-x64.cc | 97 +- .../compiler/x87/instruction-selector-x87.cc | 8 + deps/v8/src/compiler/zone-stats.cc | 6 +- deps/v8/src/compiler/zone-stats.h | 6 +- deps/v8/src/contexts-inl.h | 4 +- deps/v8/src/contexts.cc | 46 +- deps/v8/src/contexts.h | 136 +- deps/v8/src/counters.h | 44 +- .../src/crankshaft/arm/lithium-codegen-arm.cc | 2 +- .../crankshaft/arm64/lithium-codegen-arm64.cc | 3 +- .../hydrogen-environment-liveness.cc | 2 +- deps/v8/src/crankshaft/hydrogen-gvn.cc | 28 +- .../v8/src/crankshaft/hydrogen-instructions.h | 5 - deps/v8/src/crankshaft/hydrogen.cc | 321 +- deps/v8/src/crankshaft/hydrogen.h | 21 +- .../crankshaft/ia32/lithium-codegen-ia32.cc | 3 +- deps/v8/src/crankshaft/mips/OWNERS | 7 +- .../crankshaft/mips/lithium-codegen-mips.cc | 12 +- deps/v8/src/crankshaft/mips64/OWNERS | 7 +- .../mips64/lithium-codegen-mips64.cc | 283 +- .../mips64/lithium-gap-resolver-mips64.cc | 47 +- .../src/crankshaft/ppc/lithium-codegen-ppc.cc | 3 +- .../crankshaft/s390/lithium-codegen-s390.cc | 3 +- .../src/crankshaft/x64/lithium-codegen-x64.cc | 2 +- .../src/crankshaft/x87/lithium-codegen-x87.cc | 3 +- deps/v8/src/d8-console.cc | 111 + deps/v8/src/d8-console.h | 34 + deps/v8/src/d8.cc | 292 +- deps/v8/src/d8.gyp | 2 + deps/v8/src/d8.h | 14 +- deps/v8/src/date.cc | 6 +- deps/v8/src/debug/debug-evaluate.cc | 151 +- deps/v8/src/debug/debug-evaluate.h | 1 + deps/v8/src/debug/debug-interface.h | 14 +- deps/v8/src/debug/debug.cc | 103 +- deps/v8/src/debug/debug.h | 5 +- deps/v8/src/debug/interface-types.h | 48 +- deps/v8/src/debug/mips/OWNERS | 7 +- deps/v8/src/debug/mips/debug-mips.cc | 8 + deps/v8/src/debug/mips64/OWNERS | 7 +- deps/v8/src/debug/mips64/debug-mips64.cc | 6 +- deps/v8/src/deoptimizer.cc | 136 +- deps/v8/src/deoptimizer.h | 3 +- deps/v8/src/elements.cc | 423 ++- deps/v8/src/elements.h | 12 +- deps/v8/src/execution.cc | 6 +- deps/v8/src/execution.h | 3 +- .../v8/src/extensions/statistics-extension.cc | 6 +- deps/v8/src/external-reference-table.cc | 44 +- deps/v8/src/external-reference-table.h | 9 +- deps/v8/src/factory.cc | 77 +- deps/v8/src/factory.h | 16 +- deps/v8/src/feedback-vector-inl.h | 9 + deps/v8/src/feedback-vector.cc | 71 +- deps/v8/src/feedback-vector.h | 34 +- deps/v8/src/field-type.h | 1 + deps/v8/src/flag-definitions.h | 121 +- deps/v8/src/flags.cc | 25 +- deps/v8/src/frames.cc | 64 +- deps/v8/src/frames.h | 43 +- .../src/full-codegen/arm/full-codegen-arm.cc | 57 +- .../full-codegen/arm64/full-codegen-arm64.cc | 18 +- .../full-codegen/ia32/full-codegen-ia32.cc | 19 +- deps/v8/src/full-codegen/mips/OWNERS | 7 +- .../full-codegen/mips/full-codegen-mips.cc | 19 +- deps/v8/src/full-codegen/mips64/OWNERS | 7 +- .../mips64/full-codegen-mips64.cc | 217 +- .../src/full-codegen/ppc/full-codegen-ppc.cc | 19 +- .../full-codegen/s390/full-codegen-s390.cc | 19 +- .../src/full-codegen/x64/full-codegen-x64.cc | 19 +- .../src/full-codegen/x87/full-codegen-x87.cc | 19 +- deps/v8/src/global-handles.cc | 133 +- deps/v8/src/global-handles.h | 40 +- deps/v8/src/globals.h | 31 +- deps/v8/src/handles-inl.h | 1 - deps/v8/src/handles.h | 5 +- deps/v8/src/heap-symbols.h | 2 - deps/v8/src/heap/array-buffer-tracker.cc | 27 +- deps/v8/src/heap/array-buffer-tracker.h | 15 +- deps/v8/src/heap/concurrent-marking-deque.h | 175 + deps/v8/src/heap/concurrent-marking.cc | 278 +- deps/v8/src/heap/concurrent-marking.h | 12 +- deps/v8/src/heap/gc-tracer.cc | 40 +- deps/v8/src/heap/gc-tracer.h | 142 +- deps/v8/src/heap/heap-inl.h | 54 +- deps/v8/src/heap/heap.cc | 571 ++-- deps/v8/src/heap/heap.h | 256 +- deps/v8/src/heap/incremental-marking-job.cc | 5 + deps/v8/src/heap/incremental-marking.cc | 321 +- deps/v8/src/heap/incremental-marking.h | 115 +- deps/v8/src/heap/item-parallel-job.h | 178 + deps/v8/src/heap/mark-compact-inl.h | 44 +- deps/v8/src/heap/mark-compact.cc | 2108 ++++++++---- deps/v8/src/heap/mark-compact.h | 421 +-- deps/v8/src/heap/marking.h | 27 +- deps/v8/src/heap/memory-reducer.cc | 3 +- deps/v8/src/heap/object-stats.cc | 12 +- deps/v8/src/heap/objects-visiting-inl.h | 138 +- deps/v8/src/heap/objects-visiting.cc | 10 +- deps/v8/src/heap/objects-visiting.h | 114 +- deps/v8/src/heap/page-parallel-job.h | 27 +- deps/v8/src/heap/scavenger.cc | 30 +- deps/v8/src/heap/scavenger.h | 9 +- deps/v8/src/heap/sequential-marking-deque.cc | 98 + deps/v8/src/heap/sequential-marking-deque.h | 172 + deps/v8/src/heap/spaces-inl.h | 9 +- deps/v8/src/heap/spaces.cc | 121 +- deps/v8/src/heap/spaces.h | 88 +- deps/v8/src/heap/workstealing-marking-deque.h | 167 + deps/v8/src/ia32/assembler-ia32-inl.h | 16 +- deps/v8/src/ia32/assembler-ia32.cc | 42 + deps/v8/src/ia32/assembler-ia32.h | 68 + deps/v8/src/ia32/code-stubs-ia32.cc | 80 +- deps/v8/src/ia32/deoptimizer-ia32.cc | 35 +- deps/v8/src/ia32/disasm-ia32.cc | 60 +- .../v8/src/ia32/interface-descriptors-ia32.cc | 18 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 3 +- deps/v8/src/ic/accessor-assembler.cc | 94 +- deps/v8/src/ic/accessor-assembler.h | 2 +- deps/v8/src/ic/arm/handler-compiler-arm.cc | 5 +- .../v8/src/ic/arm64/handler-compiler-arm64.cc | 5 +- deps/v8/src/ic/ia32/handler-compiler-ia32.cc | 5 +- deps/v8/src/ic/ic.cc | 114 +- deps/v8/src/ic/ic.h | 17 +- deps/v8/src/ic/keyed-store-generic.cc | 10 +- deps/v8/src/ic/mips/OWNERS | 7 +- deps/v8/src/ic/mips/handler-compiler-mips.cc | 5 +- deps/v8/src/ic/mips64/OWNERS | 7 +- .../src/ic/mips64/handler-compiler-mips64.cc | 48 +- deps/v8/src/ic/ppc/handler-compiler-ppc.cc | 5 +- deps/v8/src/ic/s390/handler-compiler-s390.cc | 5 +- deps/v8/src/ic/stub-cache.cc | 38 - deps/v8/src/ic/stub-cache.h | 3 - deps/v8/src/ic/x64/handler-compiler-x64.cc | 5 +- deps/v8/src/icu_util.cc | 8 +- deps/v8/src/identity-map.cc | 6 +- deps/v8/src/inspector/DEPS | 1 + deps/v8/src/inspector/debugger-script.js | 7 +- .../src/inspector/debugger_script_externs.js | 3 + deps/v8/src/inspector/inspected-context.cc | 28 +- deps/v8/src/inspector/inspector.gyp | 32 +- deps/v8/src/inspector/js_protocol.json | 11 +- deps/v8/src/inspector/string-util.cc | 12 + deps/v8/src/inspector/string-util.h | 1 + deps/v8/src/inspector/test-interface.cc | 8 +- deps/v8/src/inspector/test-interface.h | 1 + deps/v8/src/inspector/v8-console.cc | 183 +- deps/v8/src/inspector/v8-console.h | 57 +- .../src/inspector/v8-debugger-agent-impl.cc | 62 +- .../v8/src/inspector/v8-debugger-agent-impl.h | 6 +- deps/v8/src/inspector/v8-debugger-script.cc | 6 +- deps/v8/src/inspector/v8-debugger.cc | 298 +- deps/v8/src/inspector/v8-debugger.h | 58 +- deps/v8/src/inspector/v8-function-call.cc | 2 + deps/v8/src/inspector/v8-inspector-impl.cc | 8 +- deps/v8/src/inspector/v8-regex.cc | 1 + deps/v8/src/inspector/v8-stack-trace-impl.cc | 473 +-- deps/v8/src/inspector/v8-stack-trace-impl.h | 162 +- deps/v8/src/interface-descriptors.cc | 30 +- deps/v8/src/interface-descriptors.h | 64 +- .../interpreter/bytecode-array-accessor.cc | 99 +- .../src/interpreter/bytecode-array-accessor.h | 59 +- .../src/interpreter/bytecode-array-builder.cc | 125 +- .../src/interpreter/bytecode-array-builder.h | 41 +- .../src/interpreter/bytecode-array-writer.cc | 55 +- .../src/interpreter/bytecode-array-writer.h | 26 +- deps/v8/src/interpreter/bytecode-flags.cc | 15 +- deps/v8/src/interpreter/bytecode-flags.h | 10 +- deps/v8/src/interpreter/bytecode-generator.cc | 444 ++- deps/v8/src/interpreter/bytecode-generator.h | 9 +- deps/v8/src/interpreter/bytecode-jump-table.h | 88 + ...{bytecode-pipeline.cc => bytecode-node.cc} | 12 +- .../{bytecode-pipeline.h => bytecode-node.h} | 166 +- .../bytecode-register-optimizer.cc | 25 +- .../interpreter/bytecode-register-optimizer.h | 12 +- .../src/interpreter/bytecode-source-info.cc | 24 + .../v8/src/interpreter/bytecode-source-info.h | 98 + deps/v8/src/interpreter/bytecodes.h | 15 +- .../src/interpreter/constant-array-builder.cc | 39 +- .../src/interpreter/constant-array-builder.h | 29 +- .../src/interpreter/control-flow-builders.cc | 36 +- .../src/interpreter/control-flow-builders.h | 16 +- .../src/interpreter/interpreter-assembler.cc | 118 +- .../src/interpreter/interpreter-generator.cc | 685 ++-- .../interpreter-intrinsics-generator.cc | 109 +- .../src/interpreter/interpreter-intrinsics.h | 51 +- deps/v8/src/interpreter/interpreter.cc | 10 +- deps/v8/src/interpreter/interpreter.h | 3 +- deps/v8/src/intl.cc | 403 +++ deps/v8/src/intl.h | 69 + deps/v8/src/isolate.cc | 112 +- deps/v8/src/isolate.h | 52 +- deps/v8/src/js/array.js | 63 +- deps/v8/src/js/harmony-string-padding.js | 73 - deps/v8/src/js/{i18n.js => intl.js} | 187 +- deps/v8/src/js/macros.py | 13 +- deps/v8/src/js/max-min.js | 28 + deps/v8/src/js/runtime.js | 104 - deps/v8/src/js/string.js | 100 +- deps/v8/src/js/typedarray.js | 240 +- deps/v8/src/js/v8natives.js | 11 +- deps/v8/src/json-parser.cc | 76 +- deps/v8/src/libplatform/default-platform.cc | 48 +- deps/v8/src/libplatform/default-platform.h | 9 +- deps/v8/src/libplatform/task-queue.h | 2 +- deps/v8/src/list-inl.h | 42 - deps/v8/src/list.h | 11 - deps/v8/src/lookup.h | 4 +- deps/v8/src/macro-assembler.h | 21 +- deps/v8/src/map-updater.cc | 41 +- deps/v8/src/map-updater.h | 20 +- deps/v8/src/messages.cc | 7 +- deps/v8/src/messages.h | 14 +- deps/v8/src/mips/OWNERS | 7 +- deps/v8/src/mips/assembler-mips-inl.h | 29 +- deps/v8/src/mips/assembler-mips.cc | 28 +- deps/v8/src/mips/assembler-mips.h | 27 +- deps/v8/src/mips/code-stubs-mips.cc | 94 +- deps/v8/src/mips/deoptimizer-mips.cc | 75 +- .../v8/src/mips/interface-descriptors-mips.cc | 18 +- deps/v8/src/mips/macro-assembler-mips.cc | 243 +- deps/v8/src/mips/macro-assembler-mips.h | 14 +- deps/v8/src/mips/simulator-mips.cc | 24 +- deps/v8/src/mips/simulator-mips.h | 18 +- deps/v8/src/mips64/OWNERS | 7 +- deps/v8/src/mips64/assembler-mips64-inl.h | 16 +- deps/v8/src/mips64/assembler-mips64.cc | 190 +- deps/v8/src/mips64/assembler-mips64.h | 13 +- deps/v8/src/mips64/code-stubs-mips64.cc | 356 +- deps/v8/src/mips64/codegen-mips64.cc | 180 +- deps/v8/src/mips64/constants-mips64.h | 8 +- deps/v8/src/mips64/deoptimizer-mips64.cc | 133 +- deps/v8/src/mips64/disasm-mips64.cc | 90 +- .../mips64/interface-descriptors-mips64.cc | 18 +- deps/v8/src/mips64/macro-assembler-mips64.cc | 626 ++-- deps/v8/src/mips64/macro-assembler-mips64.h | 90 +- deps/v8/src/mips64/simulator-mips64.cc | 139 +- deps/v8/src/mips64/simulator-mips64.h | 14 +- deps/v8/src/objects-body-descriptors-inl.h | 95 +- deps/v8/src/objects-body-descriptors.h | 4 +- deps/v8/src/objects-debug.cc | 134 +- deps/v8/src/objects-inl.h | 458 ++- deps/v8/src/objects-printer.cc | 42 +- deps/v8/src/objects.cc | 997 +++--- deps/v8/src/objects.h | 1789 +++------- deps/v8/src/objects/descriptor-array.h | 34 +- deps/v8/src/objects/dictionary.h | 15 +- deps/v8/src/objects/hash-table-inl.h | 34 - deps/v8/src/objects/hash-table.h | 46 +- .../src/{i18n.cc => objects/intl-objects.cc} | 763 ++--- .../v8/src/{i18n.h => objects/intl-objects.h} | 84 +- deps/v8/src/objects/literal-objects.h | 11 +- deps/v8/src/objects/map-inl.h | 68 + deps/v8/src/objects/map.h | 829 +++++ deps/v8/src/objects/string-table.h | 1 + deps/v8/src/parsing/parse-info.cc | 36 +- deps/v8/src/parsing/parse-info.h | 27 +- deps/v8/src/parsing/parser-base.h | 179 +- deps/v8/src/parsing/parser.cc | 464 +-- deps/v8/src/parsing/parser.h | 41 +- deps/v8/src/parsing/preparse-data-format.h | 2 +- deps/v8/src/parsing/preparse-data.cc | 9 +- deps/v8/src/parsing/preparse-data.h | 31 +- deps/v8/src/parsing/preparsed-scope-data.cc | 119 +- deps/v8/src/parsing/preparsed-scope-data.h | 39 +- deps/v8/src/parsing/preparser.cc | 54 +- deps/v8/src/parsing/preparser.h | 91 +- deps/v8/src/parsing/rewriter.cc | 4 +- .../src/parsing/scanner-character-streams.cc | 14 +- deps/v8/src/parsing/scanner.cc | 45 +- deps/v8/src/parsing/scanner.h | 8 +- deps/v8/src/perf-jit.cc | 6 +- deps/v8/src/ppc/assembler-ppc-inl.h | 16 +- deps/v8/src/ppc/assembler-ppc.cc | 9 +- deps/v8/src/ppc/assembler-ppc.h | 3 + deps/v8/src/ppc/code-stubs-ppc.cc | 75 +- deps/v8/src/ppc/deoptimizer-ppc.cc | 35 +- deps/v8/src/ppc/interface-descriptors-ppc.cc | 18 +- deps/v8/src/ppc/macro-assembler-ppc.cc | 15 +- deps/v8/src/ppc/simulator-ppc.cc | 26 +- deps/v8/src/ppc/simulator-ppc.h | 18 +- .../src/profiler/heap-snapshot-generator.cc | 49 +- .../v8/src/profiler/heap-snapshot-generator.h | 2 + deps/v8/src/property-details.h | 2 + .../regexp/arm/regexp-macro-assembler-arm.cc | 24 +- .../regexp/arm/regexp-macro-assembler-arm.h | 3 +- .../arm64/regexp-macro-assembler-arm64.cc | 30 +- .../arm64/regexp-macro-assembler-arm64.h | 3 +- .../ia32/regexp-macro-assembler-ia32.cc | 9 +- deps/v8/src/regexp/interpreter-irregexp.cc | 4 +- deps/v8/src/regexp/jsregexp-inl.h | 1 - deps/v8/src/regexp/jsregexp.cc | 47 +- deps/v8/src/regexp/mips/OWNERS | 7 +- .../mips/regexp-macro-assembler-mips.cc | 24 +- .../regexp/mips/regexp-macro-assembler-mips.h | 3 +- deps/v8/src/regexp/mips64/OWNERS | 7 +- .../mips64/regexp-macro-assembler-mips64.cc | 187 +- .../mips64/regexp-macro-assembler-mips64.h | 3 +- .../regexp/ppc/regexp-macro-assembler-ppc.cc | 16 +- .../regexp/ppc/regexp-macro-assembler-ppc.h | 3 +- deps/v8/src/regexp/regexp-ast.h | 24 +- deps/v8/src/regexp/regexp-macro-assembler.cc | 25 +- deps/v8/src/regexp/regexp-parser.cc | 124 +- deps/v8/src/regexp/regexp-parser.h | 14 +- .../s390/regexp-macro-assembler-s390.cc | 16 +- .../regexp/s390/regexp-macro-assembler-s390.h | 3 +- .../regexp/x64/regexp-macro-assembler-x64.cc | 9 +- .../regexp/x87/regexp-macro-assembler-x87.cc | 9 +- deps/v8/src/register-configuration.cc | 19 +- deps/v8/src/runtime-profiler.cc | 4 +- deps/v8/src/runtime/runtime-array.cc | 38 +- deps/v8/src/runtime/runtime-classes.cc | 9 - deps/v8/src/runtime/runtime-collections.cc | 43 + deps/v8/src/runtime/runtime-compiler.cc | 33 +- deps/v8/src/runtime/runtime-debug.cc | 18 +- deps/v8/src/runtime/runtime-function.cc | 8 +- deps/v8/src/runtime/runtime-generator.cc | 13 +- deps/v8/src/runtime/runtime-internal.cc | 19 +- deps/v8/src/runtime/runtime-interpreter.cc | 15 +- .../{runtime-i18n.cc => runtime-intl.cc} | 46 +- deps/v8/src/runtime/runtime-literals.cc | 116 +- deps/v8/src/runtime/runtime-object.cc | 120 +- deps/v8/src/runtime/runtime-regexp.cc | 4 +- deps/v8/src/runtime/runtime-strings.cc | 6 +- deps/v8/src/runtime/runtime-test.cc | 52 +- deps/v8/src/runtime/runtime-typedarray.cc | 39 +- deps/v8/src/runtime/runtime-wasm.cc | 4 +- deps/v8/src/runtime/runtime.h | 174 +- deps/v8/src/s390/assembler-s390-inl.h | 16 +- deps/v8/src/s390/assembler-s390.cc | 9 +- deps/v8/src/s390/assembler-s390.h | 3 + deps/v8/src/s390/code-stubs-s390.cc | 85 +- deps/v8/src/s390/codegen-s390.cc | 3 +- deps/v8/src/s390/deoptimizer-s390.cc | 35 +- .../v8/src/s390/interface-descriptors-s390.cc | 19 +- deps/v8/src/s390/macro-assembler-s390.cc | 5 +- deps/v8/src/s390/simulator-s390.cc | 27 +- deps/v8/src/s390/simulator-s390.h | 15 +- deps/v8/src/safepoint-table.h | 3 +- deps/v8/src/setup-isolate-deserialize.cc | 9 - deps/v8/src/setup-isolate-full.cc | 17 +- deps/v8/src/setup-isolate.h | 9 +- deps/v8/src/snapshot/code-serializer.cc | 3 +- deps/v8/src/snapshot/deserializer.cc | 90 +- deps/v8/src/snapshot/deserializer.h | 22 +- deps/v8/src/snapshot/partial-serializer.cc | 39 +- deps/v8/src/snapshot/partial-serializer.h | 8 - deps/v8/src/snapshot/serializer-common.cc | 4 +- deps/v8/src/snapshot/serializer-common.h | 5 +- deps/v8/src/snapshot/serializer.cc | 30 +- deps/v8/src/snapshot/serializer.h | 20 +- deps/v8/src/snapshot/snapshot-common.cc | 13 +- deps/v8/src/snapshot/snapshot.h | 14 +- deps/v8/src/snapshot/startup-serializer.cc | 30 +- deps/v8/src/snapshot/startup-serializer.h | 10 +- deps/v8/src/source-position-table.cc | 17 +- deps/v8/src/source-position-table.h | 15 +- deps/v8/src/string-hasher-inl.h | 147 + deps/v8/src/string-hasher.h | 90 + deps/v8/src/string-search.h | 13 + deps/v8/src/string-stream.cc | 20 +- deps/v8/src/transitions-inl.h | 2 + deps/v8/src/transitions.cc | 42 - deps/v8/src/transitions.h | 6 +- deps/v8/src/type-info.cc | 48 +- deps/v8/src/type-info.h | 12 - deps/v8/src/utils.h | 18 +- deps/v8/src/v8.gyp | 286 +- deps/v8/src/v8threads.cc | 6 +- deps/v8/src/v8threads.h | 10 +- deps/v8/src/value-serializer.cc | 29 +- deps/v8/src/value-serializer.h | 2 - deps/v8/src/vector.h | 37 +- deps/v8/src/visitors.cc | 22 + deps/v8/src/visitors.h | 79 + deps/v8/src/wasm/OWNERS | 2 + deps/v8/src/wasm/decoder.h | 128 +- deps/v8/src/wasm/function-body-decoder-impl.h | 14 + deps/v8/src/wasm/function-body-decoder.cc | 141 +- deps/v8/src/wasm/function-body-decoder.h | 11 +- deps/v8/src/wasm/leb-helper.h | 8 +- deps/v8/src/wasm/local-decl-encoder.cc | 51 + deps/v8/src/wasm/local-decl-encoder.h | 50 + deps/v8/src/wasm/module-decoder.cc | 1163 ++++--- deps/v8/src/wasm/module-decoder.h | 25 +- deps/v8/src/wasm/streaming-decoder.cc | 379 +++ deps/v8/src/wasm/streaming-decoder.h | 152 + deps/v8/src/wasm/wasm-code-specialization.cc | 5 +- deps/v8/src/wasm/wasm-debug.cc | 174 +- deps/v8/src/wasm/wasm-external-refs.cc | 60 +- deps/v8/src/wasm/wasm-interpreter.cc | 765 +++-- deps/v8/src/wasm/wasm-interpreter.h | 111 +- deps/v8/src/wasm/wasm-js.cc | 247 +- deps/v8/src/wasm/wasm-module-builder.cc | 254 +- deps/v8/src/wasm/wasm-module-builder.h | 127 +- deps/v8/src/wasm/wasm-module.cc | 1284 +++---- deps/v8/src/wasm/wasm-module.h | 33 +- deps/v8/src/wasm/wasm-objects.cc | 80 +- deps/v8/src/wasm/wasm-objects.h | 42 +- deps/v8/src/wasm/wasm-opcodes.cc | 42 +- deps/v8/src/wasm/wasm-opcodes.h | 127 +- deps/v8/src/wasm/wasm-result.cc | 140 +- deps/v8/src/wasm/wasm-result.h | 138 +- deps/v8/src/wasm/wasm-text.cc | 1 + deps/v8/src/x64/assembler-x64-inl.h | 16 +- deps/v8/src/x64/assembler-x64.cc | 25 +- deps/v8/src/x64/assembler-x64.h | 2 + deps/v8/src/x64/code-stubs-x64.cc | 89 +- deps/v8/src/x64/deoptimizer-x64.cc | 37 +- deps/v8/src/x64/disasm-x64.cc | 25 +- deps/v8/src/x64/interface-descriptors-x64.cc | 18 +- deps/v8/src/x64/macro-assembler-x64.cc | 3 +- deps/v8/src/x64/sse-instr.h | 4 + deps/v8/src/x87/assembler-x87-inl.h | 16 +- deps/v8/src/x87/code-stubs-x87.cc | 63 - deps/v8/src/x87/deoptimizer-x87.cc | 35 +- deps/v8/src/x87/interface-descriptors-x87.cc | 5 - deps/v8/src/x87/macro-assembler-x87.cc | 4 +- deps/v8/src/zone/accounting-allocator.h | 2 +- deps/v8/test/BUILD.gn | 19 + deps/v8/test/benchmarks/testcfg.py | 2 +- deps/v8/test/bot_default.gyp | 1 + deps/v8/test/bot_default.isolate | 2 + deps/v8/test/cctest/BUILD.gn | 6 +- deps/v8/test/cctest/OWNERS | 7 +- deps/v8/test/cctest/asmjs/OWNERS | 11 - deps/v8/test/cctest/asmjs/test-asm-typer.cc | 2089 ------------ deps/v8/test/cctest/cctest.cc | 32 +- deps/v8/test/cctest/cctest.gyp | 5 +- deps/v8/test/cctest/cctest.h | 1 + deps/v8/test/cctest/cctest.status | 56 +- deps/v8/test/cctest/compiler/call-tester.h | 194 +- .../test-js-context-specialization.cc | 20 +- .../test/cctest/compiler/test-run-machops.cc | 78 + .../cctest/heap/test-array-buffer-tracker.cc | 8 +- deps/v8/test/cctest/heap/test-compaction.cc | 8 +- .../cctest/heap/test-concurrent-marking.cc | 5 +- deps/v8/test/cctest/heap/test-heap.cc | 380 ++- deps/v8/test/cctest/heap/test-mark-compact.cc | 14 +- .../test/cctest/heap/test-page-promotion.cc | 4 + deps/v8/test/cctest/heap/test-spaces.cc | 23 +- .../bytecode-expectations-printer.cc | 2 +- .../ArrayLiterals.golden | 40 +- .../ArrayLiteralsWide.golden | 4 +- .../AssignmentsInBinaryExpression.golden | 50 +- .../BasicBlockToBoolean.golden | 6 +- .../bytecode_expectations/BasicLoops.golden | 108 +- .../BreakableBlocks.golden | 20 +- .../CallAndSpread.golden | 32 +- .../bytecode_expectations/CallGlobal.golden | 8 +- .../CallLookupSlot.golden | 10 +- .../bytecode_expectations/CallNew.golden | 12 +- .../bytecode_expectations/CallRuntime.golden | 4 +- .../ClassAndSuperClass.golden | 18 +- .../ClassDeclarations.golden | 217 +- .../bytecode_expectations/CompareNil.golden | 2 +- .../CompoundExpressions.golden | 24 +- .../bytecode_expectations/Conditional.golden | 2 +- .../ConstVariable.golden | 12 +- .../ConstVariableContextSlot.golden | 8 +- .../ContextParameters.golden | 8 +- .../ContextVariables.golden | 16 +- .../CountOperators.golden | 68 +- .../CreateArguments.golden | 4 +- .../CreateRestParameter.golden | 34 +- .../DeclareGlobals.golden | 6 +- .../bytecode_expectations/Delete.golden | 16 +- .../bytecode_expectations/DoExpression.golden | 2 +- .../bytecode_expectations/Eval.golden | 4 +- .../bytecode_expectations/ForAwaitOf.golden | 2156 ++++++------ .../bytecode_expectations/ForIn.golden | 42 +- .../bytecode_expectations/ForOf.golden | 412 ++- .../bytecode_expectations/ForOfLoop.golden | 1860 +++++++++++ .../FunctionLiterals.golden | 10 +- .../GenerateTestUndetectable.golden | 16 +- .../bytecode_expectations/Generators.golden | 674 ++-- .../GlobalCompoundExpressions.golden | 12 +- .../GlobalCountOperators.golden | 28 +- .../bytecode_expectations/GlobalDelete.golden | 4 +- .../bytecode_expectations/IfConditions.golden | 544 ++- .../JumpsRequiringConstantWideOperands.golden | 8 +- .../bytecode_expectations/LetVariable.golden | 15 +- .../LetVariableContextSlot.golden | 8 +- .../bytecode_expectations/LoadGlobal.golden | 264 +- .../LogicalExpressions.golden | 8 +- .../bytecode_expectations/LookupSlot.golden | 26 +- .../LookupSlotInEval.golden | 4 +- .../LookupSlotWideInEval.golden | 4 +- .../bytecode_expectations/Modules.golden | 969 +++--- .../bytecode_expectations/NewAndSpread.golden | 131 +- .../ObjectLiterals.golden | 88 +- .../ObjectLiteralsWide.golden | 2 +- .../OuterContextVariables.golden | 2 +- .../PrimitiveExpressions.golden | 44 +- .../bytecode_expectations/PropertyCall.golden | 286 +- .../PropertyLoads.golden | 528 +-- .../PropertyStores.golden | 1048 +++--- .../RegExpLiterals.golden | 10 +- .../RegExpLiteralsWide.golden | 2 +- .../RemoveRedundantLdar.golden | 10 +- .../StandardForLoop.golden | 1070 ++++++ .../bytecode_expectations/StoreGlobal.golden | 524 +-- .../SuperCallAndSpread.golden | 16 +- .../bytecode_expectations/Switch.golden | 34 +- .../TopLevelObjectLiterals.golden | 6 +- .../bytecode_expectations/TryCatch.golden | 46 +- .../bytecode_expectations/TryFinally.golden | 87 +- .../bytecode_expectations/Typeof.golden | 2 +- .../UnaryOperators.golden | 18 +- .../WideRegisters.golden | 16 +- .../WithStatement.golden | 10 +- .../interpreter/source-position-matcher.cc | 4 +- .../interpreter/test-bytecode-generator.cc | 102 + .../cctest/interpreter/test-interpreter.cc | 92 +- deps/v8/test/cctest/parsing/test-preparser.cc | 187 +- .../cctest/parsing/test-scanner-streams.cc | 46 + deps/v8/test/cctest/parsing/test-scanner.cc | 2 +- deps/v8/test/cctest/scope-test-helper.h | 69 +- .../v8/test/cctest/test-accessor-assembler.cc | 8 +- deps/v8/test/cctest/test-accessors.cc | 2 +- deps/v8/test/cctest/test-api-interceptors.cc | 4 +- deps/v8/test/cctest/test-api.cc | 481 ++- deps/v8/test/cctest/test-assembler-arm.cc | 113 +- deps/v8/test/cctest/test-assembler-arm64.cc | 91 +- deps/v8/test/cctest/test-assembler-mips.cc | 74 + deps/v8/test/cctest/test-assembler-mips64.cc | 1039 +++--- deps/v8/test/cctest/test-ast.cc | 2 +- .../test/cctest/test-code-stub-assembler.cc | 112 +- deps/v8/test/cctest/test-code-stubs-mips64.cc | 8 +- deps/v8/test/cctest/test-compiler.cc | 8 +- deps/v8/test/cctest/test-cpu-profiler.cc | 14 +- deps/v8/test/cctest/test-date.cc | 4 +- deps/v8/test/cctest/test-debug.cc | 37 +- deps/v8/test/cctest/test-deoptimization.cc | 10 +- deps/v8/test/cctest/test-dictionary.cc | 12 + deps/v8/test/cctest/test-disasm-arm.cc | 61 +- deps/v8/test/cctest/test-disasm-ia32.cc | 36 + deps/v8/test/cctest/test-disasm-mips64.cc | 45 +- deps/v8/test/cctest/test-disasm-x64.cc | 4 + deps/v8/test/cctest/test-feedback-vector.cc | 27 +- .../test/cctest/test-field-type-tracking.cc | 40 +- deps/v8/test/cctest/test-flags.cc | 2 +- deps/v8/test/cctest/test-heap-profiler.cc | 12 +- deps/v8/test/cctest/test-identity-map.cc | 54 +- .../test/cctest/test-macro-assembler-arm.cc | 121 +- .../cctest/test-macro-assembler-mips64.cc | 62 +- deps/v8/test/cctest/test-mementos.cc | 5 +- deps/v8/test/cctest/test-modules.cc | 45 +- deps/v8/test/cctest/test-parsing.cc | 295 +- deps/v8/test/cctest/test-serialize.cc | 49 +- deps/v8/test/cctest/test-strings.cc | 3 + deps/v8/test/cctest/test-symbols.cc | 2 +- deps/v8/test/cctest/test-types.cc | 5 +- deps/v8/test/cctest/test-unboxed-doubles.cc | 8 +- deps/v8/test/cctest/test-weakmaps.cc | 10 +- deps/v8/test/cctest/test-weaksets.cc | 8 +- deps/v8/test/cctest/wasm/test-run-wasm-64.cc | 12 +- .../test/cctest/wasm/test-run-wasm-asmjs.cc | 3 +- .../cctest/wasm/test-run-wasm-interpreter.cc | 21 +- deps/v8/test/cctest/wasm/test-run-wasm-js.cc | 2 +- .../test/cctest/wasm/test-run-wasm-module.cc | 65 +- .../cctest/wasm/test-run-wasm-relocation.cc | 1 + .../v8/test/cctest/wasm/test-run-wasm-simd.cc | 486 ++- deps/v8/test/cctest/wasm/test-run-wasm.cc | 116 +- .../test/cctest/wasm/test-wasm-breakpoints.cc | 150 +- .../wasm/test-wasm-interpreter-entry.cc | 2 +- deps/v8/test/cctest/wasm/test-wasm-stack.cc | 2 +- .../cctest/wasm/test-wasm-trap-position.cc | 2 +- deps/v8/test/cctest/wasm/wasm-run-utils.h | 77 +- .../common}/wasm/wasm-macro-gen.h | 155 +- .../v8/test/common/wasm/wasm-module-runner.cc | 14 +- deps/v8/test/common/wasm/wasm-module-runner.h | 2 +- .../debugger/debug/debug-compile-optimized.js | 2 +- .../debug/debug-evaluate-nested-let.js | 2 +- deps/v8/test/debugger/debug/debug-optimize.js | 2 +- deps/v8/test/debugger/debug/debug-scopes.js | 4 +- .../debugger/debug/debug-stepin-accessor.js | 3 +- .../debug-stepin-property-function-call.js | 2 +- .../debugger/debug/es6/debug-blockscopes.js | 2 +- .../debug/harmony/modules-debug-scopes1.js | 4 +- .../debug/regress/regress-crbug-465298.js | 2 +- .../debug/regress/regress-crbug-517592.js | 2 - .../debug/regress/regress-crbug-633999.js | 2 +- deps/v8/test/debugger/debugger.status | 13 + deps/v8/test/default.gyp | 1 + deps/v8/test/default.isolate | 2 + deps/v8/test/fuzzer/fuzzer.gyp | 34 +- deps/v8/test/fuzzer/parser.cc | 48 +- deps/v8/test/fuzzer/testcfg.py | 3 + deps/v8/test/fuzzer/wasm-call.cc | 249 +- deps/v8/test/fuzzer/wasm-code.cc | 174 +- deps/v8/test/fuzzer/wasm-compile.cc | 180 +- deps/v8/test/fuzzer/wasm-data-section.cc | 6 +- .../test/fuzzer/wasm-function-sigs-section.cc | 7 +- deps/v8/test/fuzzer/wasm-fuzzer-common.cc | 194 ++ deps/v8/test/fuzzer/wasm-fuzzer-common.h | 40 + deps/v8/test/fuzzer/wasm-globals-section.cc | 6 +- deps/v8/test/fuzzer/wasm-imports-section.cc | 6 +- deps/v8/test/fuzzer/wasm-memory-section.cc | 6 +- deps/v8/test/fuzzer/wasm-names-section.cc | 6 +- deps/v8/test/fuzzer/wasm-section-fuzzers.cc | 63 - deps/v8/test/fuzzer/wasm-section-fuzzers.h | 16 - deps/v8/test/fuzzer/wasm-types-section.cc | 6 +- deps/v8/test/fuzzer/wasm.tar.gz.sha1 | 1 - deps/v8/test/fuzzer/wasm/foo | 0 deps/v8/test/fuzzer/wasm_asmjs.tar.gz.sha1 | 1 - deps/v8/test/fuzzer/wasm_asmjs/foo | 0 .../test/fuzzer/wasm_asmjs_corpus.tar.gz.sha1 | 1 + deps/v8/test/fuzzer/wasm_corpus.tar.gz.sha1 | 1 + deps/v8/test/inspector/BUILD.gn | 4 +- .../destroy-context-during-log-expected.txt | 1 + .../console/destroy-context-during-log.js | 10 +- .../console/let-const-with-api-expected.txt | 3 +- .../inspector/console/let-const-with-api.js | 2 + ...ofile-end-parameterless-crash-expected.txt | 2 +- ...console-profile-end-parameterless-crash.js | 4 +- .../cpu-profiler/console-profile-expected.txt | 2 +- .../inspector/cpu-profiler/console-profile.js | 4 +- .../test/inspector/cpu-profiler/coverage.js | 4 +- .../cpu-profiler/enable-disable-expected.txt | 2 +- .../inspector/cpu-profiler/enable-disable.js | 28 +- .../record-cpu-profile-expected.txt | 2 +- .../cpu-profiler/record-cpu-profile.js | 28 +- ...stop-without-preceeding-start-expected.txt | 2 +- .../stop-without-preceeding-start.js | 18 +- .../access-obsolete-frame-expected.txt | 3 +- .../debugger/access-obsolete-frame.js | 4 +- .../debugger/asm-js-breakpoint-before-exec.js | 4 +- .../debugger/asm-js-breakpoint-during-exec.js | 4 +- .../debugger/asm-js-stack-expected.txt | 1 + .../test/inspector/debugger/asm-js-stack.js | 4 +- .../async-console-count-doesnt-crash.js | 4 +- ...nc-for-await-of-promise-stack-expected.txt | 53 +- .../async-for-await-of-promise-stack.js | 22 +- .../async-instrumentation-expected.txt | 4 +- .../debugger/async-instrumentation.js | 10 +- .../async-promise-late-then-expected.txt | 6 +- .../debugger/async-promise-late-then.js | 10 +- .../inspector/debugger/async-set-timeout.js | 10 +- .../debugger/async-stack-await-expected.txt | 15 +- .../inspector/debugger/async-stack-await.js | 10 +- .../async-stack-created-frame-expected.txt | 57 +- .../debugger/async-stack-created-frame.js | 11 +- .../async-stack-for-promise-expected.txt | 129 +- .../debugger/async-stack-for-promise.js | 10 +- .../debugger/async-stacks-limit-expected.txt | 140 - .../inspector/debugger/async-stacks-limit.js | 164 - .../debugger/break-on-exception-expected.txt | 2 +- .../inspector/debugger/break-on-exception.js | 4 +- .../call-frame-function-location-expected.txt | 1 + .../debugger/call-frame-function-location.js | 4 +- ...t-exception-from-framework-inside-async.js | 8 +- .../debugger/caught-uncaught-exceptions.js | 4 +- .../collect-obsolete-async-tasks-expected.txt | 37 + .../debugger/collect-obsolete-async-tasks.js | 35 + ...collect-old-async-call-chains-expected.txt | 211 ++ .../debugger/collect-old-async-call-chains.js | 171 + ...-line-api-with-bound-function-expected.txt | 2 +- .../command-line-api-with-bound-function.js | 4 +- .../continue-to-location-expected.txt | 2 +- ...o-location-target-call-frames-expected.txt | 81 + ...continue-to-location-target-call-frames.js | 139 + .../debugger/continue-to-location.js | 4 +- .../destory-in-break-program-expected.txt | 1 + .../debugger/destory-in-break-program.js | 13 + .../doesnt-step-into-injected-script.js | 6 +- .../debugger/es6-module-script-parsed.js | 12 +- .../debugger/es6-module-set-script-source.js | 8 +- .../debugger/eval-scopes-expected.txt | 3 +- .../v8/test/inspector/debugger/eval-scopes.js | 4 +- .../debugger/framework-break-expected.txt | 4 +- .../inspector/debugger/framework-break.js | 18 +- ...mework-nested-scheduled-break-expected.txt | 18 +- .../framework-nested-scheduled-break.js | 20 +- .../debugger/framework-precise-ranges.js | 10 +- .../debugger/framework-stepping-expected.txt | 6 +- .../inspector/debugger/framework-stepping.js | 18 +- ...ble-breakpoints-array-literal-expected.txt | 1 + .../get-possible-breakpoints-array-literal.js | 4 +- ...ssible-breakpoints-lazy-error-expected.txt | 26 + .../get-possible-breakpoints-lazy-error.js | 28 + ...t-possible-breakpoints-master-expected.txt | 12 +- .../get-possible-breakpoints-master.js | 4 +- ...ssible-breakpoints-restrict-to-function.js | 8 +- .../debugger/get-possible-breakpoints.js | 4 +- .../debugger/inspector-break-api-expected.txt | 2 +- .../inspector/debugger/inspector-break-api.js | 18 +- .../max-async-call-chain-depth-expected.txt | 91 + .../debugger/max-async-call-chain-depth.js | 162 + .../object-preview-internal-properties.js | 2 +- .../inspector/debugger/pause-expected.txt | 3 + .../test/inspector/debugger/pause-on-oom.js | 4 +- deps/v8/test/inspector/debugger/pause.js | 128 +- .../promise-chain-when-limit-hit-expected.txt | 235 ++ .../debugger/promise-chain-when-limit-hit.js | 54 + ...tocol-string-to-double-locale-expected.txt | 8 + .../protocol-string-to-double-locale.js | 24 + .../inspector/debugger/restore-breakpoint.js | 2 +- .../debugger/return-break-locations.js | 4 +- .../schedule-step-into-async-set-timeout.js | 8 +- .../debugger/schedule-step-into-async.js | 10 +- ...kip-variables-with-empty-name-expected.txt | 3 +- .../scope-skip-variables-with-empty-name.js | 4 +- .../inspector/debugger/script-end-location.js | 4 +- .../debugger/script-on-after-compile.js | 2 +- .../script-parsed-for-runtime-evaluate.js | 6 +- .../debugger/script-parsed-hash-expected.txt | 3 +- .../inspector/debugger/script-parsed-hash.js | 2 + .../script-with-negative-offset-expected.txt | 19 + .../debugger/script-with-negative-offset.js | 31 + .../set-async-call-stack-depth-expected.txt | 37 + .../debugger/set-async-call-stack-depth.js | 79 + .../set-blackbox-patterns-expected.txt | 1 + .../debugger/set-blackbox-patterns.js | 10 +- ...et-breakpoint-before-enabling-expected.txt | 1 + .../set-breakpoint-before-enabling.js | 2 + .../debugger/set-script-source-exception.js | 4 +- .../debugger/set-script-source-expected.txt | 2 +- .../inspector/debugger/set-script-source.js | 4 +- ...de-effect-free-debug-evaluate-expected.txt | 1 + .../side-effect-free-debug-evaluate.js | 3 +- .../inspector/debugger/step-into-expected.txt | 45 +- .../debugger/step-into-nested-arrow.js | 8 +- .../debugger/step-into-next-script.js | 16 +- deps/v8/test/inspector/debugger/step-into.js | 8 +- .../debugger/step-out-async-await.js | 8 +- .../step-over-another-context-group.js | 40 +- .../step-over-caught-exception-expected.txt | 3 +- .../debugger/step-over-caught-exception.js | 4 +- .../debugger/step-snapshot-expected.txt | 35 + .../test/inspector/debugger/step-snapshot.js | 31 + ...fter-get-possible-breakpoints-expected.txt | 1 + ...stepping-after-get-possible-breakpoints.js | 4 +- ...tepping-and-break-program-api-expected.txt | 6 +- .../stepping-and-break-program-api.js | 10 +- ...pping-ignores-injected-script-expected.txt | 1 + .../stepping-ignores-injected-script.js | 6 +- .../inspector/debugger/stepping-tail-call.js | 8 +- ...epping-with-blackboxed-ranges-expected.txt | 2 + .../stepping-with-blackboxed-ranges.js | 8 +- ...-with-exposed-injected-script-expected.txt | 1 + .../stepping-with-exposed-injected-script.js | 6 +- .../stepping-with-natives-and-frameworks.js | 8 +- .../suspended-generator-scopes-expected.txt | 2 + .../debugger/suspended-generator-scopes.js | 4 +- .../update-call-frame-scopes-expected.txt | 2 +- .../debugger/update-call-frame-scopes.js | 4 +- .../wasm-get-breakable-locations-expected.txt | 1 + .../debugger/wasm-get-breakable-locations.js | 2 + .../debugger/wasm-imports-expected.txt | 1 + .../test/inspector/debugger/wasm-imports.js | 8 +- .../debugger/wasm-scripts-expected.txt | 1 + .../test/inspector/debugger/wasm-scripts.js | 7 +- .../debugger/wasm-source-expected.txt | 1 + .../v8/test/inspector/debugger/wasm-source.js | 6 +- .../debugger/wasm-stack-expected.txt | 1 + deps/v8/test/inspector/debugger/wasm-stack.js | 4 +- .../debugger/wasm-stepping-expected.txt | 295 +- .../test/inspector/debugger/wasm-stepping.js | 49 +- .../take-heap-snapshot-on-pause.js | 6 +- deps/v8/test/inspector/inspector-impl.cc | 341 +- deps/v8/test/inspector/inspector-impl.h | 92 +- deps/v8/test/inspector/inspector-test.cc | 814 +++-- deps/v8/test/inspector/inspector.gyp | 10 + deps/v8/test/inspector/inspector.status | 6 + deps/v8/test/inspector/isolate-data.cc | 95 + deps/v8/test/inspector/isolate-data.h | 67 + .../v8/test/inspector/json-parse-expected.txt | 1 + deps/v8/test/inspector/json-parse.js | 6 +- deps/v8/test/inspector/protocol-test.js | 485 ++- .../test/inspector/runtime/await-promise.js | 4 +- .../call-function-on-async-expected.txt | 6 +- .../runtime/call-function-on-async.js | 2 +- .../clear-of-command-line-api-expected.txt | 2 +- .../runtime/clear-of-command-line-api.js | 4 +- .../client-console-api-message-expected.txt | 8 + .../runtime/client-console-api-message.js | 28 + .../inspector/runtime/command-line-api.js | 8 +- .../runtime/compile-script-expected.txt | 3 +- .../test/inspector/runtime/compile-script.js | 2 + ...nsole-api-repeated-in-console-expected.txt | 1 - .../console-api-repeated-in-console.js | 2 +- .../test/inspector/runtime/console-assert.js | 4 +- .../console-deprecated-methods-expected.txt | 1 - .../runtime/console-deprecated-methods.js | 2 +- .../console-line-and-column-expected.txt | 3 +- .../runtime/console-line-and-column.js | 2 + ...ole-log-doesnt-run-microtasks-expected.txt | 1 - .../console-log-doesnt-run-microtasks.js | 4 +- .../test/inspector/runtime/console-memory.js | 2 +- .../runtime/console-messages-limits.js | 4 +- .../test/inspector/runtime/console-methods.js | 4 +- .../runtime/console-spec-expected.txt | 30 + .../v8/test/inspector/runtime/console-spec.js | 60 + .../runtime/console-time-end-format.js | 2 +- .../runtime/console-timestamp-expected.txt | 2 +- .../inspector/runtime/console-timestamp.js | 2 + .../test/inspector/runtime/create-context.js | 57 +- .../inspector/runtime/es6-module-expected.txt | 4 - deps/v8/test/inspector/runtime/es6-module.js | 16 +- .../runtime/evaluate-async-expected.txt | 4 - .../runtime/evaluate-async-with-wrap-error.js | 4 +- .../test/inspector/runtime/evaluate-async.js | 4 +- .../inspector/runtime/evaluate-empty-stack.js | 4 +- ...te-with-context-id-equal-zero-expected.txt | 1 - .../evaluate-with-context-id-equal-zero.js | 2 +- .../runtime/evaluate-with-generate-preview.js | 8 +- .../runtime/exception-thrown-expected.txt | 4 - .../inspector/runtime/exception-thrown.js | 4 +- .../get-properties-on-proxy-expected.txt | 2 +- .../runtime/get-properties-on-proxy.js | 4 +- .../get-properties-preview-expected.txt | 2 +- .../runtime/get-properties-preview.js | 4 +- .../test/inspector/runtime/get-properties.js | 2 +- .../runtime/internal-properties-entries.js | 2 +- .../inspector/runtime/internal-properties.js | 4 +- .../runtime/length-or-size-description.js | 4 +- .../property-on-console-proto-expected.txt | 1 - .../runtime/property-on-console-proto.js | 4 +- ...l-works-with-different-locale-expected.txt | 1 + .../protocol-works-with-different-locale.js | 2 + .../runtime/run-script-async-expected.txt | 6 +- .../inspector/runtime/run-script-async.js | 2 +- .../runtime-evaluate-with-dirty-context.js | 4 +- .../test/inspector/runtime/runtime-restore.js | 12 +- .../inspector/runtime/set-or-map-entries.js | 6 +- deps/v8/test/inspector/task-runner.cc | 175 +- deps/v8/test/inspector/task-runner.h | 89 +- deps/v8/test/inspector/testcfg.py | 3 +- .../intl/date-format/date-format-to-parts.js | 2 - deps/v8/test/intl/general/case-mapping.js | 2 + .../js-perf-test/BytecodeHandlers/compare.js | 157 + .../test/js-perf-test/BytecodeHandlers/run.js | 29 + .../v8/test/js-perf-test/ForLoops/for_loop.js | 42 + deps/v8/test/js-perf-test/ForLoops/run.js | 25 + deps/v8/test/js-perf-test/JSTests.json | 86 +- .../test/js-perf-test/Modules/basic-export.js | 7 + .../test/js-perf-test/Modules/basic-import.js | 8 + .../js-perf-test/Modules/basic-namespace.js | 8 + deps/v8/test/js-perf-test/Modules/run.js | 63 + deps/v8/test/js-perf-test/Modules/value.js | 6 + .../PropertyQueries/property-queries.js | 3 + .../test/js-perf-test/RestParameters/rest.js | 66 + deps/v8/test/js-perf-test/SixSpeed.json | 126 + .../js-perf-test/SixSpeed/classes/babel.js | 51 + .../test/js-perf-test/SixSpeed/classes/es5.js | 20 + .../test/js-perf-test/SixSpeed/classes/es6.js | 21 + .../js-perf-test/SixSpeed/map_set_add/es5.js | 21 + .../js-perf-test/SixSpeed/map_set_add/es6.js | 22 + .../SixSpeed/map_set_lookup/es5.js | 32 + .../SixSpeed/map_set_lookup/es6.js | 30 + .../SixSpeed/map_set_object/es5.js | 24 + .../SixSpeed/map_set_object/es6.js | 22 + .../js-perf-test/SixSpeed/map_string/es5.js | 26 + .../js-perf-test/SixSpeed/map_string/es6.js | 26 + .../test/js-perf-test/SixSpeed/super/babel.js | 135 + .../test/js-perf-test/SixSpeed/super/es5.js | 34 + .../test/js-perf-test/SixSpeed/super/es6.js | 34 + deps/v8/test/message/arrow-invalid-rest-2.out | 6 +- deps/v8/test/message/arrow-invalid-rest.out | 6 +- .../test/message/asm-assignment-undeclared.js | 2 +- .../test/message/asm-function-mismatch-def.js | 2 +- .../test/message/asm-function-mismatch-use.js | 2 +- .../v8/test/message/asm-function-redefined.js | 2 +- .../v8/test/message/asm-function-undefined.js | 2 +- .../asm-function-variable-collision.js | 2 +- .../message/asm-import-wrong-annotation.js | 11 + .../message/asm-import-wrong-annotation.out | 5 + .../test/message/asm-import-wrong-object.js | 11 + .../test/message/asm-import-wrong-object.out | 5 + .../v8/test/message/asm-linking-bogus-heap.js | 15 + .../test/message/asm-linking-bogus-heap.out | 5 + .../test/message/asm-linking-bogus-stdlib.js | 15 + .../test/message/asm-linking-bogus-stdlib.out | 5 + .../test/message/asm-linking-missing-heap.js | 15 + .../test/message/asm-linking-missing-heap.out | 5 + .../asm-missing-parameter-annotation.js | 2 +- .../message/asm-missing-return-annotation.js | 2 +- .../v8/test/message/asm-table-mismatch-def.js | 2 +- .../v8/test/message/asm-table-mismatch-use.js | 2 +- deps/v8/test/message/asm-table-redefined.js | 2 +- deps/v8/test/message/asm-table-undefined.js | 2 +- .../message/asm-table-variable-collision.js | 2 +- .../message/async-arrow-invalid-rest-2.js | 8 + .../message/async-arrow-invalid-rest-2.out | 4 + .../test/message/async-arrow-invalid-rest.js | 8 + .../test/message/async-arrow-invalid-rest.out | 4 + .../message/async-arrow-param-after-rest.js | 7 + .../message/async-arrow-param-after-rest.out | 5 + deps/v8/test/message/class-spread-property.js | 5 + .../v8/test/message/class-spread-property.out | 4 + deps/v8/test/message/console.js | 25 + deps/v8/test/message/console.out | 15 + .../test/message/function-param-after-rest.js | 7 + .../message/function-param-after-rest.out | 5 + deps/v8/test/message/testcfg.py | 1 + deps/v8/test/mjsunit/allocation-site-info.js | 12 +- deps/v8/test/mjsunit/arguments.js | 81 + .../mjsunit/array-constructor-feedback.js | 11 +- deps/v8/test/mjsunit/array-feedback.js | 2 +- .../v8/test/mjsunit/array-literal-feedback.js | 2 +- .../test/mjsunit/array-literal-transitions.js | 2 +- deps/v8/test/mjsunit/array-push5.js | 2 +- deps/v8/test/mjsunit/array-shift4.js | 2 +- deps/v8/test/mjsunit/array-slice.js | 35 +- deps/v8/test/mjsunit/array-store-and-grow.js | 2 +- deps/v8/test/mjsunit/asm/asm-memory.js | 55 + deps/v8/test/mjsunit/asm/asm-stdlib.js | 46 + deps/v8/test/mjsunit/asm/asm-validation.js | 18 + deps/v8/test/mjsunit/asm/call-annotation.js | 179 + deps/v8/test/mjsunit/asm/call-stdlib.js | 85 + deps/v8/test/mjsunit/asm/global-imports.js | 74 + deps/v8/test/mjsunit/asm/immutable.js | 48 + deps/v8/test/mjsunit/asm/int32-mul.js | 4 +- deps/v8/test/mjsunit/asm/regress-718745.js | 13 + deps/v8/test/mjsunit/asm/return-types.js | 123 + deps/v8/test/mjsunit/basic-promise.js | 10 +- .../mjsunit/compiler/array-constructor.js | 89 + ...-no-harmony-restrict-constructor-return.js | 12 + .../mjsunit/compiler/constructor-inlining.js | 128 + .../compiler/deopt-inlined-from-call.js | 2 +- .../compiler/deopt-numberoroddball-binop.js | 2 +- .../compiler/deopt-string-outofbounds.js | 2 +- .../mjsunit/compiler/escape-analysis-16.js | 18 + .../compiler/escape-analysis-phi-type-2.js | 41 + .../compiler/escape-analysis-phi-type.js | 24 + .../escape-analysis-representation.js | 2 +- .../compiler/increment-typefeedback.js | 2 +- .../test/mjsunit/compiler/inline-accessors.js | 2 +- .../test/mjsunit/compiler/inline-arguments.js | 2 +- .../mjsunit/compiler/inlined-array-pop-opt.js | 2 +- deps/v8/test/mjsunit/compiler/inlined-call.js | 2 +- deps/v8/test/mjsunit/compiler/instanceof.js | 12 + .../mjsunit/compiler/integral32-add-sub.js | 2 +- .../compiler/manual-concurrent-recompile.js | 2 +- .../mjsunit/compiler/object-getprototypeof.js | 15 + .../mjsunit/compiler/opt-next-call-turbo.js | 2 +- .../v8/test/mjsunit/compiler/opt-next-call.js | 2 +- .../compiler/optimized-float32array-length.js | 2 +- .../compiler/optimized-float64array-length.js | 2 +- .../compiler/optimized-int32array-length.js | 2 +- .../compiler/optimized-uint32array-length.js | 2 +- .../compiler/reflect-getprototypeof.js | 15 + deps/v8/test/mjsunit/compiler/regress-5320.js | 2 +- .../test/mjsunit/compiler/regress-715204.js | 13 + .../test/mjsunit/compiler/regress-715651.js | 38 + .../compiler/regress-compare-negate.js | 2 +- .../compiler/regress-string-to-number-add.js | 2 +- .../mjsunit/compiler/turbo-number-feedback.js | 2 +- .../mjsunit/compiler/uint8-clamped-array.js | 2 +- deps/v8/test/mjsunit/const-field-tracking.js | 2 +- deps/v8/test/mjsunit/constant-folding-2.js | 2 +- deps/v8/test/mjsunit/deopt-minus-zero.js | 2 +- .../mjsunit/deopt-recursive-eager-once.js | 2 +- .../test/mjsunit/deopt-recursive-lazy-once.js | 2 +- .../test/mjsunit/deopt-recursive-soft-once.js | 2 +- deps/v8/test/mjsunit/deopt-unlinked.js | 2 +- deps/v8/test/mjsunit/deopt-with-fp-regs.js | 2 +- .../mjsunit/deserialize-optimize-inner.js | 3 +- deps/v8/test/mjsunit/dictionary-properties.js | 2 + deps/v8/test/mjsunit/div-mul-minus-one.js | 2 +- deps/v8/test/mjsunit/element-read-only.js | 47 +- .../mjsunit/elements-transition-hoisting.js | 2 +- .../mjsunit/ensure-growing-store-learns.js | 6 +- .../test/mjsunit/es6/array-iterator-turbo.js | 40 +- .../es6/block-let-crankshaft-sloppy.js | 2 +- .../test/mjsunit/es6/block-let-crankshaft.js | 2 +- .../test/mjsunit/es6/block-scoping-sloppy.js | 2 +- deps/v8/test/mjsunit/es6/block-scoping.js | 2 +- .../mjsunit/es6/destructuring-assignment.js | 90 + .../test/mjsunit/es6/regress/regress-6322.js | 6 + .../mjsunit/es6/rest-params-lazy-parsing.js | 2 - deps/v8/test/mjsunit/es6/string-replace.js | 6 +- deps/v8/test/mjsunit/es6/string-split.js | 5 +- ...t-by-array-like-prototype-element-added.js | 32 + .../es6/typedarray-construct-by-array-like.js | 195 +- .../typedarray-construct-offset-not-smi.js | 35 +- .../test/mjsunit/es6/typedarray-copywithin.js | 4 +- deps/v8/test/mjsunit/es6/typedarray-every.js | 5 + deps/v8/test/mjsunit/es6/typedarray-fill.js | 14 + deps/v8/test/mjsunit/es6/typedarray-find.js | 15 + .../test/mjsunit/es6/typedarray-findindex.js | 13 + .../v8/test/mjsunit/es6/typedarray-foreach.js | 5 + .../test/mjsunit/es6/typedarray-indexing.js | 20 + .../test/mjsunit/es6/typedarray-iteration.js | 17 + deps/v8/test/mjsunit/es6/typedarray-map.js | 49 + deps/v8/test/mjsunit/es6/typedarray-reduce.js | 16 + .../v8/test/mjsunit/es6/typedarray-reverse.js | 9 + deps/v8/test/mjsunit/es6/typedarray-slice.js | 14 + deps/v8/test/mjsunit/es6/typedarray-sort.js | 7 + .../test/mjsunit/es6/typedarray-tostring.js | 9 + deps/v8/test/mjsunit/es6/typedarray.js | 25 + .../es8/constructor-returning-primitive.js | 318 ++ deps/v8/test/mjsunit/field-type-tracking.js | 2 +- .../fixed-context-shapes-when-recompiling.js | 2 +- .../mjsunit/function-arguments-duplicate.js | 4 + deps/v8/test/mjsunit/getters-on-elements.js | 35 +- deps/v8/test/mjsunit/global-accessors.js | 2 + .../mjsunit/harmony/async-generators-basic.js | 70 + deps/v8/test/mjsunit/harmony/atomics.js | 39 +- .../v8/test/mjsunit/harmony/do-expressions.js | 2 +- .../harmony/global-accessors-strict.js | 54 + deps/v8/test/mjsunit/harmony/regexp-dotall.js | 6 + .../mjsunit/harmony/regexp-named-captures.js | 14 +- .../mjsunit/harmony/regexp-property-binary.js | 22 +- deps/v8/test/mjsunit/indexed-accessors.js | 2 +- .../mjsunit/keyed-load-hole-to-undefined.js | 2 +- .../mjsunit/keyed-load-with-string-key.js | 2 +- .../mjsunit/keyed-load-with-symbol-key.js | 2 +- deps/v8/test/mjsunit/keyed-store-generic.js | 22 + .../mjsunit/math-floor-of-div-minus-zero.js | 2 +- deps/v8/test/mjsunit/math-imul.js | 2 +- deps/v8/test/mjsunit/messages.js | 42 +- deps/v8/test/mjsunit/mjsunit.js | 49 +- deps/v8/test/mjsunit/mjsunit.status | 53 +- deps/v8/test/mjsunit/modules-turbo1.js | 2 +- deps/v8/test/mjsunit/never-optimize.js | 2 +- deps/v8/test/mjsunit/object-keys.js | 34 + deps/v8/test/mjsunit/object-literal.js | 1399 +++++++- deps/v8/test/mjsunit/object-seal.js | 2 +- deps/v8/test/mjsunit/osr-elements-kind.js | 2 +- deps/v8/test/mjsunit/parse-tasks.js | 55 + deps/v8/test/mjsunit/polymorph-arrays.js | 2 +- .../proto-elements-add-during-foreach.js | 2 - deps/v8/test/mjsunit/regexp.js | 5 + deps/v8/test/mjsunit/regress/regress-105.js | 4 +- deps/v8/test/mjsunit/regress/regress-1119.js | 2 - .../v8/test/mjsunit/regress/regress-115452.js | 2 - deps/v8/test/mjsunit/regress/regress-1240.js | 4 +- .../test/mjsunit/regress/regress-1493017.js | 2 +- deps/v8/test/mjsunit/regress/regress-2132.js | 2 +- deps/v8/test/mjsunit/regress/regress-2250.js | 2 +- deps/v8/test/mjsunit/regress/regress-2315.js | 2 +- deps/v8/test/mjsunit/regress/regress-2339.js | 2 +- deps/v8/test/mjsunit/regress/regress-2451.js | 2 +- .../v8/test/mjsunit/regress/regress-252797.js | 3 +- deps/v8/test/mjsunit/regress/regress-2618.js | 2 +- deps/v8/test/mjsunit/regress/regress-3176.js | 2 +- .../v8/test/mjsunit/regress/regress-330046.js | 2 +- .../test/mjsunit/regress/regress-3408144.js | 2 - .../v8/test/mjsunit/regress/regress-347914.js | 2 +- .../v8/test/mjsunit/regress/regress-353004.js | 16 +- .../v8/test/mjsunit/regress/regress-3650-3.js | 2 +- deps/v8/test/mjsunit/regress/regress-3709.js | 2 +- .../v8/test/mjsunit/regress/regress-385565.js | 2 +- .../v8/test/mjsunit/regress/regress-410912.js | 2 +- deps/v8/test/mjsunit/regress/regress-4380.js | 2 +- deps/v8/test/mjsunit/regress/regress-4665.js | 10 +- .../v8/test/mjsunit/regress/regress-475705.js | 2 +- deps/v8/test/mjsunit/regress/regress-4825.js | 16 + deps/v8/test/mjsunit/regress/regress-5404.js | 2 +- deps/v8/test/mjsunit/regress/regress-5790.js | 2 +- deps/v8/test/mjsunit/regress/regress-5802.js | 2 +- deps/v8/test/mjsunit/regress/regress-5902.js | 1 + .../v8/test/mjsunit/regress/regress-618608.js | 2 +- deps/v8/test/mjsunit/regress/regress-6248.js | 24 + deps/v8/test/mjsunit/regress/regress-6280.js | 22 + deps/v8/test/mjsunit/regress/regress-6288.js | 13 + deps/v8/test/mjsunit/regress/regress-6298.js | 16 + deps/v8/test/mjsunit/regress/regress-6337.js | 5 + .../v8/test/mjsunit/regress/regress-641091.js | 15 + .../v8/test/mjsunit/regress/regress-645680.js | 16 +- .../v8/test/mjsunit/regress/regress-707066.js | 25 + .../v8/test/mjsunit/regress/regress-709782.js | 14 + .../v8/test/mjsunit/regress/regress-711165.js | 9 + .../v8/test/mjsunit/regress/regress-716044.js | 25 + .../v8/test/mjsunit/regress/regress-718285.js | 46 + .../v8/test/mjsunit/regress/regress-718891.js | 68 + .../v8/test/mjsunit/regress/regress-719380.js | 7 + .../v8/test/mjsunit/regress/regress-722978.js | 15 + .../v8/test/mjsunit/regress/regress-725858.js | 11 + .../v8/test/mjsunit/regress/regress-727218.js | 12 + .../regress/regress-conditional-position.js | 2 +- .../mjsunit/regress/regress-crbug-157019.js | 2 +- .../mjsunit/regress/regress-crbug-157520.js | 2 +- .../mjsunit/regress/regress-crbug-244461.js | 2 +- .../mjsunit/regress/regress-crbug-504787.js | 2 - .../mjsunit/regress/regress-crbug-506443.js | 2 +- .../mjsunit/regress/regress-crbug-513507.js | 2 +- .../mjsunit/regress/regress-crbug-554831.js | 2 +- .../mjsunit/regress/regress-crbug-587068.js | 2 +- .../mjsunit/regress/regress-crbug-594183.js | 2 +- .../regress/regress-crbug-651403-global.js | 2 +- .../mjsunit/regress/regress-crbug-707580.js | 10 + .../mjsunit/regress/regress-crbug-711166.js | 22 + .../mjsunit/regress/regress-crbug-712802.js | 12 + .../mjsunit/regress/regress-crbug-714696.js | 10 + .../mjsunit/regress/regress-crbug-714872.js | 8 + .../mjsunit/regress/regress-crbug-714971.js | 19 + .../mjsunit/regress/regress-crbug-714981.js | 32 + .../mjsunit/regress/regress-crbug-715151.js | 15 + .../mjsunit/regress/regress-crbug-715404.js | 11 + .../mjsunit/regress/regress-crbug-715455.js | 25 + .../mjsunit/regress/regress-crbug-715862.js | 17 + .../mjsunit/regress/regress-crbug-716520.js | 21 + .../mjsunit/regress/regress-crbug-716804.js | 13 + .../mjsunit/regress/regress-crbug-716912.js | 23 + .../mjsunit/regress/regress-crbug-718779.js | 21 + .../mjsunit/regress/regress-crbug-719479.js | 24 + .../mjsunit/regress/regress-crbug-721835.js | 31 + .../mjsunit/regress/regress-crbug-723132.js | 16 + .../mjsunit/regress/regress-crbug-723455.js | 18 + .../mjsunit/regress/regress-crbug-736451.js | 13 + .../mjsunit/regress/regress-crbug-736575.js | 14 + .../mjsunit/regress/regress-crbug-738763.js | 25 + .../mjsunit/regress/regress-crbug-740803.js | 19 + .../mjsunit/regress/regress-crbug-747979.js | 32 + .../mjsunit/regress/regress-crbug-748539.js | 22 + .../regress/regress-embedded-cons-string.js | 2 +- .../regress/regress-map-invalidation-2.js | 2 +- .../regress/regress-param-local-type.js | 2 +- deps/v8/test/mjsunit/regress/regress-r4998.js | 2 - .../regress/regress-store-uncacheable.js | 2 +- .../test/mjsunit/regress/regress-v8-5697.js | 2 +- .../mjsunit/regress/wasm/regress-712569.js | 20 + .../mjsunit/regress/wasm/regression-02256.js | 2 +- .../mjsunit/regress/wasm/regression-02256b.js | 2 +- .../mjsunit/regress/wasm/regression-647649.js | 5 +- .../mjsunit/regress/wasm/regression-699485.js | 2 +- .../mjsunit/regress/wasm/regression-710844.js | 23 + .../mjsunit/regress/wasm/regression-711203.js | 30 + .../regress/wasm/regression-715216-a.js | 12 + .../regress/wasm/regression-715216-b.js | 13 + .../mjsunit/regress/wasm/regression-717056.js | 16 + .../mjsunit/regress/wasm/regression-719175.js | 16 + .../mjsunit/regress/wasm/regression-722445.js | 16 + .../mjsunit/regress/wasm/regression-731351.js | 23 + .../mjsunit/regress/wasm/regression-734108.js | 16 + .../mjsunit/regress/wasm/regression-737069.js | 35 + deps/v8/test/mjsunit/setters-on-elements.js | 6 +- .../mjsunit/shared-function-tier-up-turbo.js | 2 +- deps/v8/test/mjsunit/shift-for-integer-div.js | 2 +- deps/v8/test/mjsunit/shifts.js | 2 - deps/v8/test/mjsunit/sin-cos.js | 2 +- .../test/mjsunit/skipping-inner-functions.js | 37 + deps/v8/test/mjsunit/smi-mul-const.js | 2 +- deps/v8/test/mjsunit/smi-mul.js | 2 +- deps/v8/test/mjsunit/stack-traces.js | 2 +- deps/v8/test/mjsunit/string-case.js | 5 +- .../v8/test/mjsunit/strong-rooted-literals.js | 2 +- .../mjsunit/type-profile/regress-707223.js | 8 + deps/v8/test/mjsunit/unary-minus-deopt.js | 2 +- deps/v8/test/mjsunit/wasm/asm-wasm-expr.js | 10 +- deps/v8/test/mjsunit/wasm/asm-wasm.js | 4 +- deps/v8/test/mjsunit/wasm/async-compile.js | 91 +- .../test/mjsunit/wasm/compilation-limits.js | 6 +- deps/v8/test/mjsunit/wasm/gc-buffer.js | 2 +- deps/v8/test/mjsunit/wasm/gc-stress.js | 2 +- deps/v8/test/mjsunit/wasm/huge-memory.js | 76 + deps/v8/test/mjsunit/wasm/indirect-tables.js | 31 + .../mjsunit/wasm/instantiate-module-basic.js | 2 +- .../mjsunit/wasm/instantiate-run-basic.js | 20 +- deps/v8/test/mjsunit/wasm/js-api.js | 2 - .../test/mjsunit/wasm/wasm-api-overloading.js | 53 + deps/v8/test/mkgrokdump/BUILD.gn | 27 + deps/v8/test/mkgrokdump/DEPS | 3 + deps/v8/test/mkgrokdump/README | 3 + deps/v8/test/mkgrokdump/mkgrokdump.cc | 133 + deps/v8/test/mkgrokdump/mkgrokdump.gyp | 46 + deps/v8/test/mkgrokdump/mkgrokdump.isolate | 17 + deps/v8/test/mkgrokdump/mkgrokdump.status | 10 + deps/v8/test/mkgrokdump/testcfg.py | 49 + deps/v8/test/mozilla/mozilla.status | 16 +- ...line-html-close-comment-before-function.js | 16 + ...l-close-comment-newline-before-function.js | 15 + deps/v8/test/test262/test262.status | 112 +- deps/v8/test/unittests/BUILD.gn | 36 +- .../unittests/asmjs/asm-scanner-unittest.cc | 23 +- .../{wasm => asmjs}/asm-types-unittest.cc | 30 +- .../{wasm => asmjs}/switch-logic-unittest.cc | 0 deps/v8/test/unittests/base/bits-unittest.cc | 22 +- .../test/unittests/base/iterator-unittest.cc | 2 +- .../test/unittests/base/logging-unittest.cc | 15 +- .../base/platform/platform-unittest.cc | 103 + .../unittests/char-predicates-unittest.cc | 5 +- .../compiler-dispatcher-job-unittest.cc | 6 +- .../compiler-dispatcher-unittest.cc | 6 +- .../optimizing-compile-dispatcher-unittest.cc | 2 +- .../compiler/bytecode-analysis-unittest.cc | 42 +- .../compiler/int64-lowering-unittest.cc | 6 +- .../js-intrinsic-lowering-unittest.cc | 17 + deps/v8/test/unittests/compiler/mips/OWNERS | 7 +- deps/v8/test/unittests/compiler/mips64/OWNERS | 7 +- .../unittests/compiler/node-test-utils.cc | 20 +- .../test/unittests/compiler/node-test-utils.h | 2 +- .../heap/concurrent-marking-deque-unittest.cc | 57 + .../heap/item-parallel-job-unittest.cc | 211 ++ .../v8/test/unittests/heap/spaces-unittest.cc | 6 + .../workstealing-marking-deque-unittest.cc | 33 + .../bytecode-array-builder-unittest.cc | 166 +- .../bytecode-array-writer-unittest.cc | 11 +- ...-unittest.cc => bytecode-node-unittest.cc} | 40 +- .../bytecode-register-optimizer-unittest.cc | 5 - .../bytecode-source-info-unittest.cc | 52 + deps/v8/test/unittests/object-unittest.cc | 60 + .../unittests/parser/preparser-unittest.cc | 41 + ...r-dispatcher-helper.cc => test-helpers.cc} | 2 +- ...ler-dispatcher-helper.h => test-helpers.h} | 6 +- deps/v8/test/unittests/unittests.gyp | 42 +- .../unittests/value-serializer-unittest.cc | 71 +- .../wasm/control-transfer-unittest.cc | 213 +- .../test/unittests/wasm/decoder-unittest.cc | 2 +- .../wasm/function-body-decoder-unittest.cc | 21 +- .../wasm/loop-assignment-analysis-unittest.cc | 10 +- .../unittests/wasm/module-decoder-unittest.cc | 70 +- .../wasm/streaming-decoder-unittest.cc | 498 +++ .../unittests/wasm/wasm-macro-gen-unittest.cc | 2 +- deps/v8/test/wasm-spec-tests/OWNERS | 4 + deps/v8/test/wasm-spec-tests/testcfg.py | 35 + .../v8/test/wasm-spec-tests/tests.tar.gz.sha1 | 1 + .../test/wasm-spec-tests/wasm-spec-tests.gyp | 26 + .../wasm-spec-tests/wasm-spec-tests.isolate | 15 + .../wasm-spec-tests/wasm-spec-tests.status | 37 + deps/v8/test/webkit/webkit.status | 6 +- .../lib/Parser_cpp.template | 10 +- deps/v8/tools/dev/gm.py | 30 +- deps/v8/tools/disasm.py | 6 +- deps/v8/tools/eval_gc_time.sh | 1 - .../tools/foozzie/testdata/failure_output.txt | 2 +- deps/v8/tools/foozzie/testdata/fuzz-123.js | 1 + deps/v8/tools/foozzie/v8_foozzie.py | 15 +- deps/v8/tools/foozzie/v8_foozzie_test.py | 9 +- deps/v8/tools/foozzie/v8_suppressions.py | 54 +- deps/v8/tools/gcmole/gcmole.lua | 2 +- deps/v8/tools/gdbinit | 25 + deps/v8/tools/gen-postmortem-metadata.py | 60 +- deps/v8/tools/get_byteorder.py | 17 - deps/v8/tools/grokdump.py | 22 +- deps/v8/tools/ic-processor.js | 2 +- deps/v8/tools/ignition/linux_perf_report.py | 4 +- .../tools/link_clicker.extension/README.txt | 12 + .../link_clicker.extension/background.js | 74 + .../tools/link_clicker.extension/content.js | 66 + deps/v8/tools/link_clicker.extension/icon.png | Bin 0 -> 230 bytes .../link_clicker.extension/manifest.json | 21 + .../tools/link_clicker.extension/popup.html | 50 + deps/v8/tools/link_clicker.extension/popup.js | 53 + deps/v8/tools/luci-go/linux64/isolate.sha1 | 2 +- deps/v8/tools/luci-go/mac64/isolate.sha1 | 2 +- deps/v8/tools/luci-go/win64/isolate.exe.sha1 | 2 +- deps/v8/tools/memory/lsan/suppressions.txt | 3 - deps/v8/tools/perf_tests/chromium_revision | 1 - deps/v8/tools/plot-timer-events | 4 +- deps/v8/tools/presubmit.py | 8 +- deps/v8/tools/profile.js | 9 +- deps/v8/tools/release/git_recipes.py | 8 +- deps/v8/tools/release/update_node.py | 23 +- deps/v8/tools/run-tests.py | 13 +- deps/v8/tools/run_perf.py | 13 +- deps/v8/tools/testrunner/local/execution.py | 12 +- deps/v8/tools/testrunner/local/testsuite.py | 2 +- deps/v8/tools/testrunner/local/variants.py | 22 +- deps/v8/tools/testrunner/testrunner.isolate | 2 +- deps/v8/tools/try_perf.py | 2 +- deps/v8/tools/turbolizer/disassembly-view.js | 2 +- deps/v8/tools/v8-info.sh | 161 - deps/v8/tools/v8heapconst.py | 448 ++- deps/v8/tools/v8heapconst.py.tmpl | 30 - deps/v8/tools/verify_source_deps.py | 6 + .../tools/{ => wasm}/update-wasm-fuzzers.sh | 36 +- deps/v8/tools/wasm/update-wasm-spec-tests.sh | 30 + deps/v8/tools/whitespace.txt | 2 +- 1529 files changed, 61358 insertions(+), 41264 deletions(-) create mode 100644 deps/v8/include/v8-value-serializer-version.h delete mode 100644 deps/v8/src/asmjs/asm-typer.cc delete mode 100644 deps/v8/src/asmjs/asm-typer.h delete mode 100644 deps/v8/src/asmjs/asm-wasm-builder.cc delete mode 100644 deps/v8/src/asmjs/asm-wasm-builder.h create mode 100644 deps/v8/src/base/export-template.h create mode 100644 deps/v8/src/builtins/builtins-console-gen.cc create mode 100644 deps/v8/src/builtins/builtins-console.cc create mode 100644 deps/v8/src/builtins/builtins-intl-gen.cc create mode 100644 deps/v8/src/builtins/builtins-string-gen.h create mode 100644 deps/v8/src/d8-console.cc create mode 100644 deps/v8/src/d8-console.h create mode 100644 deps/v8/src/heap/concurrent-marking-deque.h create mode 100644 deps/v8/src/heap/item-parallel-job.h create mode 100644 deps/v8/src/heap/sequential-marking-deque.cc create mode 100644 deps/v8/src/heap/sequential-marking-deque.h create mode 100644 deps/v8/src/heap/workstealing-marking-deque.h create mode 100644 deps/v8/src/interpreter/bytecode-jump-table.h rename deps/v8/src/interpreter/{bytecode-pipeline.cc => bytecode-node.cc} (78%) rename deps/v8/src/interpreter/{bytecode-pipeline.h => bytecode-node.h} (66%) create mode 100644 deps/v8/src/interpreter/bytecode-source-info.cc create mode 100644 deps/v8/src/interpreter/bytecode-source-info.h create mode 100644 deps/v8/src/intl.cc create mode 100644 deps/v8/src/intl.h delete mode 100644 deps/v8/src/js/harmony-string-padding.js rename deps/v8/src/js/{i18n.js => intl.js} (93%) create mode 100644 deps/v8/src/js/max-min.js delete mode 100644 deps/v8/src/js/runtime.js delete mode 100644 deps/v8/src/objects/hash-table-inl.h rename deps/v8/src/{i18n.cc => objects/intl-objects.cc} (53%) rename deps/v8/src/{i18n.h => objects/intl-objects.h} (63%) create mode 100644 deps/v8/src/objects/map-inl.h create mode 100644 deps/v8/src/objects/map.h rename deps/v8/src/runtime/{runtime-i18n.cc => runtime-intl.cc} (97%) create mode 100644 deps/v8/src/string-hasher-inl.h create mode 100644 deps/v8/src/string-hasher.h create mode 100644 deps/v8/src/visitors.cc create mode 100644 deps/v8/src/visitors.h create mode 100644 deps/v8/src/wasm/local-decl-encoder.cc create mode 100644 deps/v8/src/wasm/local-decl-encoder.h create mode 100644 deps/v8/src/wasm/streaming-decoder.cc create mode 100644 deps/v8/src/wasm/streaming-decoder.h delete mode 100644 deps/v8/test/cctest/asmjs/OWNERS delete mode 100644 deps/v8/test/cctest/asmjs/test-asm-typer.cc create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/StandardForLoop.golden rename deps/v8/{src => test/common}/wasm/wasm-macro-gen.h (87%) create mode 100644 deps/v8/test/fuzzer/wasm-fuzzer-common.cc create mode 100644 deps/v8/test/fuzzer/wasm-fuzzer-common.h delete mode 100644 deps/v8/test/fuzzer/wasm-section-fuzzers.cc delete mode 100644 deps/v8/test/fuzzer/wasm-section-fuzzers.h delete mode 100644 deps/v8/test/fuzzer/wasm.tar.gz.sha1 create mode 100644 deps/v8/test/fuzzer/wasm/foo delete mode 100644 deps/v8/test/fuzzer/wasm_asmjs.tar.gz.sha1 create mode 100644 deps/v8/test/fuzzer/wasm_asmjs/foo create mode 100644 deps/v8/test/fuzzer/wasm_asmjs_corpus.tar.gz.sha1 create mode 100644 deps/v8/test/fuzzer/wasm_corpus.tar.gz.sha1 delete mode 100644 deps/v8/test/inspector/debugger/async-stacks-limit-expected.txt delete mode 100644 deps/v8/test/inspector/debugger/async-stacks-limit.js create mode 100644 deps/v8/test/inspector/debugger/collect-obsolete-async-tasks-expected.txt create mode 100644 deps/v8/test/inspector/debugger/collect-obsolete-async-tasks.js create mode 100644 deps/v8/test/inspector/debugger/collect-old-async-call-chains-expected.txt create mode 100644 deps/v8/test/inspector/debugger/collect-old-async-call-chains.js create mode 100644 deps/v8/test/inspector/debugger/continue-to-location-target-call-frames-expected.txt create mode 100644 deps/v8/test/inspector/debugger/continue-to-location-target-call-frames.js create mode 100644 deps/v8/test/inspector/debugger/destory-in-break-program-expected.txt create mode 100644 deps/v8/test/inspector/debugger/destory-in-break-program.js create mode 100644 deps/v8/test/inspector/debugger/get-possible-breakpoints-lazy-error-expected.txt create mode 100644 deps/v8/test/inspector/debugger/get-possible-breakpoints-lazy-error.js create mode 100644 deps/v8/test/inspector/debugger/max-async-call-chain-depth-expected.txt create mode 100644 deps/v8/test/inspector/debugger/max-async-call-chain-depth.js create mode 100644 deps/v8/test/inspector/debugger/promise-chain-when-limit-hit-expected.txt create mode 100644 deps/v8/test/inspector/debugger/promise-chain-when-limit-hit.js create mode 100644 deps/v8/test/inspector/debugger/protocol-string-to-double-locale-expected.txt create mode 100644 deps/v8/test/inspector/debugger/protocol-string-to-double-locale.js create mode 100644 deps/v8/test/inspector/debugger/script-with-negative-offset-expected.txt create mode 100644 deps/v8/test/inspector/debugger/script-with-negative-offset.js create mode 100644 deps/v8/test/inspector/debugger/set-async-call-stack-depth-expected.txt create mode 100644 deps/v8/test/inspector/debugger/set-async-call-stack-depth.js create mode 100644 deps/v8/test/inspector/debugger/step-snapshot-expected.txt create mode 100644 deps/v8/test/inspector/debugger/step-snapshot.js create mode 100644 deps/v8/test/inspector/isolate-data.cc create mode 100644 deps/v8/test/inspector/isolate-data.h create mode 100644 deps/v8/test/inspector/runtime/client-console-api-message-expected.txt create mode 100644 deps/v8/test/inspector/runtime/client-console-api-message.js create mode 100644 deps/v8/test/inspector/runtime/console-spec-expected.txt create mode 100644 deps/v8/test/inspector/runtime/console-spec.js create mode 100644 deps/v8/test/js-perf-test/BytecodeHandlers/compare.js create mode 100644 deps/v8/test/js-perf-test/BytecodeHandlers/run.js create mode 100644 deps/v8/test/js-perf-test/ForLoops/for_loop.js create mode 100644 deps/v8/test/js-perf-test/ForLoops/run.js create mode 100644 deps/v8/test/js-perf-test/Modules/basic-export.js create mode 100644 deps/v8/test/js-perf-test/Modules/basic-import.js create mode 100644 deps/v8/test/js-perf-test/Modules/basic-namespace.js create mode 100644 deps/v8/test/js-perf-test/Modules/run.js create mode 100644 deps/v8/test/js-perf-test/Modules/value.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/classes/babel.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/classes/es5.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/classes/es6.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/map_set_add/es5.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/map_set_add/es6.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/map_set_lookup/es5.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/map_set_lookup/es6.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/map_set_object/es5.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/map_set_object/es6.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/map_string/es5.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/map_string/es6.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/super/babel.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/super/es5.js create mode 100644 deps/v8/test/js-perf-test/SixSpeed/super/es6.js create mode 100644 deps/v8/test/message/asm-import-wrong-annotation.js create mode 100644 deps/v8/test/message/asm-import-wrong-annotation.out create mode 100644 deps/v8/test/message/asm-import-wrong-object.js create mode 100644 deps/v8/test/message/asm-import-wrong-object.out create mode 100644 deps/v8/test/message/asm-linking-bogus-heap.js create mode 100644 deps/v8/test/message/asm-linking-bogus-heap.out create mode 100644 deps/v8/test/message/asm-linking-bogus-stdlib.js create mode 100644 deps/v8/test/message/asm-linking-bogus-stdlib.out create mode 100644 deps/v8/test/message/asm-linking-missing-heap.js create mode 100644 deps/v8/test/message/asm-linking-missing-heap.out create mode 100644 deps/v8/test/message/async-arrow-invalid-rest-2.js create mode 100644 deps/v8/test/message/async-arrow-invalid-rest-2.out create mode 100644 deps/v8/test/message/async-arrow-invalid-rest.js create mode 100644 deps/v8/test/message/async-arrow-invalid-rest.out create mode 100644 deps/v8/test/message/async-arrow-param-after-rest.js create mode 100644 deps/v8/test/message/async-arrow-param-after-rest.out create mode 100644 deps/v8/test/message/class-spread-property.js create mode 100644 deps/v8/test/message/class-spread-property.out create mode 100644 deps/v8/test/message/console.js create mode 100644 deps/v8/test/message/console.out create mode 100644 deps/v8/test/message/function-param-after-rest.js create mode 100644 deps/v8/test/message/function-param-after-rest.out create mode 100644 deps/v8/test/mjsunit/asm/asm-memory.js create mode 100644 deps/v8/test/mjsunit/asm/asm-stdlib.js create mode 100644 deps/v8/test/mjsunit/asm/call-annotation.js create mode 100644 deps/v8/test/mjsunit/asm/call-stdlib.js create mode 100644 deps/v8/test/mjsunit/asm/global-imports.js create mode 100644 deps/v8/test/mjsunit/asm/immutable.js create mode 100644 deps/v8/test/mjsunit/asm/regress-718745.js create mode 100644 deps/v8/test/mjsunit/asm/return-types.js create mode 100644 deps/v8/test/mjsunit/compiler/array-constructor.js create mode 100644 deps/v8/test/mjsunit/compiler/constructor-inlining-no-harmony-restrict-constructor-return.js create mode 100644 deps/v8/test/mjsunit/compiler/constructor-inlining.js create mode 100644 deps/v8/test/mjsunit/compiler/escape-analysis-16.js create mode 100644 deps/v8/test/mjsunit/compiler/escape-analysis-phi-type-2.js create mode 100644 deps/v8/test/mjsunit/compiler/escape-analysis-phi-type.js create mode 100644 deps/v8/test/mjsunit/compiler/object-getprototypeof.js create mode 100644 deps/v8/test/mjsunit/compiler/reflect-getprototypeof.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-715204.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-715651.js create mode 100644 deps/v8/test/mjsunit/es6/regress/regress-6322.js create mode 100644 deps/v8/test/mjsunit/es6/typedarray-construct-by-array-like-prototype-element-added.js create mode 100644 deps/v8/test/mjsunit/es6/typedarray-map.js create mode 100644 deps/v8/test/mjsunit/es8/constructor-returning-primitive.js create mode 100644 deps/v8/test/mjsunit/harmony/global-accessors-strict.js create mode 100644 deps/v8/test/mjsunit/keyed-store-generic.js create mode 100644 deps/v8/test/mjsunit/object-keys.js create mode 100644 deps/v8/test/mjsunit/parse-tasks.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6248.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6280.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6288.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6298.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6337.js create mode 100644 deps/v8/test/mjsunit/regress/regress-641091.js create mode 100644 deps/v8/test/mjsunit/regress/regress-707066.js create mode 100644 deps/v8/test/mjsunit/regress/regress-709782.js create mode 100644 deps/v8/test/mjsunit/regress/regress-711165.js create mode 100644 deps/v8/test/mjsunit/regress/regress-716044.js create mode 100644 deps/v8/test/mjsunit/regress/regress-718285.js create mode 100644 deps/v8/test/mjsunit/regress/regress-718891.js create mode 100644 deps/v8/test/mjsunit/regress/regress-719380.js create mode 100644 deps/v8/test/mjsunit/regress/regress-722978.js create mode 100644 deps/v8/test/mjsunit/regress/regress-725858.js create mode 100644 deps/v8/test/mjsunit/regress/regress-727218.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-707580.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-711166.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-712802.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-714696.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-714872.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-714971.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-714981.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-715151.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-715404.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-715455.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-715862.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-716520.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-716804.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-716912.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-718779.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-719479.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-721835.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-723132.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-723455.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-736451.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-736575.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-738763.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-740803.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-747979.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-748539.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-712569.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-710844.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-711203.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-715216-a.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-715216-b.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-717056.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-719175.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-722445.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-731351.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-734108.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-737069.js create mode 100644 deps/v8/test/mjsunit/skipping-inner-functions.js create mode 100644 deps/v8/test/mjsunit/type-profile/regress-707223.js create mode 100644 deps/v8/test/mjsunit/wasm/huge-memory.js create mode 100644 deps/v8/test/mjsunit/wasm/wasm-api-overloading.js create mode 100644 deps/v8/test/mkgrokdump/BUILD.gn create mode 100644 deps/v8/test/mkgrokdump/DEPS create mode 100644 deps/v8/test/mkgrokdump/README create mode 100644 deps/v8/test/mkgrokdump/mkgrokdump.cc create mode 100644 deps/v8/test/mkgrokdump/mkgrokdump.gyp create mode 100644 deps/v8/test/mkgrokdump/mkgrokdump.isolate create mode 100644 deps/v8/test/mkgrokdump/mkgrokdump.status create mode 100644 deps/v8/test/mkgrokdump/testcfg.py create mode 100644 deps/v8/test/test262/local-tests/test/language/module-code/comment-single-line-html-close-comment-before-function.js create mode 100644 deps/v8/test/test262/local-tests/test/language/module-code/comment-single-line-html-close-comment-newline-before-function.js rename deps/v8/test/unittests/{wasm => asmjs}/asm-types-unittest.cc (97%) rename deps/v8/test/unittests/{wasm => asmjs}/switch-logic-unittest.cc (100%) create mode 100644 deps/v8/test/unittests/heap/concurrent-marking-deque-unittest.cc create mode 100644 deps/v8/test/unittests/heap/item-parallel-job-unittest.cc create mode 100644 deps/v8/test/unittests/heap/workstealing-marking-deque-unittest.cc rename deps/v8/test/unittests/interpreter/{bytecode-pipeline-unittest.cc => bytecode-node-unittest.cc} (78%) create mode 100644 deps/v8/test/unittests/interpreter/bytecode-source-info-unittest.cc create mode 100644 deps/v8/test/unittests/parser/preparser-unittest.cc rename deps/v8/test/unittests/{compiler-dispatcher/compiler-dispatcher-helper.cc => test-helpers.cc} (96%) rename deps/v8/test/unittests/{compiler-dispatcher/compiler-dispatcher-helper.h => test-helpers.h} (87%) create mode 100644 deps/v8/test/unittests/wasm/streaming-decoder-unittest.cc create mode 100644 deps/v8/test/wasm-spec-tests/OWNERS create mode 100644 deps/v8/test/wasm-spec-tests/testcfg.py create mode 100644 deps/v8/test/wasm-spec-tests/tests.tar.gz.sha1 create mode 100644 deps/v8/test/wasm-spec-tests/wasm-spec-tests.gyp create mode 100644 deps/v8/test/wasm-spec-tests/wasm-spec-tests.isolate create mode 100644 deps/v8/test/wasm-spec-tests/wasm-spec-tests.status delete mode 100755 deps/v8/tools/get_byteorder.py create mode 100644 deps/v8/tools/link_clicker.extension/README.txt create mode 100644 deps/v8/tools/link_clicker.extension/background.js create mode 100644 deps/v8/tools/link_clicker.extension/content.js create mode 100644 deps/v8/tools/link_clicker.extension/icon.png create mode 100644 deps/v8/tools/link_clicker.extension/manifest.json create mode 100644 deps/v8/tools/link_clicker.extension/popup.html create mode 100644 deps/v8/tools/link_clicker.extension/popup.js delete mode 100644 deps/v8/tools/perf_tests/chromium_revision delete mode 100755 deps/v8/tools/v8-info.sh delete mode 100644 deps/v8/tools/v8heapconst.py.tmpl rename deps/v8/tools/{ => wasm}/update-wasm-fuzzers.sh (59%) create mode 100755 deps/v8/tools/wasm/update-wasm-spec-tests.sh diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index f85d0d30b18974..bcec3768f398dc 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -45,10 +45,10 @@ /src/inspector/build/closure-compiler /src/inspector/build/closure-compiler.tar.gz /test/benchmarks/data -/test/fuzzer/wasm -/test/fuzzer/wasm.tar.gz -/test/fuzzer/wasm_asmjs -/test/fuzzer/wasm_asmjs.tar.gz +/test/fuzzer/wasm_corpus +/test/fuzzer/wasm_corpus.tar.gz +/test/fuzzer/wasm_asmjs_corpus +/test/fuzzer/wasm_asmjs_corpus.tar.gz /test/mozilla/data /test/promises-aplus/promises-tests /test/promises-aplus/promises-tests.tar.gz @@ -57,6 +57,8 @@ /test/test262/data.tar /test/test262/harness /test/wasm-js +/test/wasm-spec-tests/tests +/test/wasm-spec-tests/tests.tar.gz /testing/gmock /testing/gtest/* !/testing/gtest/include diff --git a/deps/v8/.gn b/deps/v8/.gn index b3adcc74cd64b2..c80980ea092d05 100644 --- a/deps/v8/.gn +++ b/deps/v8/.gn @@ -21,7 +21,5 @@ check_targets = [] # These are the list of GN files that run exec_script. This whitelist exists # to force additional review for new uses of exec_script, which is strongly # discouraged except for gypi_to_gn calls. -exec_script_whitelist = build_dotfile_settings.exec_script_whitelist + [ - "//test/test262/BUILD.gn", - "//BUILD.gn", - ] +exec_script_whitelist = + build_dotfile_settings.exec_script_whitelist + [ "//test/test262/BUILD.gn" ] diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index 27882149a4d21e..07cf31914431e0 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -70,6 +70,7 @@ Hirofumi Mako Honggyu Kim Ioseb Dzmanashvili Isiah Meadows +Jaime Bernardo Jan de Mooij Jay Freeman James Pike diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index becf4177c19800..80d6f3413302c4 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -5,6 +5,7 @@ import("//build/config/android/config.gni") import("//build/config/arm.gni") import("//build/config/dcheck_always_on.gni") +import("//build/config/host_byteorder.gni") import("//build/config/mips.gni") import("//build/config/sanitizers/sanitizers.gni") @@ -69,14 +70,17 @@ declare_args() { # Sets -dOBJECT_PRINT. v8_enable_object_print = "" - # Sets -dTRACE_MAPS. + # Sets -dV8_TRACE_MAPS. v8_enable_trace_maps = "" # Sets -dV8_ENABLE_CHECKS. v8_enable_v8_checks = "" - # Builds the snapshot with --trace-ignition - v8_trace_ignition = false + # Sets -dV8_TRACE_IGNITION. + v8_enable_trace_ignition = false + + # Sets -dV8_CONCURRENT_MARKING + v8_enable_concurrent_marking = false # With post mortem support enabled, metadata is embedded into libv8 that # describes various parameters of the VM for use by debuggers. See @@ -110,19 +114,6 @@ declare_args() { v8_enable_gdbjit = ((v8_current_cpu == "x86" || v8_current_cpu == "x64" || v8_current_cpu == "x87") && (is_linux || is_mac)) || (v8_current_cpu == "ppc64" && is_linux) - - # Set v8_host_byteorder - v8_host_byteorder = "little" - - # ppc64 can be either BE or LE - if (host_cpu == "ppc64") { - v8_host_byteorder = - exec_script("//tools/get_byteorder.py", [], "trim string") - } - if (host_cpu == "ppc" || host_cpu == "s390" || host_cpu == "s390x" || - host_cpu == "mips" || host_cpu == "mips64") { - v8_host_byteorder = "big" - } } # Derived defaults. @@ -247,7 +238,10 @@ config("features") { defines += [ "VERIFY_PREDICTABLE" ] } if (v8_enable_trace_maps) { - defines += [ "TRACE_MAPS" ] + defines += [ "V8_TRACE_MAPS" ] + } + if (v8_enable_trace_ignition) { + defines += [ "V8_TRACE_IGNITION" ] } if (v8_enable_v8_checks) { defines += [ "V8_ENABLE_CHECKS" ] @@ -262,7 +256,7 @@ config("features") { defines += [ "V8_IMMINENT_DEPRECATION_WARNINGS" ] } if (v8_enable_i18n_support) { - defines += [ "V8_I18N_SUPPORT" ] + defines += [ "V8_INTL_SUPPORT" ] } if (v8_enable_handle_zapping) { defines += [ "ENABLE_HANDLE_ZAPPING" ] @@ -273,6 +267,9 @@ config("features") { if (v8_use_external_startup_data) { defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ] } + if (v8_enable_concurrent_marking) { + defines += [ "V8_CONCURRENT_MARKING" ] + } } config("toolchain") { @@ -386,7 +383,7 @@ config("toolchain") { if (v8_current_cpu == "s390x") { defines += [ "V8_TARGET_ARCH_S390X" ] } - if (v8_host_byteorder == "little") { + if (host_byteorder == "little") { defines += [ "V8_TARGET_ARCH_S390_LE_SIM" ] } else { cflags += [ "-march=z196" ] @@ -397,9 +394,9 @@ config("toolchain") { if (v8_current_cpu == "ppc64") { defines += [ "V8_TARGET_ARCH_PPC64" ] } - if (v8_host_byteorder == "little") { + if (host_byteorder == "little") { defines += [ "V8_TARGET_ARCH_PPC_LE" ] - } else if (v8_host_byteorder == "big") { + } else if (host_byteorder == "big") { defines += [ "V8_TARGET_ARCH_PPC_BE" ] if (current_os == "aix") { cflags += [ @@ -413,6 +410,7 @@ config("toolchain") { } } } + if (v8_current_cpu == "x86") { defines += [ "V8_TARGET_ARCH_IA32" ] if (is_win) { @@ -487,6 +485,15 @@ config("toolchain") { "/wd4800", # Forcing value to bool. ] } + + if (!is_clang && !is_win) { + cflags += [ + # Disable gcc warnings for optimizations based on the assumption that + # signed overflow does not occur. Generates false positives (see + # http://crbug.com/v8/6341). + "-Wno-strict-overflow", + ] + } } ############################################################################### @@ -509,7 +516,7 @@ action("js2c") { "src/js/macros.py", "src/messages.h", "src/js/prologue.js", - "src/js/runtime.js", + "src/js/max-min.js", "src/js/v8natives.js", "src/js/array.js", "src/js/string.js", @@ -522,7 +529,6 @@ action("js2c") { "src/js/templates.js", "src/js/spread.js", "src/js/proxy.js", - "src/js/harmony-string-padding.js", "src/debug/mirrors.js", "src/debug/debug.js", "src/debug/liveedit.js", @@ -533,7 +539,7 @@ action("js2c") { ] if (v8_enable_i18n_support) { - sources += [ "src/js/i18n.js" ] + sources += [ "src/js/intl.js" ] } args = [ @@ -695,6 +701,8 @@ action("postmortem-metadata") { sources = [ "src/objects.h", "src/objects-inl.h", + "src/objects/map.h", + "src/objects/map-inl.h", ] outputs = [ @@ -742,10 +750,6 @@ action("run_mksnapshot") { ] } - if (v8_trace_ignition) { - args += [ "--trace-ignition" ] - } - if (v8_use_external_startup_data) { outputs += [ "$root_out_dir/snapshot_blob.bin" ] args += [ @@ -885,7 +889,6 @@ v8_source_set("v8_builtins_generators") { visibility = [ ":*", "test/cctest:*", - "test/unittests:*", ] deps = [ @@ -904,6 +907,7 @@ v8_source_set("v8_builtins_generators") { "src/builtins/builtins-async-iterator-gen.cc", "src/builtins/builtins-boolean-gen.cc", "src/builtins/builtins-call-gen.cc", + "src/builtins/builtins-console-gen.cc", "src/builtins/builtins-constructor-gen.cc", "src/builtins/builtins-constructor-gen.h", "src/builtins/builtins-constructor.h", @@ -918,6 +922,7 @@ v8_source_set("v8_builtins_generators") { "src/builtins/builtins-ic-gen.cc", "src/builtins/builtins-internal-gen.cc", "src/builtins/builtins-interpreter-gen.cc", + "src/builtins/builtins-intl-gen.cc", "src/builtins/builtins-math-gen.cc", "src/builtins/builtins-number-gen.cc", "src/builtins/builtins-object-gen.cc", @@ -927,6 +932,7 @@ v8_source_set("v8_builtins_generators") { "src/builtins/builtins-regexp-gen.h", "src/builtins/builtins-sharedarraybuffer-gen.cc", "src/builtins/builtins-string-gen.cc", + "src/builtins/builtins-string-gen.h", "src/builtins/builtins-symbol-gen.cc", "src/builtins/builtins-typedarray-gen.cc", "src/builtins/builtins-utils-gen.h", @@ -995,6 +1001,10 @@ v8_source_set("v8_builtins_generators") { ] } + if (!v8_enable_i18n_support) { + sources -= [ "src/builtins/builtins-intl-gen.cc" ] + } + configs = [ ":internal_config" ] } @@ -1019,11 +1029,27 @@ v8_header_set("v8_version") { configs = [ ":internal_config" ] sources = [ + "include/v8-value-serializer-version.h", "include/v8-version-string.h", "include/v8-version.h", ] } +# This is split out to be a non-code containing target that the Chromium browser +# can depend upon to get basic v8 types. +v8_header_set("v8_headers") { + configs = [ ":internal_config" ] + + sources = [ + "include/v8.h", + "include/v8config.h", + ] + + deps = [ + ":v8_version", + ] +} + v8_source_set("v8_base") { visibility = [ ":*" ] # Only targets in this file can depend on this. @@ -1064,12 +1090,8 @@ v8_source_set("v8_base") { "src/asmjs/asm-parser.h", "src/asmjs/asm-scanner.cc", "src/asmjs/asm-scanner.h", - "src/asmjs/asm-typer.cc", - "src/asmjs/asm-typer.h", "src/asmjs/asm-types.cc", "src/asmjs/asm-types.h", - "src/asmjs/asm-wasm-builder.cc", - "src/asmjs/asm-wasm-builder.h", "src/asmjs/switch-logic.cc", "src/asmjs/switch-logic.h", "src/assembler-inl.h", @@ -1123,6 +1145,7 @@ v8_source_set("v8_base") { "src/builtins/builtins-boolean.cc", "src/builtins/builtins-call.cc", "src/builtins/builtins-callsite.cc", + "src/builtins/builtins-console.cc", "src/builtins/builtins-constructor.h", "src/builtins/builtins-dataview.cc", "src/builtins/builtins-date.cc", @@ -1558,6 +1581,7 @@ v8_source_set("v8_base") { "src/heap/array-buffer-tracker.h", "src/heap/code-stats.cc", "src/heap/code-stats.h", + "src/heap/concurrent-marking-deque.h", "src/heap/concurrent-marking.cc", "src/heap/concurrent-marking.h", "src/heap/embedder-tracing.cc", @@ -1574,6 +1598,7 @@ v8_source_set("v8_base") { "src/heap/incremental-marking-job.h", "src/heap/incremental-marking.cc", "src/heap/incremental-marking.h", + "src/heap/item-parallel-job.h", "src/heap/mark-compact-inl.h", "src/heap/mark-compact.cc", "src/heap/mark-compact.h", @@ -1592,14 +1617,15 @@ v8_source_set("v8_base") { "src/heap/scavenger-inl.h", "src/heap/scavenger.cc", "src/heap/scavenger.h", + "src/heap/sequential-marking-deque.cc", + "src/heap/sequential-marking-deque.h", "src/heap/slot-set.h", "src/heap/spaces-inl.h", "src/heap/spaces.cc", "src/heap/spaces.h", "src/heap/store-buffer.cc", "src/heap/store-buffer.h", - "src/i18n.cc", - "src/i18n.h", + "src/heap/workstealing-marking-deque.h", "src/ic/access-compiler-data.h", "src/ic/access-compiler.cc", "src/ic/access-compiler.h", @@ -1640,17 +1666,20 @@ v8_source_set("v8_base") { "src/interpreter/bytecode-flags.h", "src/interpreter/bytecode-generator.cc", "src/interpreter/bytecode-generator.h", + "src/interpreter/bytecode-jump-table.h", "src/interpreter/bytecode-label.cc", "src/interpreter/bytecode-label.h", + "src/interpreter/bytecode-node.cc", + "src/interpreter/bytecode-node.h", "src/interpreter/bytecode-operands.cc", "src/interpreter/bytecode-operands.h", - "src/interpreter/bytecode-pipeline.cc", - "src/interpreter/bytecode-pipeline.h", "src/interpreter/bytecode-register-allocator.h", "src/interpreter/bytecode-register-optimizer.cc", "src/interpreter/bytecode-register-optimizer.h", "src/interpreter/bytecode-register.cc", "src/interpreter/bytecode-register.h", + "src/interpreter/bytecode-source-info.cc", + "src/interpreter/bytecode-source-info.h", "src/interpreter/bytecode-traits.h", "src/interpreter/bytecodes.cc", "src/interpreter/bytecodes.h", @@ -1665,6 +1694,8 @@ v8_source_set("v8_base") { "src/interpreter/interpreter-intrinsics.h", "src/interpreter/interpreter.cc", "src/interpreter/interpreter.h", + "src/intl.cc", + "src/intl.h", "src/isolate-inl.h", "src/isolate.cc", "src/isolate.h", @@ -1717,10 +1748,13 @@ v8_source_set("v8_base") { "src/objects/dictionary.h", "src/objects/frame-array-inl.h", "src/objects/frame-array.h", - "src/objects/hash-table-inl.h", "src/objects/hash-table.h", + "src/objects/intl-objects.cc", + "src/objects/intl-objects.h", "src/objects/literal-objects.cc", "src/objects/literal-objects.h", + "src/objects/map-inl.h", + "src/objects/map.h", "src/objects/module-info.h", "src/objects/object-macros-undef.h", "src/objects/object-macros.h", @@ -1833,9 +1867,9 @@ v8_source_set("v8_base") { "src/runtime/runtime-function.cc", "src/runtime/runtime-futex.cc", "src/runtime/runtime-generator.cc", - "src/runtime/runtime-i18n.cc", "src/runtime/runtime-internal.cc", "src/runtime/runtime-interpreter.cc", + "src/runtime/runtime-intl.cc", "src/runtime/runtime-literals.cc", "src/runtime/runtime-liveedit.cc", "src/runtime/runtime-maths.cc", @@ -1891,6 +1925,8 @@ v8_source_set("v8_base") { "src/string-builder.h", "src/string-case.cc", "src/string-case.h", + "src/string-hasher-inl.h", + "src/string-hasher.h", "src/string-search.h", "src/string-stream.cc", "src/string-stream.h", @@ -1935,6 +1971,8 @@ v8_source_set("v8_base") { "src/vector.h", "src/version.cc", "src/version.h", + "src/visitors.cc", + "src/visitors.h", "src/vm-state-inl.h", "src/vm-state.h", "src/wasm/decoder.h", @@ -1942,10 +1980,14 @@ v8_source_set("v8_base") { "src/wasm/function-body-decoder.cc", "src/wasm/function-body-decoder.h", "src/wasm/leb-helper.h", + "src/wasm/local-decl-encoder.cc", + "src/wasm/local-decl-encoder.h", "src/wasm/module-decoder.cc", "src/wasm/module-decoder.h", "src/wasm/signature-map.cc", "src/wasm/signature-map.h", + "src/wasm/streaming-decoder.cc", + "src/wasm/streaming-decoder.h", "src/wasm/wasm-code-specialization.cc", "src/wasm/wasm-code-specialization.h", "src/wasm/wasm-debug.cc", @@ -1956,7 +1998,6 @@ v8_source_set("v8_base") { "src/wasm/wasm-js.cc", "src/wasm/wasm-js.h", "src/wasm/wasm-limits.h", - "src/wasm/wasm-macro-gen.h", "src/wasm/wasm-module-builder.cc", "src/wasm/wasm-module-builder.h", "src/wasm/wasm-module.cc", @@ -2363,21 +2404,27 @@ v8_source_set("v8_base") { defines = [] deps = [ + ":v8_headers", ":v8_libbase", ":v8_libsampler", - ":v8_version", "src/inspector:inspector", ] if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] + public_deps = [ + "//third_party/icu", + ] if (is_win) { deps += [ "//third_party/icu:icudata" ] } } else { sources -= [ - "src/i18n.cc", - "src/i18n.h", + "src/builtins/builtins-intl.cc", + "src/intl.cc", + "src/intl.h", + "src/objects/intl-objects.cc", + "src/objects/intl-objects.h", + "src/runtime/runtime-intl.cc", ] } @@ -2406,6 +2453,7 @@ v8_component("v8_libbase") { "src/base/debug/stack_trace.h", "src/base/division-by-constant.cc", "src/base/division-by-constant.h", + "src/base/export-template.h", "src/base/file-utils.cc", "src/base/file-utils.h", "src/base/flags.h", @@ -2469,6 +2517,16 @@ v8_component("v8_libbase") { "src/base/platform/platform-linux.cc", ] + libs = [ + "dl", + "rt", + ] + } else if (current_os == "aix") { + sources += [ + "src/base/debug/stack_trace_posix.cc", + "src/base/platform/platform-aix.cc", + ] + libs = [ "dl", "rt", @@ -2589,10 +2647,6 @@ v8_source_set("fuzzer_support") { ":v8_libbase", ":v8_libplatform", ] - - if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] - } } ############################################################################### @@ -2615,7 +2669,7 @@ if (current_toolchain == v8_snapshot_toolchain) { ":v8_libbase", ":v8_libplatform", ":v8_nosnapshot", - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] } @@ -2668,6 +2722,12 @@ group("v8_clusterfuzz") { } } +group("v8_archive") { + deps = [ + ":d8", + ] +} + group("v8_fuzzers") { testonly = true deps = [ @@ -2677,6 +2737,7 @@ group("v8_fuzzers") { ":v8_simple_wasm_asmjs_fuzzer", ":v8_simple_wasm_call_fuzzer", ":v8_simple_wasm_code_fuzzer", + ":v8_simple_wasm_compile_fuzzer", ":v8_simple_wasm_data_section_fuzzer", ":v8_simple_wasm_function_sigs_section_fuzzer", ":v8_simple_wasm_fuzzer", @@ -2707,6 +2768,31 @@ if (is_component_build) { public_configs = [ ":external_config" ] } + + v8_component("v8_for_testing") { + testonly = true + + sources = [ + "src/v8dll-main.cc", + ] + + deps = [ + ":v8_dump_build_config", + ] + + public_deps = [ + ":v8_base", + ":v8_maybe_snapshot", + ] + + if (v8_use_snapshot) { + public_deps += [ ":v8_builtins_generators" ] + } + + configs = [ ":internal_config" ] + + public_configs = [ ":external_config" ] + } } else { group("v8") { deps = [ @@ -2720,11 +2806,32 @@ if (is_component_build) { public_configs = [ ":external_config" ] } + + group("v8_for_testing") { + testonly = true + + deps = [ + ":v8_dump_build_config", + ] + + public_deps = [ + ":v8_base", + ":v8_maybe_snapshot", + ] + + if (v8_use_snapshot) { + public_deps += [ ":v8_builtins_generators" ] + } + + public_configs = [ ":external_config" ] + } } v8_executable("d8") { sources = [ "$target_gen_dir/d8-js.cc", + "src/d8-console.cc", + "src/d8-console.h", "src/d8.cc", "src/d8.h", ] @@ -2741,7 +2848,7 @@ v8_executable("d8") { ":v8", ":v8_libbase", ":v8_libplatform", - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] @@ -2751,10 +2858,6 @@ v8_executable("d8") { sources += [ "src/d8-windows.cc" ] } - if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] - } - if (v8_correctness_fuzzer) { deps += [ "tools/foozzie:v8_correctness_fuzzer_resources" ] } @@ -2790,13 +2893,9 @@ v8_executable("v8_hello_world") { ":v8", ":v8_libbase", ":v8_libplatform", - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] - - if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] - } } v8_executable("v8_sample_process") { @@ -2815,13 +2914,9 @@ v8_executable("v8_sample_process") { ":v8", ":v8_libbase", ":v8_libplatform", - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] - - if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] - } } v8_executable("v8_parser_shell") { @@ -2839,13 +2934,9 @@ v8_executable("v8_parser_shell") { ":v8", ":v8_libbase", ":v8_libplatform", - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] - - if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] - } } if (want_v8_shell) { @@ -2865,13 +2956,9 @@ if (want_v8_shell) { ":v8", ":v8_libbase", ":v8_libplatform", - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] - - if (v8_enable_i18n_support) { - deps += [ "//third_party/icu" ] - } } } @@ -2881,7 +2968,7 @@ template("v8_fuzzer") { v8_executable("v8_simple_" + name) { deps = [ ":" + name, - "//build/config/sanitizers:deps", + "//build/config:exe_and_shlib_deps", "//build/win:default_exe_manifest", ] @@ -2966,6 +3053,7 @@ v8_source_set("wasm_fuzzer") { deps = [ ":fuzzer_support", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -2985,6 +3073,7 @@ v8_source_set("wasm_asmjs_fuzzer") { deps = [ ":fuzzer_support", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3005,6 +3094,7 @@ v8_source_set("wasm_code_fuzzer") { deps = [ ":fuzzer_support", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3025,6 +3115,7 @@ v8_source_set("wasm_call_fuzzer") { deps = [ ":fuzzer_support", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3037,10 +3128,10 @@ v8_source_set("wasm_call_fuzzer") { v8_fuzzer("wasm_call_fuzzer") { } -v8_source_set("lib_wasm_section_fuzzer") { +v8_source_set("lib_wasm_fuzzer_common") { sources = [ - "test/fuzzer/wasm-section-fuzzers.cc", - "test/fuzzer/wasm-section-fuzzers.h", + "test/fuzzer/wasm-fuzzer-common.cc", + "test/fuzzer/wasm-fuzzer-common.h", ] configs = [ @@ -3056,7 +3147,7 @@ v8_source_set("wasm_types_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3076,7 +3167,7 @@ v8_source_set("wasm_names_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3096,7 +3187,7 @@ v8_source_set("wasm_globals_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3116,7 +3207,7 @@ v8_source_set("wasm_imports_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3136,7 +3227,7 @@ v8_source_set("wasm_function_sigs_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3156,7 +3247,7 @@ v8_source_set("wasm_memory_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3176,7 +3267,7 @@ v8_source_set("wasm_data_section_fuzzer") { deps = [ ":fuzzer_support", - ":lib_wasm_section_fuzzer", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] @@ -3197,6 +3288,7 @@ v8_source_set("wasm_compile_fuzzer") { deps = [ ":fuzzer_support", + ":lib_wasm_fuzzer_common", ":wasm_module_runner", ] diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index 515e5b830e51b5..7ee1b37e798c5c 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,1493 @@ +2017-05-20: Version 6.0.286 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.285 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.284 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.283 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.282 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.281 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.280 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.279 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.278 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.277 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.276 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.275 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.274 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.273 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.272 + + Performance and stability improvements on all platforms. + + +2017-05-19: Version 6.0.271 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.270 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.269 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.268 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.267 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.266 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.265 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.264 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.263 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.262 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.261 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.260 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.259 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.258 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.257 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.256 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.255 + + Performance and stability improvements on all platforms. + + +2017-05-18: Version 6.0.254 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.253 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.252 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.251 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.250 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.249 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.248 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.247 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.246 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.245 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.244 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.243 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.242 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.241 + + Performance and stability improvements on all platforms. + + +2017-05-17: Version 6.0.240 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.239 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.238 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.237 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.236 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.235 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.234 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.233 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.232 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.231 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.230 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.229 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.228 + + Performance and stability improvements on all platforms. + + +2017-05-16: Version 6.0.227 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.226 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.225 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.224 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.223 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.222 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.221 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.220 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.219 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.218 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.217 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.216 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.215 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.214 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.213 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.212 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.211 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.210 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.209 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.208 + + Performance and stability improvements on all platforms. + + +2017-05-15: Version 6.0.207 + + Performance and stability improvements on all platforms. + + +2017-05-14: Version 6.0.206 + + Performance and stability improvements on all platforms. + + +2017-05-13: Version 6.0.205 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.204 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.203 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.202 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.201 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.200 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.199 + + Performance and stability improvements on all platforms. + + +2017-05-12: Version 6.0.198 + + Performance and stability improvements on all platforms. + + +2017-05-11: Version 6.0.197 + + Performance and stability improvements on all platforms. + + +2017-05-11: Version 6.0.196 + + Performance and stability improvements on all platforms. + + +2017-05-11: Version 6.0.195 + + Performance and stability improvements on all platforms. + + +2017-05-11: Version 6.0.194 + + Performance and stability improvements on all platforms. + + +2017-05-11: Version 6.0.193 + + Performance and stability improvements on all platforms. + + +2017-05-10: Version 6.0.192 + + Performance and stability improvements on all platforms. + + +2017-05-10: Version 6.0.191 + + Performance and stability improvements on all platforms. + + +2017-05-10: Version 6.0.190 + + Performance and stability improvements on all platforms. + + +2017-05-10: Version 6.0.189 + + Performance and stability improvements on all platforms. + + +2017-05-10: Version 6.0.188 + + Performance and stability improvements on all platforms. + + +2017-05-09: Version 6.0.187 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.186 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.185 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.184 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.183 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.182 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.181 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.180 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.179 + + Performance and stability improvements on all platforms. + + +2017-05-08: Version 6.0.178 + + Performance and stability improvements on all platforms. + + +2017-05-06: Version 6.0.177 + + Performance and stability improvements on all platforms. + + +2017-05-06: Version 6.0.176 + + Performance and stability improvements on all platforms. + + +2017-05-06: Version 6.0.175 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.174 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.173 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.172 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.171 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.170 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.169 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.168 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.167 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.166 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.165 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.164 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.163 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.162 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.161 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.160 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.159 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.158 + + Performance and stability improvements on all platforms. + + +2017-05-05: Version 6.0.157 + + Performance and stability improvements on all platforms. + + +2017-05-04: Version 6.0.156 + + Performance and stability improvements on all platforms. + + +2017-05-04: Version 6.0.155 + + Performance and stability improvements on all platforms. + + +2017-05-04: Version 6.0.154 + + Performance and stability improvements on all platforms. + + +2017-05-04: Version 6.0.153 + + Performance and stability improvements on all platforms. + + +2017-05-04: Version 6.0.152 + + Performance and stability improvements on all platforms. + + +2017-05-04: Version 6.0.151 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.150 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.149 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.148 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.147 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.146 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.145 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.144 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.143 + + Performance and stability improvements on all platforms. + + +2017-05-03: Version 6.0.142 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.141 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.140 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.139 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.138 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.137 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.136 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.135 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.134 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.133 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.132 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.131 + + Performance and stability improvements on all platforms. + + +2017-05-02: Version 6.0.130 + + Performance and stability improvements on all platforms. + + +2017-05-01: Version 6.0.129 + + Performance and stability improvements on all platforms. + + +2017-05-01: Version 6.0.128 + + Performance and stability improvements on all platforms. + + +2017-05-01: Version 6.0.127 + + Performance and stability improvements on all platforms. + + +2017-05-01: Version 6.0.126 + + Performance and stability improvements on all platforms. + + +2017-04-30: Version 6.0.125 + + Performance and stability improvements on all platforms. + + +2017-04-30: Version 6.0.124 + + Performance and stability improvements on all platforms. + + +2017-04-29: Version 6.0.123 + + Performance and stability improvements on all platforms. + + +2017-04-29: Version 6.0.122 + + Performance and stability improvements on all platforms. + + +2017-04-29: Version 6.0.121 + + Performance and stability improvements on all platforms. + + +2017-04-29: Version 6.0.120 + + Performance and stability improvements on all platforms. + + +2017-04-29: Version 6.0.119 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.118 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.117 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.116 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.115 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.114 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.113 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.112 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.111 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.110 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.109 + + Performance and stability improvements on all platforms. + + +2017-04-28: Version 6.0.108 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.107 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.106 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.105 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.104 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.103 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.102 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.101 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.100 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.99 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.98 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.97 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.96 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.95 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.94 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.93 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.92 + + Performance and stability improvements on all platforms. + + +2017-04-27: Version 6.0.91 + + Performance and stability improvements on all platforms. + + +2017-04-26: Version 6.0.90 + + Performance and stability improvements on all platforms. + + +2017-04-26: Version 6.0.89 + + Performance and stability improvements on all platforms. + + +2017-04-26: Version 6.0.88 + + Performance and stability improvements on all platforms. + + +2017-04-26: Version 6.0.87 + + Performance and stability improvements on all platforms. + + +2017-04-26: Version 6.0.86 + + Performance and stability improvements on all platforms. + + +2017-04-25: Version 6.0.85 + + Performance and stability improvements on all platforms. + + +2017-04-25: Version 6.0.84 + + Performance and stability improvements on all platforms. + + +2017-04-25: Version 6.0.83 + + Performance and stability improvements on all platforms. + + +2017-04-25: Version 6.0.82 + + Performance and stability improvements on all platforms. + + +2017-04-25: Version 6.0.81 + + Performance and stability improvements on all platforms. + + +2017-04-25: Version 6.0.80 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.79 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.78 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.77 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.76 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.75 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.74 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.73 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.72 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.71 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.70 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.69 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.68 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.67 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.66 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.65 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.64 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.63 + + Performance and stability improvements on all platforms. + + +2017-04-24: Version 6.0.62 + + Performance and stability improvements on all platforms. + + +2017-04-22: Version 6.0.61 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.60 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.59 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.58 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.57 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.56 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.55 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.54 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.53 + + Performance and stability improvements on all platforms. + + +2017-04-21: Version 6.0.52 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.51 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.50 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.49 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.48 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.47 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.46 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.45 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.44 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.43 + + Performance and stability improvements on all platforms. + + +2017-04-20: Version 6.0.42 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.41 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.40 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.39 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.38 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.37 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.36 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.35 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.34 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.33 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.32 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.31 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.30 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.29 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.28 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.27 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.26 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.25 + + Performance and stability improvements on all platforms. + + +2017-04-19: Version 6.0.24 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.23 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.22 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.21 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.20 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.19 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.18 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.17 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.16 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.15 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.14 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.13 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.12 + + Performance and stability improvements on all platforms. + + +2017-04-18: Version 6.0.11 + + Performance and stability improvements on all platforms. + + +2017-04-17: Version 6.0.10 + + Performance and stability improvements on all platforms. + + +2017-04-17: Version 6.0.9 + + Performance and stability improvements on all platforms. + + +2017-04-17: Version 6.0.8 + + Performance and stability improvements on all platforms. + + +2017-04-17: Version 6.0.7 + + Performance and stability improvements on all platforms. + + +2017-04-17: Version 6.0.6 + + Performance and stability improvements on all platforms. + + +2017-04-17: Version 6.0.5 + + Performance and stability improvements on all platforms. + + +2017-04-16: Version 6.0.4 + + Performance and stability improvements on all platforms. + + +2017-04-15: Version 6.0.3 + + Performance and stability improvements on all platforms. + + +2017-04-15: Version 6.0.2 + + Performance and stability improvements on all platforms. + + +2017-04-14: Version 6.0.1 + + Performance and stability improvements on all platforms. + + +2017-04-13: Version 5.9.223 + + Performance and stability improvements on all platforms. + + +2017-04-13: Version 5.9.222 + + Performance and stability improvements on all platforms. + + +2017-04-13: Version 5.9.221 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.220 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.219 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.218 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.217 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.216 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.215 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.214 + + Performance and stability improvements on all platforms. + + +2017-04-12: Version 5.9.213 + + Performance and stability improvements on all platforms. + + +2017-04-11: Version 5.9.212 + + Performance and stability improvements on all platforms. + + 2017-04-11: Version 5.9.211 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index aeeb0e5911d716..1a55e663c6b17a 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -8,23 +8,23 @@ vars = { deps = { "v8/build": - Var("chromium_url") + "/chromium/src/build.git" + "@" + "94c06fe70f3f6429c59e3ec0f6acd4f6710050b2", + Var("chromium_url") + "/chromium/src/build.git" + "@" + "1caf3a69f3b0379c9fef2493aa1b3cda96e17d7b", "v8/tools/gyp": - Var("chromium_url") + "/external/gyp.git" + "@" + "e7079f0e0e14108ab0dba58728ff219637458563", + Var("chromium_url") + "/external/gyp.git" + "@" + "eb296f67da078ec01f5e3a9ea9cdc6d26d680161", "v8/third_party/icu": - Var("chromium_url") + "/chromium/deps/icu.git" + "@" + "450be73c9ee8ae29d43d4fdc82febb2a5f62bfb5", + Var("chromium_url") + "/chromium/deps/icu.git" + "@" + "c844075aa0f1758d04f9192825f1b1e7e607992e", "v8/third_party/instrumented_libraries": - Var("chromium_url") + "/chromium/src/third_party/instrumented_libraries.git" + "@" + "05d5695a73e78b9cae55b8579fd8bf22b85eb283", + Var("chromium_url") + "/chromium/src/third_party/instrumented_libraries.git" + "@" + "644afd349826cb68204226a16c38bde13abe9c3c", "v8/buildtools": - Var("chromium_url") + "/chromium/buildtools.git" + "@" + "d3074448541662f242bcee623049c13a231b5648", + Var("chromium_url") + "/chromium/buildtools.git" + "@" + "98f00fa10dbad2cdbb2e297a66c3d6d5bc3994f3", "v8/base/trace_event/common": - Var("chromium_url") + "/chromium/src/base/trace_event/common.git" + "@" + "06294c8a4a6f744ef284cd63cfe54dbf61eea290", + Var("chromium_url") + "/chromium/src/base/trace_event/common.git" + "@" + "39a3450531fc73432e963db8668695d2e8f13053", "v8/third_party/jinja2": Var("chromium_url") + "/chromium/src/third_party/jinja2.git" + "@" + "d34383206fa42d52faa10bb9931d6d538f3a57e0", "v8/third_party/markupsafe": Var("chromium_url") + "/chromium/src/third_party/markupsafe.git" + "@" + "8f45f5cfa0009d2a70589bcda0349b8cb2b72783", "v8/tools/swarming_client": - Var('chromium_url') + '/external/swarming.client.git' + '@' + "11e31afa5d330756ff87aa12064bb5d032896cb5", + Var('chromium_url') + '/external/swarming.client.git' + '@' + "a941a089ff1000403078b74cb628eb430f07d271", "v8/testing/gtest": Var("chromium_url") + "/external/github.com/google/googletest.git" + "@" + "6f8a66431cb592dad629028a50b3dd418a408c87", "v8/testing/gmock": @@ -38,7 +38,7 @@ deps = { "v8/test/test262/harness": Var("chromium_url") + "/external/github.com/test262-utils/test262-harness-py.git" + "@" + "0f2acdd882c84cff43b9d60df7574a1901e2cdcd", "v8/tools/clang": - Var("chromium_url") + "/chromium/src/tools/clang.git" + "@" + "49df471350a60efaec6951f321dd65475496ba17", + Var("chromium_url") + "/chromium/src/tools/clang.git" + "@" + "05f306039aa5029fa88768690e5c512097419f9d", "v8/test/wasm-js": Var("chromium_url") + "/external/github.com/WebAssembly/spec.git" + "@" + "07fd6430f879d36928d179a62d9bdeed82286065", } @@ -46,9 +46,9 @@ deps = { deps_os = { "android": { "v8/third_party/android_tools": - Var("chromium_url") + "/android_tools.git" + "@" + "b65c4776dac2cf1b80e969b3b2d4e081b9c84f29", + Var("chromium_url") + "/android_tools.git" + "@" + "cb6bc21107001e2f2eeee2707b482b2b755baf51", "v8/third_party/catapult": - Var('chromium_url') + "/external/github.com/catapult-project/catapult.git" + "@" + "9a55abab029cb9ae94f5160ded11b09a4638a955", + Var('chromium_url') + "/external/github.com/catapult-project/catapult.git" + "@" + "08a6e0ac161db7309d8f9cad0ccd38e0b1fd41e0", }, } @@ -202,25 +202,14 @@ hooks = [ ], }, { - "name": "wasm_fuzzer", + "name": "wasm_spec_tests", "pattern": ".", "action": [ "download_from_google_storage", "--no_resume", "--no_auth", "-u", - "--bucket", "v8-wasm-fuzzer", - "-s", "v8/test/fuzzer/wasm.tar.gz.sha1", - ], - }, - { - "name": "wasm_asmjs_fuzzer", - "pattern": ".", - "action": [ "download_from_google_storage", - "--no_resume", - "--no_auth", - "-u", - "--bucket", "v8-wasm-asmjs-fuzzer", - "-s", "v8/test/fuzzer/wasm_asmjs.tar.gz.sha1", + "--bucket", "v8-wasm-spec-tests", + "-s", "v8/test/wasm-spec-tests/tests.tar.gz.sha1", ], }, { diff --git a/deps/v8/Makefile b/deps/v8/Makefile index 299d4aa09c97ac..ed5b3a7fabc325 100644 --- a/deps/v8/Makefile +++ b/deps/v8/Makefile @@ -240,7 +240,6 @@ ifdef android_ndk_root endif # ----------------- available targets: -------------------- -# - "grokdump": rebuilds heap constants lists used by grokdump # - any arch listed in ARCHES (see below) # - any mode listed in MODES # - every combination ., e.g. "ia32.release" @@ -467,12 +466,6 @@ $(ENVFILE).new: $(eval CXX_TARGET_ARCH:=$(subst x86_64,x64,$(CXX_TARGET_ARCH))) @mkdir -p $(OUTDIR); echo "GYPFLAGS=$(GYPFLAGS) -Dtarget_arch=$(CXX_TARGET_ARCH)" > $(ENVFILE).new; -# Heap constants for grokdump. -DUMP_FILE = tools/v8heapconst.py -grokdump: ia32.release - @cat $(DUMP_FILE).tmpl > $(DUMP_FILE) - @$(OUTDIR)/ia32.release/d8 --dump-heap-constants >> $(DUMP_FILE) - # Support for the GNU GLOBAL Source Code Tag System. gtags.files: $(GYPFILES) $(ENVFILE) @find include src test -name '*.h' -o -name '*.cc' -o -name '*.c' > $@ diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index 6aa94a01b37e8b..7d7faec69614be 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -43,6 +43,12 @@ ) +# Regular expression that matches code which should not be run through cpplint. +_NO_LINT_PATHS = ( + r'src[\\\/]base[\\\/]export-template\.h', +) + + # Regular expression that matches code only used for test binaries # (best effort). _TEST_CODE_EXCLUDED_PATHS = ( @@ -70,9 +76,15 @@ def _V8PresubmitChecks(input_api, output_api): from presubmit import SourceProcessor from presubmit import StatusFilesProcessor + def FilterFile(affected_file): + return input_api.FilterSourceFile( + affected_file, + white_list=None, + black_list=_NO_LINT_PATHS) + results = [] if not CppLintProcessor().RunOnFiles( - input_api.AffectedFiles(include_deletes=False)): + input_api.AffectedFiles(file_filter=FilterFile, include_deletes=False)): results.append(output_api.PresubmitError("C++ lint check failed")) if not SourceProcessor().RunOnFiles( input_api.AffectedFiles(include_deletes=False)): diff --git a/deps/v8/base/trace_event/common/trace_event_common.h b/deps/v8/base/trace_event/common/trace_event_common.h index e87665b8cdb12b..76d3039250ed89 100644 --- a/deps/v8/base/trace_event/common/trace_event_common.h +++ b/deps/v8/base/trace_event/common/trace_event_common.h @@ -258,6 +258,12 @@ TRACE_EVENT_PHASE_INSTANT, category_group, name, timestamp, \ TRACE_EVENT_FLAG_NONE | scope) +#define TRACE_EVENT_INSTANT_WITH_TIMESTAMP1(category_group, name, scope, \ + timestamp, arg_name, arg_val) \ + INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP( \ + TRACE_EVENT_PHASE_INSTANT, category_group, name, timestamp, \ + TRACE_EVENT_FLAG_NONE | scope, arg_name, arg_val) + // Records a single BEGIN event called "name" immediately, with 0, 1 or 2 // associated arguments. If the category is not enabled, then this // does nothing. diff --git a/deps/v8/codereview.settings b/deps/v8/codereview.settings index 532e4b4d7b0c07..bff4e38ba51885 100644 --- a/deps/v8/codereview.settings +++ b/deps/v8/codereview.settings @@ -1,8 +1,6 @@ +PROJECT: v8 +GERRIT_HOST: True CODE_REVIEW_SERVER: https://codereview.chromium.org CC_LIST: v8-reviews@googlegroups.com VIEW_VC: https://chromium.googlesource.com/v8/v8/+/ STATUS: http://v8-status.appspot.com/status -TRY_ON_UPLOAD: False -TRYSERVER_SVN_URL: svn://svn.chromium.org/chrome-try-v8 -PROJECT: v8 -PENDING_REF_PREFIX: refs/pending/ diff --git a/deps/v8/gypfiles/all.gyp b/deps/v8/gypfiles/all.gyp index bbad66741c7e26..bc9d9650eb5958 100644 --- a/deps/v8/gypfiles/all.gyp +++ b/deps/v8/gypfiles/all.gyp @@ -10,6 +10,7 @@ 'dependencies': [ '../src/d8.gyp:d8', '../test/inspector/inspector.gyp:*', + '../test/mkgrokdump/mkgrokdump.gyp:*', ], 'conditions': [ ['component!="shared_library"', { diff --git a/deps/v8/gypfiles/coverage_wrapper.py b/deps/v8/gypfiles/coverage_wrapper.py index 5b365d8e63d911..d5fdee43cfb761 100755 --- a/deps/v8/gypfiles/coverage_wrapper.py +++ b/deps/v8/gypfiles/coverage_wrapper.py @@ -31,6 +31,8 @@ def remove_if_exists(string_list, item): remove_if_exists(args, '-fsanitize-coverage=func') remove_if_exists(args, '-fsanitize-coverage=bb') remove_if_exists(args, '-fsanitize-coverage=edge') + remove_if_exists(args, '-fsanitize-coverage=trace-pc-guard') + remove_if_exists(args, '-fsanitize-coverage=bb,trace-pc-guard') break sys.exit(subprocess.check_call(args)) diff --git a/deps/v8/gypfiles/features.gypi b/deps/v8/gypfiles/features.gypi index f6a442f66341d5..b38735e162ec8e 100644 --- a/deps/v8/gypfiles/features.gypi +++ b/deps/v8/gypfiles/features.gypi @@ -95,7 +95,7 @@ 'defines': ['VERIFY_HEAP',], }], ['v8_trace_maps==1', { - 'defines': ['TRACE_MAPS',], + 'defines': ['V8_TRACE_MAPS',], }], ['v8_enable_verify_predictable==1', { 'defines': ['VERIFY_PREDICTABLE',], @@ -110,7 +110,7 @@ 'defines': ['V8_IMMINENT_DEPRECATION_WARNINGS',], }], ['v8_enable_i18n_support==1', { - 'defines': ['V8_I18N_SUPPORT',], + 'defines': ['V8_INTL_SUPPORT',], }], ['v8_use_snapshot=="true" and v8_use_external_startup_data==1', { 'defines': ['V8_USE_EXTERNAL_STARTUP_DATA',], @@ -123,7 +123,7 @@ 'DebugBaseCommon': { 'abstract': 1, 'variables': { - 'v8_enable_handle_zapping%': 1, + 'v8_enable_handle_zapping%': 0, }, 'conditions': [ ['v8_enable_handle_zapping==1', { @@ -133,7 +133,7 @@ }, # Debug 'Release': { 'variables': { - 'v8_enable_handle_zapping%': 0, + 'v8_enable_handle_zapping%': 1, }, 'conditions': [ ['v8_enable_handle_zapping==1', { diff --git a/deps/v8/gypfiles/standalone.gypi b/deps/v8/gypfiles/standalone.gypi index 986aaaaebb224c..4c805bf6432ff3 100644 --- a/deps/v8/gypfiles/standalone.gypi +++ b/deps/v8/gypfiles/standalone.gypi @@ -780,6 +780,12 @@ # Don't warn about unrecognized command line option. '-Wno-gnu-zero-variadic-macro-arguments', ], + 'cflags' : [ + # Disable gcc warnings for optimizations based on the assumption + # that signed overflow does not occur. Generates false positives + # (see http://crbug.com/v8/6341). + "-Wno-strict-overflow", + ], }], [ 'clang==1 and (v8_target_arch=="x64" or v8_target_arch=="arm64" \ or v8_target_arch=="mips64el")', { @@ -855,7 +861,6 @@ }], ], 'msvs_cygwin_shell': 0, - 'msvs_cygwin_dirs': ['<(DEPTH)/third_party/cygwin'], 'msvs_disabled_warnings': [ # C4091: 'typedef ': ignored on left of 'X' when no variable is # declared. diff --git a/deps/v8/gypfiles/toolchain.gypi b/deps/v8/gypfiles/toolchain.gypi index 815070a508379c..6b82cfbd491db9 100644 --- a/deps/v8/gypfiles/toolchain.gypi +++ b/deps/v8/gypfiles/toolchain.gypi @@ -1245,7 +1245,7 @@ 'OBJECT_PRINT', 'VERIFY_HEAP', 'DEBUG', - 'TRACE_MAPS' + 'V8_TRACE_MAPS' ], 'conditions': [ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \ diff --git a/deps/v8/include/libplatform/libplatform.h b/deps/v8/include/libplatform/libplatform.h index f77742f0f6b00d..e9450456299698 100644 --- a/deps/v8/include/libplatform/libplatform.h +++ b/deps/v8/include/libplatform/libplatform.h @@ -15,6 +15,11 @@ namespace platform { enum class IdleTaskSupport { kDisabled, kEnabled }; enum class InProcessStackDumping { kDisabled, kEnabled }; +enum class MessageLoopBehavior : bool { + kDoNotWait = false, + kWaitForWork = true +}; + /** * Returns a new instance of the default v8::Platform implementation. * @@ -36,12 +41,16 @@ V8_PLATFORM_EXPORT v8::Platform* CreateDefaultPlatform( * Pumps the message loop for the given isolate. * * The caller has to make sure that this is called from the right thread. - * Returns true if a task was executed, and false otherwise. This call does - * not block if no task is pending. The |platform| has to be created using - * |CreateDefaultPlatform|. + * Returns true if a task was executed, and false otherwise. Unless requested + * through the |behavior| parameter, this call does not block if no task is + * pending. The |platform| has to be created using |CreateDefaultPlatform|. */ -V8_PLATFORM_EXPORT bool PumpMessageLoop(v8::Platform* platform, - v8::Isolate* isolate); +V8_PLATFORM_EXPORT bool PumpMessageLoop( + v8::Platform* platform, v8::Isolate* isolate, + MessageLoopBehavior behavior = MessageLoopBehavior::kDoNotWait); + +V8_PLATFORM_EXPORT void EnsureEventLoopInitialized(v8::Platform* platform, + v8::Isolate* isolate); /** * Runs pending idle tasks for at most |idle_time_in_seconds| seconds. diff --git a/deps/v8/include/v8-value-serializer-version.h b/deps/v8/include/v8-value-serializer-version.h new file mode 100644 index 00000000000000..c72911c64dc571 --- /dev/null +++ b/deps/v8/include/v8-value-serializer-version.h @@ -0,0 +1,24 @@ +// Copyright 2017 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. + +/** + * Compile-time constants. + * + * This header provides access to information about the value serializer at + * compile time, without declaring or defining any symbols that require linking + * to V8. + */ + +#ifndef INCLUDE_V8_VALUE_SERIALIZER_VERSION_H_ +#define INCLUDE_V8_VALUE_SERIALIZER_VERSION_H_ + +#include + +namespace v8 { + +constexpr uint32_t CurrentValueSerializerFormatVersion() { return 13; } + +} // namespace v8 + +#endif // INCLUDE_V8_VALUE_SERIALIZER_VERSION_H_ diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 0bfc4e8c5df9b0..0889459ca778da 100644 --- a/deps/v8/include/v8-version.h +++ b/deps/v8/include/v8-version.h @@ -8,10 +8,10 @@ // These macros define the version number for the current version. // NOTE these macros are used by some of the tool scripts and the build // system so their names cannot be changed without changing the scripts. -#define V8_MAJOR_VERSION 5 -#define V8_MINOR_VERSION 9 -#define V8_BUILD_NUMBER 211 -#define V8_PATCH_LEVEL 39 +#define V8_MAJOR_VERSION 6 +#define V8_MINOR_VERSION 0 +#define V8_BUILD_NUMBER 286 +#define V8_PATCH_LEVEL 52 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index ce7741a08c0364..da3cdfdcbd7db5 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -150,6 +150,9 @@ class FunctionCallbackArguments; class GlobalHandles; } // namespace internal +namespace debug { +class ConsoleCallArguments; +} // namespace debug // --- Handles --- @@ -1092,7 +1095,8 @@ class V8_EXPORT Module { /** * ModuleDeclarationInstantiation * - * Returns false if an exception occurred during instantiation. + * Returns false if an exception occurred during instantiation. (In the case + * where the callback throws an exception, that exception is propagated.) */ V8_WARN_UNUSED_RESULT bool Instantiate(Local context, ResolveCallback callback); @@ -1789,8 +1793,6 @@ class V8_EXPORT ValueSerializer { virtual void FreeBufferMemory(void* buffer); }; - static uint32_t GetCurrentDataFormatVersion(); - explicit ValueSerializer(Isolate* isolate); ValueSerializer(Isolate* isolate, Delegate* delegate); ~ValueSerializer(); @@ -2317,6 +2319,8 @@ class V8_EXPORT Value : public Data { Local TypeOf(Isolate*); + Maybe InstanceOf(Local context, Local object); + private: V8_INLINE bool QuickIsUndefined() const; V8_INLINE bool QuickIsNull() const; @@ -2791,11 +2795,16 @@ class V8_EXPORT Symbol : public Name { static Local ForApi(Isolate *isolate, Local name); // Well-known symbols + static Local GetHasInstance(Isolate* isolate); + static Local GetIsConcatSpreadable(Isolate* isolate); static Local GetIterator(Isolate* isolate); - static Local GetUnscopables(Isolate* isolate); + static Local GetMatch(Isolate* isolate); + static Local GetReplace(Isolate* isolate); + static Local GetSearch(Isolate* isolate); + static Local GetSplit(Isolate* isolate); static Local GetToPrimitive(Isolate* isolate); static Local GetToStringTag(Isolate* isolate); - static Local GetIsConcatSpreadable(Isolate* isolate); + static Local GetUnscopables(Isolate* isolate); V8_INLINE static Symbol* Cast(Value* obj); @@ -3070,12 +3079,12 @@ class V8_EXPORT Object : public Value { Local context, Local key); /** - * Returns Object.getOwnPropertyDescriptor as per ES5 section 15.2.3.3. + * Returns Object.getOwnPropertyDescriptor as per ES2016 section 19.1.2.6. */ V8_DEPRECATED("Use maybe version", - Local GetOwnPropertyDescriptor(Local key)); + Local GetOwnPropertyDescriptor(Local key)); V8_WARN_UNUSED_RESULT MaybeLocal GetOwnPropertyDescriptor( - Local context, Local key); + Local context, Local key); V8_DEPRECATE_SOON("Use maybe version", bool Has(Local key)); /** @@ -3135,6 +3144,16 @@ class V8_EXPORT Object : public Value { PropertyAttribute attribute = None, AccessControl settings = DEFAULT); + /** + * Sets a native data property like Template::SetNativeDataProperty, but + * this method sets on this object directly. + */ + V8_WARN_UNUSED_RESULT Maybe SetNativeDataProperty( + Local context, Local name, + AccessorNameGetterCallback getter, + AccessorNameSetterCallback setter = nullptr, + Local data = Local(), PropertyAttribute attributes = None); + /** * Functionality for private properties. * This is an experimental feature, use at your own risk. @@ -3578,16 +3597,34 @@ class ReturnValue { template class FunctionCallbackInfo { public: + /** The number of available arguments. */ V8_INLINE int Length() const; + /** Accessor for the available arguments. */ V8_INLINE Local operator[](int i) const; V8_INLINE V8_DEPRECATED("Use Data() to explicitly pass Callee instead", Local Callee() const); + /** Returns the receiver. This corresponds to the "this" value. */ V8_INLINE Local This() const; + /** + * If the callback was created without a Signature, this is the same + * value as This(). If there is a signature, and the signature didn't match + * This() but one of its hidden prototypes, this will be the respective + * hidden prototype. + * + * Note that this is not the prototype of This() on which the accessor + * referencing this callback was found (which in V8 internally is often + * referred to as holder [sic]). + */ V8_INLINE Local Holder() const; + /** For construct calls, this returns the "new.target" value. */ V8_INLINE Local NewTarget() const; + /** Indicates whether this is a regular call or a construct call. */ V8_INLINE bool IsConstructCall() const; + /** The data argument specified when creating the callback. */ V8_INLINE Local Data() const; + /** The current Isolate. */ V8_INLINE Isolate* GetIsolate() const; + /** The ReturnValue for the call. */ V8_INLINE ReturnValue GetReturnValue() const; // This shouldn't be public, but the arm compiler needs it. static const int kArgsLength = 8; @@ -3595,6 +3632,7 @@ class FunctionCallbackInfo { protected: friend class internal::FunctionCallbackArguments; friend class internal::CustomArguments; + friend class debug::ConsoleCallArguments; static const int kHolderIndex = 0; static const int kIsolateIndex = 1; static const int kReturnValueDefaultValueIndex = 2; @@ -4025,12 +4063,10 @@ class V8_EXPORT WasmCompiledModule : public Object { // supports move semantics, and does not support copy semantics. class TransferrableModule final { public: - TransferrableModule(TransferrableModule&& src) - : compiled_code(std::move(src.compiled_code)), - wire_bytes(std::move(src.wire_bytes)) {} + TransferrableModule(TransferrableModule&& src) = default; TransferrableModule(const TransferrableModule& src) = delete; - TransferrableModule& operator=(TransferrableModule&& src); + TransferrableModule& operator=(TransferrableModule&& src) = default; TransferrableModule& operator=(const TransferrableModule& src) = delete; private: @@ -4103,11 +4139,9 @@ class V8_EXPORT WasmModuleObjectBuilder final { // Disable copy semantics *in this implementation*. We can choose to // relax this, albeit it's not clear why. WasmModuleObjectBuilder(const WasmModuleObjectBuilder&) = delete; - WasmModuleObjectBuilder(WasmModuleObjectBuilder&& src) - : received_buffers_(std::move(src.received_buffers_)), - total_size_(src.total_size_) {} + WasmModuleObjectBuilder(WasmModuleObjectBuilder&&) = default; WasmModuleObjectBuilder& operator=(const WasmModuleObjectBuilder&) = delete; - WasmModuleObjectBuilder& operator=(WasmModuleObjectBuilder&&); + WasmModuleObjectBuilder& operator=(WasmModuleObjectBuilder&&) = default; std::vector received_buffers_; size_t total_size_ = 0; @@ -4158,12 +4192,42 @@ class V8_EXPORT ArrayBuffer : public Object { */ virtual void* AllocateUninitialized(size_t length) = 0; + /** + * Reserved |length| bytes, but do not commit the memory. Must call + * |SetProtection| to make memory accessible. + */ + // TODO(eholk): make this pure virtual once blink implements this. + virtual void* Reserve(size_t length); + /** * Free the memory block of size |length|, pointed to by |data|. * That memory is guaranteed to be previously allocated by |Allocate|. */ virtual void Free(void* data, size_t length) = 0; + enum class AllocationMode { kNormal, kReservation }; + + /** + * Free the memory block of size |length|, pointed to by |data|. + * That memory is guaranteed to be previously allocated by |Allocate| or + * |Reserve|, depending on |mode|. + */ + // TODO(eholk): make this pure virtual once blink implements this. + virtual void Free(void* data, size_t length, AllocationMode mode); + + enum class Protection { kNoAccess, kReadWrite }; + + /** + * Change the protection on a region of memory. + * + * On platforms that make a distinction between reserving and committing + * memory, changing the protection to kReadWrite must also ensure the memory + * is committed. + */ + // TODO(eholk): make this pure virtual once blink implements this. + virtual void SetProtection(void* data, size_t length, + Protection protection); + /** * malloc/free based convenience allocator. * @@ -5745,9 +5809,13 @@ class V8_EXPORT ObjectTemplate : public Template { friend class FunctionTemplate; }; - /** * A Signature specifies which receiver is valid for a function. + * + * A receiver matches a given signature if the receiver (or any of its + * hidden prototypes) was created from the signature's FunctionTemplate, or + * from a FunctionTemplate that inherits directly or indirectly from the + * signature's FunctionTemplate. */ class V8_EXPORT Signature : public Data { public: @@ -5878,8 +5946,12 @@ class V8_EXPORT ResourceConstraints { void set_max_old_space_size(int limit_in_mb) { max_old_space_size_ = limit_in_mb; } - int max_executable_size() const { return max_executable_size_; } - void set_max_executable_size(int limit_in_mb) { + V8_DEPRECATE_SOON("max_executable_size_ is subsumed by max_old_space_size_", + int max_executable_size() const) { + return max_executable_size_; + } + V8_DEPRECATE_SOON("max_executable_size_ is subsumed by max_old_space_size_", + void set_max_executable_size(int limit_in_mb)) { max_executable_size_ = limit_in_mb; } uint32_t* stack_limit() const { return stack_limit_; } @@ -6154,6 +6226,8 @@ enum GCType { * - kGCCallbackFlagCollectAllAvailableGarbage: The GC callback is called * in a phase where V8 is trying to collect all available garbage * (e.g., handling a low memory notification). + * - kGCCallbackScheduleIdleGarbageCollection: The GC callback is called to + * trigger an idle garbage collection. */ enum GCCallbackFlags { kNoGCCallbackFlags = 0, @@ -6162,6 +6236,7 @@ enum GCCallbackFlags { kGCCallbackFlagSynchronousPhantomCallbackProcessing = 1 << 3, kGCCallbackFlagCollectAllAvailableGarbage = 1 << 4, kGCCallbackFlagCollectAllExternalMemory = 1 << 5, + kGCCallbackScheduleIdleGarbageCollection = 1 << 6, }; typedef void (*GCCallback)(GCType type, GCCallbackFlags flags); @@ -6188,9 +6263,8 @@ class V8_EXPORT HeapStatistics { size_t peak_malloced_memory() { return peak_malloced_memory_; } /** - * Returns a 0/1 boolean, which signifies whether the |--zap_code_space| - * option is enabled or not, which makes V8 overwrite heap garbage with a bit - * pattern. + * Returns a 0/1 boolean, which signifies whether the V8 overwrite heap + * garbage with a bit pattern. */ size_t does_zap_garbage() { return does_zap_garbage_; } @@ -6607,7 +6681,7 @@ class V8_EXPORT Isolate { /** * Whether calling Atomics.wait (a function that may block) is allowed in - * this isolate. + * this isolate. This can also be configured via SetAllowAtomicsWait. */ bool allow_atomics_wait; @@ -7467,6 +7541,13 @@ class V8_EXPORT Isolate { */ bool IsInUse(); + /** + * Set whether calling Atomics.wait (a function that may block) is allowed in + * this isolate. This can also be configured via + * CreateParams::allow_atomics_wait. + */ + void SetAllowAtomicsWait(bool allow); + Isolate() = delete; ~Isolate() = delete; Isolate(const Isolate&) = delete; @@ -8365,16 +8446,14 @@ class V8_EXPORT Context { Isolate* GetIsolate(); /** - * The field at kDebugIdIndex is reserved for V8 debugger implementation. - * The value is propagated to the scripts compiled in given Context and - * can be used for filtering scripts. + * The field at kDebugIdIndex used to be reserved for the inspector. + * It now serves no purpose. */ enum EmbedderDataFields { kDebugIdIndex = 0 }; /** * Gets the embedder data with the given index, which must have been set by a - * previous call to SetEmbedderData with the same index. Note that index 0 - * currently has a special meaning for Chrome's debugger. + * previous call to SetEmbedderData with the same index. */ V8_INLINE Local GetEmbedderData(int index); diff --git a/deps/v8/include/v8config.h b/deps/v8/include/v8config.h index c34cb69a89112e..964949c24c3293 100644 --- a/deps/v8/include/v8config.h +++ b/deps/v8/include/v8config.h @@ -316,7 +316,7 @@ // V8_NORETURN void MyAbort() { abort(); } #if V8_HAS_ATTRIBUTE_NORETURN # define V8_NORETURN __attribute__((noreturn)) -#elif HAS_DECLSPEC_NORETURN +#elif V8_HAS_DECLSPEC_NORETURN # define V8_NORETURN __declspec(noreturn) #else # define V8_NORETURN /* NOT SUPPORTED */ diff --git a/deps/v8/infra/config/cq.cfg b/deps/v8/infra/config/cq.cfg index e9bc8fdd3c2c9d..dcf8e5c0b726e1 100644 --- a/deps/v8/infra/config/cq.cfg +++ b/deps/v8/infra/config/cq.cfg @@ -32,10 +32,7 @@ verifiers { buckets { name: "master.tryserver.v8" builders { name: "v8_android_arm_compile_rel" } - builders { - name: "v8_node_linux64_rel" - experiment_percentage: 100 - } + builders { name: "v8_node_linux64_rel" } builders { name: "v8_linux64_asan_rel_ng" } builders { name: "v8_linux64_asan_rel_ng_triggered" @@ -46,6 +43,7 @@ verifiers { name: "v8_linux64_avx2_rel_ng_triggered" triggered_by: "v8_linux64_avx2_rel_ng" } + builders { name: "v8_linux64_gcc_compile_dbg" } builders { name: "v8_linux64_gyp_rel_ng" } builders { name: "v8_linux64_gyp_rel_ng_triggered" diff --git a/deps/v8/infra/mb/mb_config.pyl b/deps/v8/infra/mb/mb_config.pyl index 0df30d457129f9..1a8247fc2b71af 100644 --- a/deps/v8/infra/mb/mb_config.pyl +++ b/deps/v8/infra/mb/mb_config.pyl @@ -84,6 +84,8 @@ # Sanitizers. 'V8 Linux64 ASAN': 'gn_release_x64_asan', 'V8 Linux64 TSAN': 'gn_release_x64_tsan', + 'V8 Linux64 TSAN - concurrent marking': + 'gn_release_x64_tsan_concurrent_marking', 'V8 Linux - arm64 - sim - MSAN': 'gn_release_simulate_arm64_msan', # Clusterfuzz. 'V8 Linux64 - release builder': 'gn_release_x64_correctness_fuzzer', @@ -98,6 +100,7 @@ 'gn_debug_simulate_mipsel_asan_edge', # Misc. 'V8 Linux gcc 4.8': 'gn_release_x86_gcc', + 'V8 Linux64 gcc 4.8 - debug': 'gn_debug_x64_gcc', # FYI. 'V8 Linux - swarming staging': 'gn_release_x64', # TODO(machenbach): Figure out if symbolized is still needed. The @@ -177,6 +180,7 @@ 'v8_linux_nosnap_dbg': 'gn_debug_x86_no_snap_trybot', 'v8_linux_gcc_compile_rel': 'gn_release_x86_gcc_minimal_symbols', 'v8_linux_gcc_rel': 'gn_release_x86_gcc_minimal_symbols', + 'v8_linux64_gcc_compile_dbg': 'gn_debug_x64_gcc', 'v8_linux64_rel_ng': 'gn_release_x64_valgrind_trybot', 'v8_linux64_verify_csa_rel_ng': 'gn_release_x64_verify_csa', 'v8_linux64_gyp_rel_ng': 'gyp_release_x64', @@ -187,6 +191,8 @@ 'v8_linux64_sanitizer_coverage_rel': 'gyp_release_x64_asan_minimal_symbols_coverage', 'v8_linux64_tsan_rel': 'gn_release_x64_tsan_minimal_symbols', + 'v8_linux64_tsan_concurrent_marking_rel_ng': + 'gn_release_x64_tsan_concurrent_marking_minimal_symbols', 'v8_win_dbg': 'gn_debug_x86_trybot', 'v8_win_compile_dbg': 'gn_debug_x86_trybot', 'v8_win_rel_ng': 'gn_release_x86_trybot', @@ -298,7 +304,8 @@ 'gn_debug_simulate_arm64_asan_edge': [ 'gn', 'debug_bot', 'simulate_arm64', 'asan', 'lsan', 'edge'], 'gn_debug_simulate_arm64_no_snap': [ - 'gn', 'debug_bot', 'simulate_arm64', 'swarming', 'v8_snapshot_none'], + 'gn', 'debug', 'simulate_arm64', 'shared', 'goma', + 'v8_optimized_debug', 'swarming', 'v8_snapshot_none'], 'gn_debug_simulate_mipsel_asan_edge': [ 'gn', 'debug_bot', 'simulate_mipsel', 'asan', 'edge'], @@ -360,6 +367,12 @@ 'gn', 'release_trybot', 'x64', 'swarming'], 'gn_release_x64_tsan': [ 'gn', 'release_bot', 'x64', 'tsan', 'swarming'], + 'gn_release_x64_tsan_concurrent_marking': [ + 'gn', 'release_bot', 'x64', 'v8_enable_concurrent_marking', 'tsan', + 'swarming'], + 'gn_release_x64_tsan_concurrent_marking_minimal_symbols': [ + 'gn', 'release_bot', 'x64', 'v8_enable_concurrent_marking', 'tsan', + 'minimal_symbols', 'swarming'], 'gn_release_x64_tsan_minimal_symbols': [ 'gn', 'release_bot', 'x64', 'tsan', 'minimal_symbols', 'swarming'], 'gn_release_x64_valgrind': [ @@ -377,6 +390,8 @@ 'gn', 'debug_bot', 'x64', 'asan', 'lsan', 'edge'], 'gn_debug_x64_custom': [ 'gn', 'debug_bot', 'x64', 'swarming', 'v8_snapshot_custom'], + 'gn_debug_x64_gcc': [ + 'gn', 'debug_bot', 'x64', 'gcc'], 'gn_debug_x64_minimal_symbols': [ 'gn', 'debug_bot', 'x64', 'minimal_symbols', 'swarming'], 'gn_debug_x64_trybot': [ @@ -498,8 +513,8 @@ }, 'bb': { - 'gn_args': 'sanitizer_coverage_flags="bb"', - 'gyp_defines': 'sanitizer_coverage=bb', + 'gn_args': 'sanitizer_coverage_flags="bb,trace-pc-guard"', + 'gyp_defines': 'sanitizer_coverage=bb,trace-pc-guard', }, 'cfi': { @@ -548,8 +563,8 @@ }, 'edge': { - 'gn_args': 'sanitizer_coverage_flags="edge"', - 'gyp_defines': 'sanitizer_coverage=edge', + 'gn_args': 'sanitizer_coverage_flags="trace-pc-guard"', + 'gyp_defines': 'sanitizer_coverage=trace-pc-guard', }, 'gcc': { @@ -695,6 +710,10 @@ 'gyp_defines': 'v8_enable_i18n_support=0 icu_use_data_file_flag=0', }, + 'v8_enable_concurrent_marking': { + 'gn_args': 'v8_enable_concurrent_marking=true', + }, + 'v8_correctness_fuzzer': { 'gn_args': 'v8_correctness_fuzzer=true v8_multi_arch_build=true', }, diff --git a/deps/v8/src/DEPS b/deps/v8/src/DEPS index bfeca932415299..bbf47e61071faf 100644 --- a/deps/v8/src/DEPS +++ b/deps/v8/src/DEPS @@ -1,6 +1,8 @@ include_rules = [ "+base/trace_event/common/trace_event_common.h", "+src", + "-src/asmjs", + "+src/asmjs/asm-js.h", "-src/compiler", "+src/compiler/pipeline.h", "+src/compiler/code-assembler.h", diff --git a/deps/v8/src/OWNERS b/deps/v8/src/OWNERS index 3a05c3a95b5b64..8bbbab6ecb7287 100644 --- a/deps/v8/src/OWNERS +++ b/deps/v8/src/OWNERS @@ -1,5 +1,5 @@ -per-file i18n.*=cira@chromium.org -per-file i18n.*=mnita@google.com -per-file i18n.*=jshin@chromium.org +per-file intl.*=cira@chromium.org +per-file intl.*=mnita@google.com +per-file intl.*=jshin@chromium.org per-file typing-asm.*=aseemgarg@chromium.org per-file typing-asm.*=bradnelson@chromium.org diff --git a/deps/v8/src/accessors.cc b/deps/v8/src/accessors.cc index 1f2ce97240f5d1..98f780d5895dbd 100644 --- a/deps/v8/src/accessors.cc +++ b/deps/v8/src/accessors.cc @@ -681,23 +681,6 @@ static Handle GetFunctionPrototype(Isolate* isolate, return Handle(function->prototype(), isolate); } - -MUST_USE_RESULT static MaybeHandle SetFunctionPrototype( - Isolate* isolate, Handle function, Handle value) { - JSFunction::SetPrototype(function, value); - DCHECK(function->prototype() == *value); - return function; -} - - -MaybeHandle Accessors::FunctionSetPrototype(Handle function, - Handle prototype) { - DCHECK(function->IsConstructor()); - Isolate* isolate = function->GetIsolate(); - return SetFunctionPrototype(isolate, function, prototype); -} - - void Accessors::FunctionPrototypeGetter( v8::Local name, const v8::PropertyCallbackInfo& info) { @@ -719,11 +702,8 @@ void Accessors::FunctionPrototypeSetter( Handle value = Utils::OpenHandle(*val); Handle object = Handle::cast(Utils::OpenHandle(*info.Holder())); - if (SetFunctionPrototype(isolate, object, value).is_null()) { - isolate->OptionalRescheduleException(false); - } else { - info.GetReturnValue().Set(true); - } + JSFunction::SetPrototype(object, value); + info.GetReturnValue().Set(true); } diff --git a/deps/v8/src/accessors.h b/deps/v8/src/accessors.h index a4d51fd18abfc4..52420d91de347d 100644 --- a/deps/v8/src/accessors.h +++ b/deps/v8/src/accessors.h @@ -90,8 +90,6 @@ class Accessors : public AllStatic { }; // Accessor functions called directly from the runtime system. - MUST_USE_RESULT static MaybeHandle FunctionSetPrototype( - Handle object, Handle value); static Handle FunctionGetArguments(Handle object); // Returns true for properties that are accessors to object fields. diff --git a/deps/v8/src/api-arguments.h b/deps/v8/src/api-arguments.h index 6c9ad7ad6b93f2..ca7b4833e9947e 100644 --- a/deps/v8/src/api-arguments.h +++ b/deps/v8/src/api-arguments.h @@ -7,6 +7,7 @@ #include "src/api.h" #include "src/isolate.h" +#include "src/visitors.h" namespace v8 { namespace internal { @@ -17,8 +18,8 @@ namespace internal { template class CustomArgumentsBase : public Relocatable { public: - virtual inline void IterateInstance(ObjectVisitor* v) { - v->VisitPointers(values_, values_ + kArrayLength); + virtual inline void IterateInstance(RootVisitor* v) { + v->VisitRootPointers(Root::kRelocatable, values_, values_ + kArrayLength); } protected: diff --git a/deps/v8/src/api-natives.cc b/deps/v8/src/api-natives.cc index 0957c47823decd..ef51f950a5ecb8 100644 --- a/deps/v8/src/api-natives.cc +++ b/deps/v8/src/api-natives.cc @@ -261,14 +261,25 @@ MaybeHandle ConfigureInstance(Isolate* isolate, Handle obj, return obj; } +// Whether or not to cache every instance: when we materialize a getter or +// setter from an lazy AccessorPair, we rely on this cache to be able to always +// return the same getter or setter. However, objects will be cloned anyways, +// so it's not observable if we didn't cache an instance. Furthermore, a badly +// behaved embedder might create an unlimited number of objects, so we limit +// the cache for those cases. +enum class CachingMode { kLimited, kUnlimited }; + MaybeHandle ProbeInstantiationsCache(Isolate* isolate, - int serial_number) { + int serial_number, + CachingMode caching_mode) { DCHECK_LE(1, serial_number); if (serial_number <= TemplateInfo::kFastTemplateInstantiationsCacheSize) { Handle fast_cache = isolate->fast_template_instantiations_cache(); return fast_cache->GetValue(isolate, serial_number - 1); - } else { + } else if (caching_mode == CachingMode::kUnlimited || + (serial_number <= + TemplateInfo::kSlowTemplateInstantiationsCacheSize)) { Handle slow_cache = isolate->slow_template_instantiations_cache(); int entry = slow_cache->FindEntry(serial_number); @@ -276,10 +287,13 @@ MaybeHandle ProbeInstantiationsCache(Isolate* isolate, return MaybeHandle(); } return handle(JSObject::cast(slow_cache->ValueAt(entry)), isolate); + } else { + return MaybeHandle(); } } void CacheTemplateInstantiation(Isolate* isolate, int serial_number, + CachingMode caching_mode, Handle object) { DCHECK_LE(1, serial_number); if (serial_number <= TemplateInfo::kFastTemplateInstantiationsCacheSize) { @@ -291,7 +305,9 @@ void CacheTemplateInstantiation(Isolate* isolate, int serial_number, isolate->native_context()->set_fast_template_instantiations_cache( *new_cache); } - } else { + } else if (caching_mode == CachingMode::kUnlimited || + (serial_number <= + TemplateInfo::kSlowTemplateInstantiationsCacheSize)) { Handle cache = isolate->slow_template_instantiations_cache(); auto new_cache = @@ -303,14 +319,17 @@ void CacheTemplateInstantiation(Isolate* isolate, int serial_number, } } -void UncacheTemplateInstantiation(Isolate* isolate, int serial_number) { +void UncacheTemplateInstantiation(Isolate* isolate, int serial_number, + CachingMode caching_mode) { DCHECK_LE(1, serial_number); if (serial_number <= TemplateInfo::kFastTemplateInstantiationsCacheSize) { Handle fast_cache = isolate->fast_template_instantiations_cache(); DCHECK(!fast_cache->get(serial_number - 1)->IsUndefined(isolate)); fast_cache->set_undefined(serial_number - 1); - } else { + } else if (caching_mode == CachingMode::kUnlimited || + (serial_number <= + TemplateInfo::kSlowTemplateInstantiationsCacheSize)) { Handle cache = isolate->slow_template_instantiations_cache(); int entry = cache->FindEntry(serial_number); @@ -354,7 +373,8 @@ MaybeHandle InstantiateObject(Isolate* isolate, // Fast path. Handle result; if (serial_number) { - if (ProbeInstantiationsCache(isolate, serial_number).ToHandle(&result)) { + if (ProbeInstantiationsCache(isolate, serial_number, CachingMode::kLimited) + .ToHandle(&result)) { return isolate->factory()->CopyJSObject(result); } } @@ -396,7 +416,8 @@ MaybeHandle InstantiateObject(Isolate* isolate, JSObject::MigrateSlowToFast(result, 0, "ApiNatives::InstantiateObject"); // Don't cache prototypes. if (serial_number) { - CacheTemplateInstantiation(isolate, serial_number, result); + CacheTemplateInstantiation(isolate, serial_number, CachingMode::kLimited, + result); result = isolate->factory()->CopyJSObject(result); } } @@ -433,7 +454,9 @@ MaybeHandle InstantiateFunction(Isolate* isolate, int serial_number = Smi::cast(data->serial_number())->value(); if (serial_number) { Handle result; - if (ProbeInstantiationsCache(isolate, serial_number).ToHandle(&result)) { + if (ProbeInstantiationsCache(isolate, serial_number, + CachingMode::kUnlimited) + .ToHandle(&result)) { return Handle::cast(result); } } @@ -475,14 +498,16 @@ MaybeHandle InstantiateFunction(Isolate* isolate, } if (serial_number) { // Cache the function. - CacheTemplateInstantiation(isolate, serial_number, function); + CacheTemplateInstantiation(isolate, serial_number, CachingMode::kUnlimited, + function); } MaybeHandle result = ConfigureInstance(isolate, function, data, data->hidden_prototype()); if (result.is_null()) { // Uncache on error. if (serial_number) { - UncacheTemplateInstantiation(isolate, serial_number); + UncacheTemplateInstantiation(isolate, serial_number, + CachingMode::kUnlimited); } return MaybeHandle(); } diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index e725ef50fe3e93..7699bc87ec8490 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -25,6 +25,7 @@ #include "src/base/safe_conversions.h" #include "src/base/utils/random-number-generator.h" #include "src/bootstrapper.h" +#include "src/builtins/builtins-utils.h" #include "src/char-predicates-inl.h" #include "src/code-stubs.h" #include "src/compiler-dispatcher/compiler-dispatcher.h" @@ -84,7 +85,7 @@ namespace v8 { isolate, &i::RuntimeCallStats::API_##class_name##_##function_name); \ LOG(isolate, ApiEntryCall("v8::" #class_name "::" #function_name)) -#define ENTER_V8(isolate) i::VMState __state__((isolate)) +#define ENTER_V8_DO_NOT_USE(isolate) i::VMState __state__((isolate)) #define PREPARE_FOR_EXECUTION_GENERIC(isolate, context, class_name, \ function_name, bailout_value, \ @@ -95,7 +96,7 @@ namespace v8 { HandleScopeClass handle_scope(isolate); \ CallDepthScope call_depth_scope(isolate, context); \ LOG_API(isolate, class_name, function_name); \ - ENTER_V8(isolate); \ + ENTER_V8_DO_NOT_USE(isolate); \ bool has_pending_exception = false #define PREPARE_FOR_DEBUG_INTERFACE_EXECUTION_WITH_ISOLATE(isolate, T) \ @@ -104,7 +105,7 @@ namespace v8 { } \ InternalEscapableScope handle_scope(isolate); \ CallDepthScope call_depth_scope(isolate, v8::Local()); \ - ENTER_V8(isolate); \ + ENTER_V8_DO_NOT_USE(isolate); \ bool has_pending_exception = false #define PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, class_name, function_name, \ @@ -231,17 +232,20 @@ class CallDepthScope { i::Handle env = Utils::OpenHandle(*context); i::HandleScopeImplementer* impl = isolate->handle_scope_implementer(); if (isolate->context() != nullptr && - isolate->context()->native_context() == env->native_context() && - impl->LastEnteredContextWas(env)) { + isolate->context()->native_context() == env->native_context()) { context_ = Local(); } else { - context_->Enter(); + impl->SaveContext(isolate->context()); + isolate->set_context(*env); } } if (do_callback) isolate_->FireBeforeCallEnteredCallback(); } ~CallDepthScope() { - if (!context_.IsEmpty()) context_->Exit(); + if (!context_.IsEmpty()) { + i::HandleScopeImplementer* impl = isolate_->handle_scope_implementer(); + isolate_->set_context(impl->RestoreContext()); + } if (!escaped_) isolate_->handle_scope_implementer()->DecrementCallDepth(); if (do_callback) isolate_->FireCallCompletedCallback(); #ifdef DEBUG @@ -437,6 +441,28 @@ void V8::SetSnapshotDataBlob(StartupData* snapshot_blob) { i::V8::SetSnapshotBlob(snapshot_blob); } +void* v8::ArrayBuffer::Allocator::Reserve(size_t length) { UNIMPLEMENTED(); } + +void v8::ArrayBuffer::Allocator::Free(void* data, size_t length, + AllocationMode mode) { + switch (mode) { + case AllocationMode::kNormal: { + Free(data, length); + return; + } + case AllocationMode::kReservation: { + UNIMPLEMENTED(); + return; + } + } +} + +void v8::ArrayBuffer::Allocator::SetProtection( + void* data, size_t length, + v8::ArrayBuffer::Allocator::Protection protection) { + UNIMPLEMENTED(); +} + namespace { class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { @@ -447,6 +473,39 @@ class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { } virtual void* AllocateUninitialized(size_t length) { return malloc(length); } virtual void Free(void* data, size_t) { free(data); } + + virtual void* Reserve(size_t length) { + return base::VirtualMemory::ReserveRegion(length); + } + + virtual void Free(void* data, size_t length, + v8::ArrayBuffer::Allocator::AllocationMode mode) { + switch (mode) { + case v8::ArrayBuffer::Allocator::AllocationMode::kNormal: { + return Free(data, length); + } + case v8::ArrayBuffer::Allocator::AllocationMode::kReservation: { + base::VirtualMemory::ReleaseRegion(data, length); + return; + } + } + } + + virtual void SetProtection( + void* data, size_t length, + v8::ArrayBuffer::Allocator::Protection protection) { + switch (protection) { + case v8::ArrayBuffer::Allocator::Protection::kNoAccess: { + base::VirtualMemory::UncommitRegion(data, length); + return; + } + case v8::ArrayBuffer::Allocator::Protection::kReadWrite: { + const bool is_executable = false; + base::VirtualMemory::CommitRegion(data, length, is_executable); + return; + } + } + } }; bool RunExtraCode(Isolate* isolate, Local context, @@ -601,9 +660,6 @@ StartupData SnapshotCreator::CreateBlob( isolate->heap()->SetSerializedGlobalProxySizes(*global_proxy_sizes); } - // We might rehash strings and re-sort descriptors. Clear the lookup cache. - isolate->descriptor_lookup_cache()->Clear(); - // If we don't do this then we end up with a stray root pointing at the // context even after we have disposed of the context. isolate->heap()->CollectAllAvailableGarbage( @@ -645,15 +701,11 @@ StartupData SnapshotCreator::CreateBlob( // Serialize each context with a new partial serializer. i::List context_snapshots(num_additional_contexts + 1); - // TODO(6593): generalize rehashing, and remove this flag. - bool can_be_rehashed = true; - { // The default snapshot does not support embedder fields. i::PartialSerializer partial_serializer( isolate, &startup_serializer, v8::SerializeInternalFieldsCallback()); partial_serializer.Serialize(&default_context, false); - can_be_rehashed = can_be_rehashed && partial_serializer.can_be_rehashed(); context_snapshots.Add(new i::SnapshotData(&partial_serializer)); } @@ -661,12 +713,10 @@ StartupData SnapshotCreator::CreateBlob( i::PartialSerializer partial_serializer( isolate, &startup_serializer, data->embedder_fields_serializers_[i]); partial_serializer.Serialize(&contexts[i], true); - can_be_rehashed = can_be_rehashed && partial_serializer.can_be_rehashed(); context_snapshots.Add(new i::SnapshotData(&partial_serializer)); } startup_serializer.SerializeWeakReferencesAndDeferred(); - can_be_rehashed = can_be_rehashed && startup_serializer.can_be_rehashed(); #ifdef DEBUG if (i::FLAG_external_reference_stats) { @@ -675,8 +725,8 @@ StartupData SnapshotCreator::CreateBlob( #endif // DEBUG i::SnapshotData startup_snapshot(&startup_serializer); - StartupData result = i::Snapshot::CreateSnapshotBlob( - &startup_snapshot, &context_snapshots, can_be_rehashed); + StartupData result = + i::Snapshot::CreateSnapshotBlob(&startup_snapshot, &context_snapshots); // Delete heap-allocated context snapshot instances. for (const auto& context_snapshot : context_snapshots) { @@ -818,7 +868,6 @@ Extension::Extension(const char* name, ResourceConstraints::ResourceConstraints() : max_semi_space_size_(0), max_old_space_size_(0), - max_executable_size_(0), stack_limit_(NULL), code_range_size_(0), max_zone_pool_size_(0) {} @@ -840,24 +889,20 @@ void ResourceConstraints::ConfigureDefaults(uint64_t physical_memory, if (physical_memory <= low_limit) { set_max_semi_space_size(i::Heap::kMaxSemiSpaceSizeLowMemoryDevice); set_max_old_space_size(i::Heap::kMaxOldSpaceSizeLowMemoryDevice); - set_max_executable_size(i::Heap::kMaxExecutableSizeLowMemoryDevice); set_max_zone_pool_size(i::AccountingAllocator::kMaxPoolSizeLowMemoryDevice); } else if (physical_memory <= medium_limit) { set_max_semi_space_size(i::Heap::kMaxSemiSpaceSizeMediumMemoryDevice); set_max_old_space_size(i::Heap::kMaxOldSpaceSizeMediumMemoryDevice); - set_max_executable_size(i::Heap::kMaxExecutableSizeMediumMemoryDevice); set_max_zone_pool_size( i::AccountingAllocator::kMaxPoolSizeMediumMemoryDevice); } else if (physical_memory <= high_limit) { set_max_semi_space_size(i::Heap::kMaxSemiSpaceSizeHighMemoryDevice); set_max_old_space_size(i::Heap::kMaxOldSpaceSizeHighMemoryDevice); - set_max_executable_size(i::Heap::kMaxExecutableSizeHighMemoryDevice); set_max_zone_pool_size( i::AccountingAllocator::kMaxPoolSizeHighMemoryDevice); } else { set_max_semi_space_size(i::Heap::kMaxSemiSpaceSizeHugeMemoryDevice); set_max_old_space_size(i::Heap::kMaxOldSpaceSizeHugeMemoryDevice); - set_max_executable_size(i::Heap::kMaxExecutableSizeHugeMemoryDevice); set_max_zone_pool_size( i::AccountingAllocator::kMaxPoolSizeHugeMemoryDevice); } @@ -876,13 +921,11 @@ void SetResourceConstraints(i::Isolate* isolate, const ResourceConstraints& constraints) { int semi_space_size = constraints.max_semi_space_size(); int old_space_size = constraints.max_old_space_size(); - int max_executable_size = constraints.max_executable_size(); size_t code_range_size = constraints.code_range_size(); size_t max_pool_size = constraints.max_zone_pool_size(); - if (semi_space_size != 0 || old_space_size != 0 || - max_executable_size != 0 || code_range_size != 0) { + if (semi_space_size != 0 || old_space_size != 0 || code_range_size != 0) { isolate->heap()->ConfigureHeap(semi_space_size, old_space_size, - max_executable_size, code_range_size); + code_range_size); } isolate->allocator()->ConfigureSegmentPool(max_pool_size); @@ -1015,10 +1058,7 @@ HandleScope::~HandleScope() { i::HandleScope::CloseScope(isolate_, prev_next_, prev_limit_); } -V8_NORETURN void* HandleScope::operator new(size_t) { - base::OS::Abort(); - abort(); -} +void* HandleScope::operator new(size_t) { base::OS::Abort(); } void HandleScope::operator delete(void*, size_t) { base::OS::Abort(); } @@ -1059,10 +1099,7 @@ i::Object** EscapableHandleScope::Escape(i::Object** escape_value) { return escape_slot_; } -V8_NORETURN void* EscapableHandleScope::operator new(size_t) { - base::OS::Abort(); - abort(); -} +void* EscapableHandleScope::operator new(size_t) { base::OS::Abort(); } void EscapableHandleScope::operator delete(void*, size_t) { base::OS::Abort(); } @@ -1084,10 +1121,7 @@ SealHandleScope::~SealHandleScope() { current->sealed_level = prev_sealed_level_; } -V8_NORETURN void* SealHandleScope::operator new(size_t) { - base::OS::Abort(); - abort(); -} +void* SealHandleScope::operator new(size_t) { base::OS::Abort(); } void SealHandleScope::operator delete(void*, size_t) { base::OS::Abort(); } @@ -1396,7 +1430,7 @@ void FunctionTemplate::SetCallHandler(FunctionCallback callback, ENTER_V8_NO_SCRIPT_NO_EXCEPTION(isolate); i::HandleScope scope(isolate); i::Handle struct_obj = - isolate->factory()->NewStruct(i::CALL_HANDLER_INFO_TYPE); + isolate->factory()->NewStruct(i::TUPLE2_TYPE); i::Handle obj = i::Handle::cast(struct_obj); SET_FIELD_WRAPPED(obj, set_callback, callback); @@ -1853,7 +1887,7 @@ void ObjectTemplate::SetCallAsFunctionHandler(FunctionCallback callback, auto cons = EnsureConstructor(isolate, this); EnsureNotInstantiated(cons, "v8::ObjectTemplate::SetCallAsFunctionHandler"); i::Handle struct_obj = - isolate->factory()->NewStruct(i::CALL_HANDLER_INFO_TYPE); + isolate->factory()->NewStruct(i::TUPLE2_TYPE); i::Handle obj = i::Handle::cast(struct_obj); SET_FIELD_WRAPPED(obj, set_callback, callback); @@ -2478,6 +2512,7 @@ MaybeLocal + + +
+

+ +

+

+ +

+

+ +

+

+ +

+
+ + diff --git a/deps/v8/tools/link_clicker.extension/popup.js b/deps/v8/tools/link_clicker.extension/popup.js new file mode 100644 index 00000000000000..865a9480eb20b8 --- /dev/null +++ b/deps/v8/tools/link_clicker.extension/popup.js @@ -0,0 +1,53 @@ +// Copyright 2017 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 $(id) { + return document.querySelector(id); +} + +// =========================================================================== +document.addEventListener('DOMContentLoaded', function () { + installFormChangeHandler() +}); + + +function installFormChangeHandler() { + initForm(); + let inputs = document.getElementsByTagName("input"); + for (let i = 0; i < inputs.length; i++){ + inputs[i].onchange = onFormChange; + } +} + +function initForm() { + chrome.runtime.sendMessage({type:'get'}, function(response) { + updateFromMessage(response); + }); +} +// =========================================================================== + +function updateFromMessage(msg) { + $("#minInterval").value = msg.minInterval; + $("#maxInterval").value = msg.maxInterval; + $("#pattern").value = msg.pattern; + $("#enabled").checked = msg.enabled; + $("#minIntervalValue").innerText = msg.minInterval+"ms"; + $("#maxIntervalValue").innerText = msg.maxInterval+"ms"; +} + +function onFormChange() { + let minInterval = $("#minInterval").value; + let maxInterval = $("#maxInterval").value; + + let message = { + type: 'update', + minInterval: minInterval, + maxInterval: maxInterval, + pattern: $("#pattern").value, + enabled: $("#enabled").checked + } + chrome.runtime.sendMessage(message, function(response) { + updateFromMessage(response); + }); +} diff --git a/deps/v8/tools/luci-go/linux64/isolate.sha1 b/deps/v8/tools/luci-go/linux64/isolate.sha1 index b8593a765bd18c..f14d0ea76cc8f3 100644 --- a/deps/v8/tools/luci-go/linux64/isolate.sha1 +++ b/deps/v8/tools/luci-go/linux64/isolate.sha1 @@ -1 +1 @@ -3c0fbcab83730c86bbd5a09e760388dcb7053bc4 +bcc0e73f051cc01452c24babbb4be9d5f4556c55 diff --git a/deps/v8/tools/luci-go/mac64/isolate.sha1 b/deps/v8/tools/luci-go/mac64/isolate.sha1 index bf7e1c1dd579ff..750697414370ca 100644 --- a/deps/v8/tools/luci-go/mac64/isolate.sha1 +++ b/deps/v8/tools/luci-go/mac64/isolate.sha1 @@ -1 +1 @@ -d37a2f34eff58e1fb04038bd52381001479d4aa1 +47ffac85c87dd0a2cfd6c4ded9c29c5bbcc8245d diff --git a/deps/v8/tools/luci-go/win64/isolate.exe.sha1 b/deps/v8/tools/luci-go/win64/isolate.exe.sha1 index c575f97042c4a1..9dccf311b2ba54 100644 --- a/deps/v8/tools/luci-go/win64/isolate.exe.sha1 +++ b/deps/v8/tools/luci-go/win64/isolate.exe.sha1 @@ -1 +1 @@ -d4b894493b1ee5c04ec5bc88e6ea286426540770 +1ed79378fe41640a963f1aa6d1674e8456993d10 diff --git a/deps/v8/tools/memory/lsan/suppressions.txt b/deps/v8/tools/memory/lsan/suppressions.txt index 36e59ecd5108b8..f5c73935bebba4 100644 --- a/deps/v8/tools/memory/lsan/suppressions.txt +++ b/deps/v8/tools/memory/lsan/suppressions.txt @@ -14,6 +14,3 @@ leak:v8::internal::compiler::JumpThreading::ApplyForwarding # mjsunit leak:v8::internal::FuncNameInferrer::FuncNameInferrer leak:v8::internal::JSArrayBuffer::SetupAllocatingData - -# unittests -leak:v8::internal::Isolate::FindOrAllocatePerThreadDataForThisThread diff --git a/deps/v8/tools/perf_tests/chromium_revision b/deps/v8/tools/perf_tests/chromium_revision deleted file mode 100644 index 0cdcc110f84c13..00000000000000 --- a/deps/v8/tools/perf_tests/chromium_revision +++ /dev/null @@ -1 +0,0 @@ -210122 diff --git a/deps/v8/tools/plot-timer-events b/deps/v8/tools/plot-timer-events index da2e823c14df61..b65937cfe6dd28 100755 --- a/deps/v8/tools/plot-timer-events +++ b/deps/v8/tools/plot-timer-events @@ -51,7 +51,7 @@ if test "$contains" -eq 0; then calibration_log=calibration.log calibration_script="for (var i = 0; i < 1000000; i++) print();" - $d8_exec --nocrankshaft --prof --logfile $calibration_log \ + $d8_exec --noopt --prof --logfile $calibration_log \ --log-timer-events -e "$calibration_script" > /dev/null t_1_start=`grep "timer-event-start,\"V8.Execute\"" $calibration_log \ | tail -n1 | awk -F, '{print $3}'` @@ -59,7 +59,7 @@ if test "$contains" -eq 0; then | tail -n1 | awk -F, '{print $3}'` n_1=`grep "timer-event\|tick" $calibration_log | wc -l` - $d8_exec --nocrankshaft --prof --logfile $calibration_log \ + $d8_exec --noopt --prof --logfile $calibration_log \ --log-internal-timer-events -e "$calibration_script" > /dev/null t_2_start=`grep "timer-event-start,\"V8.Execute\"" $calibration_log \ | tail -n1 | awk -F, '{print $3}'` diff --git a/deps/v8/tools/presubmit.py b/deps/v8/tools/presubmit.py index c6561476f9472f..c95936037b2260 100755 --- a/deps/v8/tools/presubmit.py +++ b/deps/v8/tools/presubmit.py @@ -70,7 +70,7 @@ LINT_OUTPUT_PATTERN = re.compile(r'^.+[:(]\d+[:)]|^Done processing') FLAGS_LINE = re.compile("//\s*Flags:.*--([A-z0-9-])+_[A-z0-9].*\n") ASSERT_OPTIMIZED_PATTERN = re.compile("assertOptimized") -FLAGS_ENABLE_OPT = re.compile("//\s*Flags:.*--(crankshaft|turbo)[^-].*\n") +FLAGS_ENABLE_OPT = re.compile("//\s*Flags:.*--(opt|turbo)[^-].*\n") ASSERT_UNOPTIMIZED_PATTERN = re.compile("assertUnoptimized") FLAGS_NO_ALWAYS_OPT = re.compile("//\s*Flags:.*--no-?always-opt.*\n") @@ -193,7 +193,7 @@ def RunOnFiles(self, files): def IgnoreDir(self, name): return (name.startswith('.') or name in ('buildtools', 'data', 'gmock', 'gtest', 'kraken', - 'octane', 'sunspider')) + 'octane', 'sunspider', 'traces-arm64')) def IgnoreFile(self, name): return name.startswith('.') @@ -221,7 +221,7 @@ def IgnoreDir(self, name): return (super(CppLintProcessor, self).IgnoreDir(name) or (name == 'third_party')) - IGNORE_LINT = ['flag-definitions.h'] + IGNORE_LINT = ['export-template.h', 'flag-definitions.h'] def IgnoreFile(self, name): return (super(CppLintProcessor, self).IgnoreFile(name) @@ -413,7 +413,7 @@ def ProcessContents(self, name, contents): if not "mjsunit/mjsunit.js" in name: if ASSERT_OPTIMIZED_PATTERN.search(contents) and \ not FLAGS_ENABLE_OPT.search(contents): - print "%s Flag --crankshaft or --turbo should be set " \ + print "%s Flag --opt or --turbo should be set " \ "if assertOptimized() is used" % name result = False if ASSERT_UNOPTIMIZED_PATTERN.search(contents) and \ diff --git a/deps/v8/tools/profile.js b/deps/v8/tools/profile.js index de9c42c5b1100c..21d9d22a5e3658 100644 --- a/deps/v8/tools/profile.js +++ b/deps/v8/tools/profile.js @@ -508,12 +508,19 @@ Profile.DynamicFuncCodeEntry = function(size, type, func, state) { Profile.DynamicFuncCodeEntry.STATE_PREFIX = ["", "~", "*"]; +/** + * Returns state. + */ +Profile.DynamicFuncCodeEntry.prototype.getState = function() { + return Profile.DynamicFuncCodeEntry.STATE_PREFIX[this.state]; +}; + /** * Returns node name. */ Profile.DynamicFuncCodeEntry.prototype.getName = function() { var name = this.func.getName(); - return this.type + ': ' + Profile.DynamicFuncCodeEntry.STATE_PREFIX[this.state] + name; + return this.type + ': ' + this.getState() + name; }; diff --git a/deps/v8/tools/release/git_recipes.py b/deps/v8/tools/release/git_recipes.py index e688ecb95353c4..ce65b973ac3f92 100644 --- a/deps/v8/tools/release/git_recipes.py +++ b/deps/v8/tools/release/git_recipes.py @@ -32,7 +32,7 @@ ROLL_DEPS_GIT_SVN_ID_RE = re.compile('^git-svn-id: .*@([0-9]+) .*$') # Regular expression that matches a single commit footer line. -COMMIT_FOOTER_ENTRY_RE = re.compile(r'([^:]+):\s+(.+)') +COMMIT_FOOTER_ENTRY_RE = re.compile(r'([^:]+):\s*(.*)') # Footer metadata key for commit position. COMMIT_POSITION_FOOTER_KEY = 'Cr-Commit-Position' @@ -67,9 +67,9 @@ def GetCommitMessageFooterMap(message): for line in lines: m = COMMIT_FOOTER_ENTRY_RE.match(line) if not m: - # If any single line isn't valid, the entire footer is invalid. - footers.clear() - return footers + # If any single line isn't valid, continue anyway for compatibility with + # Gerrit (which itself uses JGit for this). + continue footers[m.group(1)] = m.group(2).strip() return footers diff --git a/deps/v8/tools/release/update_node.py b/deps/v8/tools/release/update_node.py index e05f71234da4e3..de6bb06838b722 100755 --- a/deps/v8/tools/release/update_node.py +++ b/deps/v8/tools/release/update_node.py @@ -3,6 +3,26 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +""" +Use this script to update V8 in a Node.js checkout. + +Requirements: + - Node.js checkout in which V8 should be updated. + - V8 checkout at the commit to which Node.js should be updated. + +Usage: + $ update_node.py + + This will synchronize the content of /deps/v8 with , + and a few V8 dependencies require in Node.js. It will also update .gitignore + appropriately. + +Optional flags: + --gclient Run `gclient sync` on the V8 checkout before updating. + --commit Create commit with the updated V8 in the Node.js checkout. + --with-patch Also include currently staged files in the V8 checkout. +""" + import argparse import os import shutil @@ -52,7 +72,8 @@ def CommitPatch(options): """ print ">> Comitting patch" subprocess.check_call( - ["git", "commit", "--allow-empty", "-m", "placeholder-commit"], + ["git", "-c", "user.name=fake", "-c", "user.email=fake@chromium.org", + "commit", "--allow-empty", "-m", "placeholder-commit"], cwd=options.v8_path, ) diff --git a/deps/v8/tools/run-tests.py b/deps/v8/tools/run-tests.py index 0b1675b75e6ced..7a9e90cd5e278b 100755 --- a/deps/v8/tools/run-tests.py +++ b/deps/v8/tools/run-tests.py @@ -68,8 +68,10 @@ "debugger", "mjsunit", "cctest", + "wasm-spec-tests", "inspector", "webkit", + "mkgrokdump", "fuzzer", "message", "preparser", @@ -81,7 +83,9 @@ "debugger", "mjsunit", "cctest", + "wasm-spec-tests", "inspector", + "mkgrokdump", "fuzzer", "message", "preparser", @@ -265,7 +269,7 @@ def BuildOptions(): default=False, action="store_true") result.add_option("--extra-flags", help="Additional flags to pass to each test command", - default="") + action="append", default=[]) result.add_option("--isolates", help="Whether to test isolates", default=False, action="store_true") result.add_option("-j", help="The number of parallel tasks to run", @@ -419,6 +423,7 @@ def SetupEnvironment(options): 'coverage=1', 'coverage_dir=%s' % options.sancov_dir, symbolizer, + "allow_user_segv_handler=1", ]) if options.cfi_vptr: @@ -532,7 +537,7 @@ def ProcessOptions(options): "running tests locally.") options.no_network = True options.command_prefix = shlex.split(options.command_prefix) - options.extra_flags = shlex.split(options.extra_flags) + options.extra_flags = sum(map(shlex.split, options.extra_flags), []) if options.gc_stress: options.extra_flags += GC_STRESS_FLAGS @@ -781,8 +786,8 @@ def Execute(arch, mode, args, options, suites): # target_arch != v8_target_arch in the dumped build config. simulator_run = not options.dont_skip_simulator_slow_tests and \ arch in ['arm64', 'arm', 'mipsel', 'mips', 'mips64', 'mips64el', \ - 'ppc', 'ppc64'] and \ - ARCH_GUESS and arch != ARCH_GUESS + 'ppc', 'ppc64', 's390', 's390x'] and \ + bool(ARCH_GUESS) and arch != ARCH_GUESS # Find available test suites and read test cases from them. variables = { "arch": arch, diff --git a/deps/v8/tools/run_perf.py b/deps/v8/tools/run_perf.py index 59669c6bbcacd0..e6ec9cb38bc636 100755 --- a/deps/v8/tools/run_perf.py +++ b/deps/v8/tools/run_perf.py @@ -1000,6 +1000,12 @@ def Main(args): "'powersave' for more stable results, or 'performance' " "for shorter completion time of suite, with potentially " "more noise in results.") + parser.add_option("--filter", + help="Only run the benchmarks beginning with this string. " + "For example: " + "--filter=JSTests/TypedArrays/ will run only TypedArray " + "benchmarks from the JSTests suite.", + default="") (options, args) = parser.parse_args(args) @@ -1092,9 +1098,12 @@ def Main(args): def NodeCB(node): platform.PreTests(node, path) - # Traverse graph/trace tree and interate over all runnables. + # Traverse graph/trace tree and iterate over all runnables. for runnable in FlattenRunnables(root, NodeCB): - print ">>> Running suite: %s" % "/".join(runnable.graphs) + runnable_name = "/".join(runnable.graphs) + if not runnable_name.startswith(options.filter): + continue + print ">>> Running suite: %s" % runnable_name def Runner(): """Output generator that reruns several times.""" diff --git a/deps/v8/tools/testrunner/local/execution.py b/deps/v8/tools/testrunner/local/execution.py index d5b519aadbdc50..dc55129a1477bf 100644 --- a/deps/v8/tools/testrunner/local/execution.py +++ b/deps/v8/tools/testrunner/local/execution.py @@ -62,17 +62,18 @@ def __init__(self, command, test_id, timeout, verbose, env): "process_context", ["suites", "context"]) -def MakeProcessContext(context): +def MakeProcessContext(context, suite_names): """Generate a process-local context. This reloads all suites per process and stores the global context. Args: context: The global context from the test runner. + suite_names (list of str): Suite names as loaded by the parent process. + Load the same suites in each subprocess. """ - suite_paths = utils.GetSuitePaths(TEST_DIR) suites = {} - for root in suite_paths: + for root in suite_names: # Don't reinitialize global state as this is concurrently called from # different processes. suite = testsuite.TestSuite.LoadTestSuite( @@ -198,7 +199,8 @@ def __init__(self, suites, progress_indicator, context): self.perfdata = self.perf_data_manager.GetStore(context.arch, context.mode) self.perf_failures = False self.printed_allocations = False - self.tests = [ t for s in suites for t in s.tests ] + self.tests = [t for s in suites for t in s.tests] + self.suite_names = [s.name for s in suites] # Always pre-sort by status file, slowest tests first. slow_key = lambda t: statusfile.IsSlow(t.outcomes) @@ -353,7 +355,7 @@ def gen_tests(): fn=RunTest, gen=gen_tests(), process_context_fn=MakeProcessContext, - process_context_args=[self.context], + process_context_args=[self.context, self.suite_names], ) for result in it: if result.heartbeat: diff --git a/deps/v8/tools/testrunner/local/testsuite.py b/deps/v8/tools/testrunner/local/testsuite.py index f7fa19b20a0b5c..68f39d6b4a6cf0 100644 --- a/deps/v8/tools/testrunner/local/testsuite.py +++ b/deps/v8/tools/testrunner/local/testsuite.py @@ -71,7 +71,7 @@ def LoadTestSuite(root, global_init=True): f = None try: (f, pathname, description) = imp.find_module("testcfg", [root]) - module = imp.load_module("testcfg", f, pathname, description) + module = imp.load_module(name + "_testcfg", f, pathname, description) return module.GetSuite(name, root) except ImportError: # Use default if no testcfg is present. diff --git a/deps/v8/tools/testrunner/local/variants.py b/deps/v8/tools/testrunner/local/variants.py index 2ad00cff2ab154..0dba0d9579eff4 100644 --- a/deps/v8/tools/testrunner/local/variants.py +++ b/deps/v8/tools/testrunner/local/variants.py @@ -10,11 +10,12 @@ "turbofan_opt": [["--turbo", "--always-opt"]], "noturbofan": [["--no-turbo"]], "noturbofan_stress": [["--no-turbo", "--stress-opt", "--always-opt"]], - "fullcode": [["--nocrankshaft", "--no-turbo"]], - # No optimization actually means no profile guided optimization - - # %OptimizeFunctionOnNextCall still works. - "nooptimization": [["--nocrankshaft"]], - "asm_wasm": [["--validate-asm", "--fast-validate-asm", "--stress-validate-asm", "--suppress-asm-messages"]], + "fullcode": [["--noopt", "--no-turbo"]], + # No optimization means disable all optimizations. OptimizeFunctionOnNextCall + # would not force optimization too. It turns into a Nop. Please see + # https://chromium-review.googlesource.com/c/452620/ for more discussion. + "nooptimization": [["--noopt"]], + "asm_wasm": [["--validate-asm", "--stress-validate-asm", "--suppress-asm-messages"]], "wasm_traps": [["--wasm_guard_pages", "--wasm_trap_handler", "--invoke-weak-callbacks"]], } @@ -25,11 +26,12 @@ "turbofan": [["--turbo"]], "noturbofan": [["--no-turbo"]], "noturbofan_stress": [["--no-turbo", "--stress-opt"]], - "fullcode": [["--nocrankshaft", "--no-turbo"]], - # No optimization actually means no profile guided optimization - - # %OptimizeFunctionOnNextCall still works. - "nooptimization": [["--nocrankshaft"]], - "asm_wasm": [["--validate-asm", "--fast-validate-asm", "--stress-validate-asm", "--suppress-asm-messages"]], + "fullcode": [["--noopt", "--no-turbo"]], + # No optimization means disable all optimizations. OptimizeFunctionOnNextCall + # would not force optimization too. It turns into a Nop. Please see + # https://chromium-review.googlesource.com/c/452620/ for more discussion. + "nooptimization": [["--noopt"]], + "asm_wasm": [["--validate-asm", "--stress-validate-asm", "--suppress-asm-messages"]], "wasm_traps": [["--wasm_guard_pages", "--wasm_trap_handler", "--invoke-weak-callbacks"]], } diff --git a/deps/v8/tools/testrunner/testrunner.isolate b/deps/v8/tools/testrunner/testrunner.isolate index bfc9318adfbeaf..545d888871b87b 100644 --- a/deps/v8/tools/testrunner/testrunner.isolate +++ b/deps/v8/tools/testrunner/testrunner.isolate @@ -12,7 +12,7 @@ ], }, 'conditions': [ - ['coverage==1 and sanitizer_coverage=="bb"', { + ['coverage==1 and sanitizer_coverage=="bb,trace-pc-guard"', { 'variables': { 'files': [ '../sanitizers/sancov_merger.py', diff --git a/deps/v8/tools/try_perf.py b/deps/v8/tools/try_perf.py index b9dac9ca3f2301..98d3b067e1f7fa 100755 --- a/deps/v8/tools/try_perf.py +++ b/deps/v8/tools/try_perf.py @@ -91,7 +91,7 @@ def main(): # Ensure depot_tools are updated. subprocess.check_output( - 'gclient', shell=True, stderr=subprocess.STDOUT, cwd=V8_BASE) + 'update_depot_tools', shell=True, stderr=subprocess.STDOUT, cwd=V8_BASE) cmd = ['git cl try -m internal.client.v8'] cmd += ['-b %s' % bot for bot in options.bots] diff --git a/deps/v8/tools/turbolizer/disassembly-view.js b/deps/v8/tools/turbolizer/disassembly-view.js index a2a534cd7f22bc..ecee04988cc820 100644 --- a/deps/v8/tools/turbolizer/disassembly-view.js +++ b/deps/v8/tools/turbolizer/disassembly-view.js @@ -87,7 +87,7 @@ class DisassemblyView extends TextView { [/^.*/, UNCLASSIFIED_STYLE, -1] ], [ - [/^\s+\d+\s+[0-9a-f]+\s+/, NUMBER_STYLE, 2], + [/^\s+[0-9a-f]+\s+[0-9a-f]+\s+/, NUMBER_STYLE, 2], [/^.*/, null, -1] ], [ diff --git a/deps/v8/tools/v8-info.sh b/deps/v8/tools/v8-info.sh deleted file mode 100755 index 838d92a0011f3b..00000000000000 --- a/deps/v8/tools/v8-info.sh +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/bash -# 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. - - -########## Global variable definitions - -BASE_URL="https://code.google.com/p/v8/source/list" -VERSION="include/v8-version.h" -MAJOR="V8_MAJOR_VERSION" -MINOR="V8_MINOR_VERSION" -BUILD="V8_BUILD_NUMBER" -PATCH="V8_PATCH_LEVEL" - -V8="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" - -########## Function definitions - -cd $V8 - -usage() { -cat << EOF -usage: $0 OPTIONS - -Fetches V8 revision information from a git-svn checkout. - -OPTIONS: - -h Show this message. - - -i Print revision info for all branches matching the V8 version. - Example usage: $0 -i 3.19.10$ - Output format: [Git hash] [SVN revision] [V8 version] - - -v Print the V8 version tag for a trunk SVN revision. - Example usage: $0 -v 14981 - Output format: [V8 version] - - -m Print all patches that were merged to the specified V8 branch. - Example usage: $0 -m 3.18 - Output format: [V8 version] [SVN revision] [SVN patch merged]*. - - -p Print all patches merged to a specific V8 point-release. - Example usage: $0 -p 3.19.12.1 - Output format: [SVN patch merged]* - - -u Print a link to all SVN revisions between two V8 revision tags. - Example usage: $0 -u 3.19.10:3.19.11 -EOF -} - -tags() { - git for-each-ref --format="%(objectname) %(refname:short)" refs/remotes/svn -} - -tag_revision() { - cut -d" " -f1 -} - -tag_log() { - git log --format="%h %ci %ce %s" -1 $1 -} - -v8_hash() { - tags | grep "svn/tags/$1$" | tag_revision -} - -point_merges() { - echo $1 | grep -o "r[0-9]\+" -} - -hash_to_svn() { - git svn log -1 --oneline $1 | cut -d" " -f1 -} - -tag_version() { - tags | grep svn/tags/$1 | while read tag; do - id=$(echo $tag | grep -o "[^/]*$") - rev=$(echo $tag | tag_revision) - svn=$(hash_to_svn $rev) - echo $rev $svn $id - done -} - -svn_rev() { - git svn find-rev $2 svn/$1 -} - -v8_rev() { - cd $(git rev-parse --show-toplevel) - rev=$(git show $1:$VERSION \ - | grep "#define" \ - | grep "$MAJOR\|$MINOR\|$BUILD\|$PATCH" \ - | grep -o "[0-9]\+$" \ - | tr "\\n" ".") - echo ${rev%?} -} - -merges_to_branch() { - git cherry -v svn/trunk svn/$1 | while read merge; do - h=$(echo $merge | cut -d" " -f2) - svn=$(svn_rev $1 $h) - merges=$(echo $merge | grep -o "r[0-9]\+") - rev=$(v8_rev $h) - echo $rev r$svn $merges - done -} - -url_for() { - first=$(svn_rev trunk $(v8_hash $(echo $1 | cut -d":" -f1))) - last=$(svn_rev trunk $(v8_hash $(echo $1 | cut -d":" -f2))) - num=$[ $last - $first] - echo "$BASE_URL?num=$num&start=$last" -} - -########## Option parsing - -while getopts ":hi:v:m:p:u:" OPTION ; do - case $OPTION in - h) usage - exit 0 - ;; - i) tag_version $OPTARG - ;; - v) v8_rev $(svn_rev trunk r$OPTARG) - ;; - m) merges_to_branch $OPTARG - ;; - p) echo $(point_merges "$(tag_log $(v8_hash $OPTARG)^1)") - ;; - u) url_for $OPTARG - ;; - ?) echo "Illegal option: -$OPTARG" - usage - exit 1 - ;; - esac -done diff --git a/deps/v8/tools/v8heapconst.py b/deps/v8/tools/v8heapconst.py index d43291abe82709..d2d6ae9266ca1d 100644 --- a/deps/v8/tools/v8heapconst.py +++ b/deps/v8/tools/v8heapconst.py @@ -2,6 +2,9 @@ # Use of this source code is governed by a BSD-style license that can # be found in the LICENSE file. +# This file is automatically generated by mkgrokdump and should not +# be modified manually. + # List of known V8 instance types. INSTANCE_TYPES = { 0: "INTERNALIZED_STRING_TYPE", @@ -51,97 +54,100 @@ 150: "ACCESSOR_PAIR_TYPE", 151: "ACCESS_CHECK_INFO_TYPE", 152: "INTERCEPTOR_INFO_TYPE", - 153: "CALL_HANDLER_INFO_TYPE", - 154: "FUNCTION_TEMPLATE_INFO_TYPE", - 155: "OBJECT_TEMPLATE_INFO_TYPE", - 156: "ALLOCATION_SITE_TYPE", - 157: "ALLOCATION_MEMENTO_TYPE", - 158: "SCRIPT_TYPE", - 159: "TYPE_FEEDBACK_INFO_TYPE", - 160: "ALIASED_ARGUMENTS_ENTRY_TYPE", - 161: "PROMISE_RESOLVE_THENABLE_JOB_INFO_TYPE", - 162: "PROMISE_REACTION_JOB_INFO_TYPE", - 163: "DEBUG_INFO_TYPE", - 164: "BREAK_POINT_INFO_TYPE", - 165: "PROTOTYPE_INFO_TYPE", - 166: "TUPLE2_TYPE", - 167: "TUPLE3_TYPE", - 168: "CONTEXT_EXTENSION_TYPE", - 169: "CONSTANT_ELEMENTS_PAIR_TYPE", - 170: "MODULE_TYPE", - 171: "MODULE_INFO_ENTRY_TYPE", - 172: "FIXED_ARRAY_TYPE", - 173: "TRANSITION_ARRAY_TYPE", - 174: "SHARED_FUNCTION_INFO_TYPE", - 175: "CELL_TYPE", - 176: "WEAK_CELL_TYPE", - 177: "PROPERTY_CELL_TYPE", - 178: "JS_PROXY_TYPE", - 179: "JS_GLOBAL_OBJECT_TYPE", - 180: "JS_GLOBAL_PROXY_TYPE", - 181: "JS_SPECIAL_API_OBJECT_TYPE", - 182: "JS_VALUE_TYPE", - 183: "JS_MESSAGE_OBJECT_TYPE", - 184: "JS_DATE_TYPE", - 185: "JS_API_OBJECT_TYPE", - 186: "JS_OBJECT_TYPE", - 187: "JS_ARGUMENTS_TYPE", - 188: "JS_CONTEXT_EXTENSION_OBJECT_TYPE", - 189: "JS_GENERATOR_OBJECT_TYPE", - 190: "JS_MODULE_NAMESPACE_TYPE", - 191: "JS_ARRAY_TYPE", - 192: "JS_ARRAY_BUFFER_TYPE", - 193: "JS_TYPED_ARRAY_TYPE", - 194: "JS_DATA_VIEW_TYPE", - 195: "JS_SET_TYPE", - 196: "JS_MAP_TYPE", - 197: "JS_SET_ITERATOR_TYPE", - 198: "JS_MAP_ITERATOR_TYPE", - 199: "JS_WEAK_MAP_TYPE", - 200: "JS_WEAK_SET_TYPE", - 201: "JS_PROMISE_CAPABILITY_TYPE", - 202: "JS_PROMISE_TYPE", - 203: "JS_REGEXP_TYPE", - 204: "JS_ERROR_TYPE", - 205: "JS_ASYNC_FROM_SYNC_ITERATOR_TYPE", - 206: "JS_STRING_ITERATOR_TYPE", - 207: "JS_TYPED_ARRAY_KEY_ITERATOR_TYPE", - 208: "JS_FAST_ARRAY_KEY_ITERATOR_TYPE", - 209: "JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE", - 210: "JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 211: "JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 212: "JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 213: "JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 214: "JS_UINT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 215: "JS_INT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 216: "JS_FLOAT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 217: "JS_FLOAT64_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 218: "JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 219: "JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 220: "JS_FAST_HOLEY_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 221: "JS_FAST_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 222: "JS_FAST_HOLEY_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 223: "JS_FAST_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 224: "JS_FAST_HOLEY_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 225: "JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 226: "JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE", - 227: "JS_INT8_ARRAY_VALUE_ITERATOR_TYPE", - 228: "JS_UINT16_ARRAY_VALUE_ITERATOR_TYPE", - 229: "JS_INT16_ARRAY_VALUE_ITERATOR_TYPE", - 230: "JS_UINT32_ARRAY_VALUE_ITERATOR_TYPE", - 231: "JS_INT32_ARRAY_VALUE_ITERATOR_TYPE", - 232: "JS_FLOAT32_ARRAY_VALUE_ITERATOR_TYPE", - 233: "JS_FLOAT64_ARRAY_VALUE_ITERATOR_TYPE", - 234: "JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE", - 235: "JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE", - 236: "JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE", - 237: "JS_FAST_ARRAY_VALUE_ITERATOR_TYPE", - 238: "JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE", - 239: "JS_FAST_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE", - 240: "JS_FAST_HOLEY_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE", - 241: "JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE", - 242: "JS_BOUND_FUNCTION_TYPE", - 243: "JS_FUNCTION_TYPE", + 153: "FUNCTION_TEMPLATE_INFO_TYPE", + 154: "OBJECT_TEMPLATE_INFO_TYPE", + 155: "ALLOCATION_SITE_TYPE", + 156: "ALLOCATION_MEMENTO_TYPE", + 157: "SCRIPT_TYPE", + 158: "ALIASED_ARGUMENTS_ENTRY_TYPE", + 159: "PROMISE_RESOLVE_THENABLE_JOB_INFO_TYPE", + 160: "PROMISE_REACTION_JOB_INFO_TYPE", + 161: "DEBUG_INFO_TYPE", + 162: "STACK_FRAME_INFO_TYPE", + 163: "PROTOTYPE_INFO_TYPE", + 164: "TUPLE2_TYPE", + 165: "TUPLE3_TYPE", + 166: "CONTEXT_EXTENSION_TYPE", + 167: "MODULE_TYPE", + 168: "MODULE_INFO_ENTRY_TYPE", + 169: "ASYNC_GENERATOR_REQUEST_TYPE", + 170: "FIXED_ARRAY_TYPE", + 171: "TRANSITION_ARRAY_TYPE", + 172: "SHARED_FUNCTION_INFO_TYPE", + 173: "CELL_TYPE", + 174: "WEAK_CELL_TYPE", + 175: "PROPERTY_CELL_TYPE", + 176: "PADDING_TYPE_1", + 177: "PADDING_TYPE_2", + 178: "PADDING_TYPE_3", + 179: "PADDING_TYPE_4", + 180: "JS_PROXY_TYPE", + 181: "JS_GLOBAL_OBJECT_TYPE", + 182: "JS_GLOBAL_PROXY_TYPE", + 183: "JS_SPECIAL_API_OBJECT_TYPE", + 184: "JS_VALUE_TYPE", + 185: "JS_MESSAGE_OBJECT_TYPE", + 186: "JS_DATE_TYPE", + 187: "JS_API_OBJECT_TYPE", + 188: "JS_OBJECT_TYPE", + 189: "JS_ARGUMENTS_TYPE", + 190: "JS_CONTEXT_EXTENSION_OBJECT_TYPE", + 191: "JS_GENERATOR_OBJECT_TYPE", + 192: "JS_ASYNC_GENERATOR_OBJECT_TYPE", + 193: "JS_MODULE_NAMESPACE_TYPE", + 194: "JS_ARRAY_TYPE", + 195: "JS_ARRAY_BUFFER_TYPE", + 196: "JS_TYPED_ARRAY_TYPE", + 197: "JS_DATA_VIEW_TYPE", + 198: "JS_SET_TYPE", + 199: "JS_MAP_TYPE", + 200: "JS_SET_ITERATOR_TYPE", + 201: "JS_MAP_ITERATOR_TYPE", + 202: "JS_WEAK_MAP_TYPE", + 203: "JS_WEAK_SET_TYPE", + 204: "JS_PROMISE_CAPABILITY_TYPE", + 205: "JS_PROMISE_TYPE", + 206: "JS_REGEXP_TYPE", + 207: "JS_ERROR_TYPE", + 208: "JS_ASYNC_FROM_SYNC_ITERATOR_TYPE", + 209: "JS_STRING_ITERATOR_TYPE", + 210: "JS_TYPED_ARRAY_KEY_ITERATOR_TYPE", + 211: "JS_FAST_ARRAY_KEY_ITERATOR_TYPE", + 212: "JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE", + 213: "JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 214: "JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 215: "JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 216: "JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 217: "JS_UINT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 218: "JS_INT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 219: "JS_FLOAT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 220: "JS_FLOAT64_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 221: "JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 222: "JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 223: "JS_FAST_HOLEY_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 224: "JS_FAST_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 225: "JS_FAST_HOLEY_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 226: "JS_FAST_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 227: "JS_FAST_HOLEY_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 228: "JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE", + 229: "JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE", + 230: "JS_INT8_ARRAY_VALUE_ITERATOR_TYPE", + 231: "JS_UINT16_ARRAY_VALUE_ITERATOR_TYPE", + 232: "JS_INT16_ARRAY_VALUE_ITERATOR_TYPE", + 233: "JS_UINT32_ARRAY_VALUE_ITERATOR_TYPE", + 234: "JS_INT32_ARRAY_VALUE_ITERATOR_TYPE", + 235: "JS_FLOAT32_ARRAY_VALUE_ITERATOR_TYPE", + 236: "JS_FLOAT64_ARRAY_VALUE_ITERATOR_TYPE", + 237: "JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE", + 238: "JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE", + 239: "JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE", + 240: "JS_FAST_ARRAY_VALUE_ITERATOR_TYPE", + 241: "JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE", + 242: "JS_FAST_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE", + 243: "JS_FAST_HOLEY_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE", + 244: "JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE", + 245: "JS_BOUND_FUNCTION_TYPE", + 246: "JS_FUNCTION_TYPE", } # List of known V8 maps. @@ -149,7 +155,7 @@ 0x02201: (137, "FreeSpaceMap"), 0x02259: (131, "MetaMap"), 0x022b1: (130, "NullMap"), - 0x02309: (172, "FixedArrayMap"), + 0x02309: (170, "FixedArrayMap"), 0x02361: (8, "OneByteInternalizedStringMap"), 0x023b9: (148, "OnePointerFillerMap"), 0x02411: (148, "TwoPointerFillerMap"), @@ -159,100 +165,98 @@ 0x02571: (130, "TheHoleMap"), 0x025c9: (130, "BooleanMap"), 0x02621: (135, "ByteArrayMap"), - 0x02679: (172, "FixedCOWArrayMap"), - 0x026d1: (172, "HashTableMap"), + 0x02679: (170, "FixedCOWArrayMap"), + 0x026d1: (170, "HashTableMap"), 0x02729: (128, "SymbolMap"), 0x02781: (72, "OneByteStringMap"), - 0x027d9: (172, "ScopeInfoMap"), - 0x02831: (174, "SharedFunctionInfoMap"), + 0x027d9: (170, "ScopeInfoMap"), + 0x02831: (172, "SharedFunctionInfoMap"), 0x02889: (132, "CodeMap"), - 0x028e1: (172, "FunctionContextMap"), - 0x02939: (175, "CellMap"), - 0x02991: (176, "WeakCellMap"), - 0x029e9: (177, "GlobalPropertyCellMap"), + 0x028e1: (170, "FunctionContextMap"), + 0x02939: (173, "CellMap"), + 0x02991: (174, "WeakCellMap"), + 0x029e9: (175, "GlobalPropertyCellMap"), 0x02a41: (134, "ForeignMap"), - 0x02a99: (173, "TransitionArrayMap"), + 0x02a99: (171, "TransitionArrayMap"), 0x02af1: (130, "ArgumentsMarkerMap"), - 0x02b49: (172, "NativeContextMap"), - 0x02ba1: (172, "ModuleContextMap"), - 0x02bf9: (172, "EvalContextMap"), - 0x02c51: (172, "ScriptContextMap"), - 0x02ca9: (172, "BlockContextMap"), - 0x02d01: (172, "CatchContextMap"), - 0x02d59: (172, "WithContextMap"), - 0x02db1: (147, "FixedDoubleArrayMap"), - 0x02e09: (133, "MutableHeapNumberMap"), - 0x02e61: (172, "OrderedHashTableMap"), - 0x02eb9: (172, "SloppyArgumentsElementsMap"), - 0x02f11: (183, "JSMessageObjectMap"), - 0x02f69: (136, "BytecodeArrayMap"), - 0x02fc1: (172, "ModuleInfoMap"), - 0x03019: (175, "NoClosuresCellMap"), - 0x03071: (175, "OneClosureCellMap"), - 0x030c9: (175, "ManyClosuresCellMap"), - 0x03121: (64, "StringMap"), - 0x03179: (73, "ConsOneByteStringMap"), - 0x031d1: (65, "ConsStringMap"), - 0x03229: (77, "ThinOneByteStringMap"), - 0x03281: (69, "ThinStringMap"), - 0x032d9: (67, "SlicedStringMap"), - 0x03331: (75, "SlicedOneByteStringMap"), - 0x03389: (66, "ExternalStringMap"), - 0x033e1: (82, "ExternalStringWithOneByteDataMap"), - 0x03439: (74, "ExternalOneByteStringMap"), - 0x03491: (98, "ShortExternalStringMap"), - 0x034e9: (114, "ShortExternalStringWithOneByteDataMap"), - 0x03541: (0, "InternalizedStringMap"), - 0x03599: (2, "ExternalInternalizedStringMap"), - 0x035f1: (18, "ExternalInternalizedStringWithOneByteDataMap"), - 0x03649: (10, "ExternalOneByteInternalizedStringMap"), - 0x036a1: (34, "ShortExternalInternalizedStringMap"), - 0x036f9: (50, "ShortExternalInternalizedStringWithOneByteDataMap"), - 0x03751: (42, "ShortExternalOneByteInternalizedStringMap"), - 0x037a9: (106, "ShortExternalOneByteStringMap"), - 0x03801: (172, "FeedbackVectorMap"), - 0x03859: (130, "ExceptionMap"), - 0x038b1: (130, "TerminationExceptionMap"), - 0x03909: (130, "OptimizedOutMap"), - 0x03961: (130, "StaleRegisterMap"), - 0x039b9: (172, "DebugEvaluateContextMap"), - 0x03a11: (172, "ScriptContextTableMap"), - 0x03a69: (172, "UnseededNumberDictionaryMap"), - 0x03ac1: (186, "ExternalMap"), - 0x03b19: (106, "NativeSourceStringMap"), - 0x03b71: (139, "FixedUint8ArrayMap"), - 0x03bc9: (138, "FixedInt8ArrayMap"), - 0x03c21: (141, "FixedUint16ArrayMap"), - 0x03c79: (140, "FixedInt16ArrayMap"), - 0x03cd1: (143, "FixedUint32ArrayMap"), - 0x03d29: (142, "FixedInt32ArrayMap"), - 0x03d81: (144, "FixedFloat32ArrayMap"), - 0x03dd9: (145, "FixedFloat64ArrayMap"), - 0x03e31: (146, "FixedUint8ClampedArrayMap"), - 0x03e89: (158, "ScriptMap"), + 0x02b49: (130, "ExceptionMap"), + 0x02ba1: (130, "TerminationExceptionMap"), + 0x02bf9: (130, "OptimizedOutMap"), + 0x02c51: (130, "StaleRegisterMap"), + 0x02ca9: (170, "NativeContextMap"), + 0x02d01: (170, "ModuleContextMap"), + 0x02d59: (170, "EvalContextMap"), + 0x02db1: (170, "ScriptContextMap"), + 0x02e09: (170, "BlockContextMap"), + 0x02e61: (170, "CatchContextMap"), + 0x02eb9: (170, "WithContextMap"), + 0x02f11: (147, "FixedDoubleArrayMap"), + 0x02f69: (133, "MutableHeapNumberMap"), + 0x02fc1: (170, "OrderedHashTableMap"), + 0x03019: (170, "SloppyArgumentsElementsMap"), + 0x03071: (185, "JSMessageObjectMap"), + 0x030c9: (136, "BytecodeArrayMap"), + 0x03121: (170, "ModuleInfoMap"), + 0x03179: (173, "NoClosuresCellMap"), + 0x031d1: (173, "OneClosureCellMap"), + 0x03229: (173, "ManyClosuresCellMap"), + 0x03281: (64, "StringMap"), + 0x032d9: (73, "ConsOneByteStringMap"), + 0x03331: (65, "ConsStringMap"), + 0x03389: (77, "ThinOneByteStringMap"), + 0x033e1: (69, "ThinStringMap"), + 0x03439: (67, "SlicedStringMap"), + 0x03491: (75, "SlicedOneByteStringMap"), + 0x034e9: (66, "ExternalStringMap"), + 0x03541: (82, "ExternalStringWithOneByteDataMap"), + 0x03599: (74, "ExternalOneByteStringMap"), + 0x035f1: (98, "ShortExternalStringMap"), + 0x03649: (114, "ShortExternalStringWithOneByteDataMap"), + 0x036a1: (0, "InternalizedStringMap"), + 0x036f9: (2, "ExternalInternalizedStringMap"), + 0x03751: (18, "ExternalInternalizedStringWithOneByteDataMap"), + 0x037a9: (10, "ExternalOneByteInternalizedStringMap"), + 0x03801: (34, "ShortExternalInternalizedStringMap"), + 0x03859: (50, "ShortExternalInternalizedStringWithOneByteDataMap"), + 0x038b1: (42, "ShortExternalOneByteInternalizedStringMap"), + 0x03909: (106, "ShortExternalOneByteStringMap"), + 0x03961: (139, "FixedUint8ArrayMap"), + 0x039b9: (138, "FixedInt8ArrayMap"), + 0x03a11: (141, "FixedUint16ArrayMap"), + 0x03a69: (140, "FixedInt16ArrayMap"), + 0x03ac1: (143, "FixedUint32ArrayMap"), + 0x03b19: (142, "FixedInt32ArrayMap"), + 0x03b71: (144, "FixedFloat32ArrayMap"), + 0x03bc9: (145, "FixedFloat64ArrayMap"), + 0x03c21: (146, "FixedUint8ClampedArrayMap"), + 0x03c79: (157, "ScriptMap"), + 0x03cd1: (170, "FeedbackVectorMap"), + 0x03d29: (170, "DebugEvaluateContextMap"), + 0x03d81: (170, "ScriptContextTableMap"), + 0x03dd9: (170, "UnseededNumberDictionaryMap"), + 0x03e31: (188, "ExternalMap"), + 0x03e89: (106, "NativeSourceStringMap"), 0x03ee1: (152, "InterceptorInfoMap"), - 0x03f39: (201, "JSPromiseCapabilityMap"), - 0x03f91: (149, "AccessorInfoMap"), - 0x03fe9: (150, "AccessorPairMap"), - 0x04041: (151, "AccessCheckInfoMap"), - 0x04099: (153, "CallHandlerInfoMap"), - 0x040f1: (154, "FunctionTemplateInfoMap"), - 0x04149: (155, "ObjectTemplateInfoMap"), - 0x041a1: (156, "AllocationSiteMap"), - 0x041f9: (157, "AllocationMementoMap"), - 0x04251: (159, "TypeFeedbackInfoMap"), - 0x042a9: (160, "AliasedArgumentsEntryMap"), - 0x04301: (161, "PromiseResolveThenableJobInfoMap"), - 0x04359: (162, "PromiseReactionJobInfoMap"), - 0x043b1: (163, "DebugInfoMap"), - 0x04409: (164, "BreakPointInfoMap"), - 0x04461: (165, "PrototypeInfoMap"), - 0x044b9: (166, "Tuple2Map"), - 0x04511: (167, "Tuple3Map"), - 0x04569: (168, "ContextExtensionMap"), - 0x045c1: (169, "ConstantElementsPairMap"), - 0x04619: (170, "ModuleMap"), - 0x04671: (171, "ModuleInfoEntryMap"), + 0x03f39: (156, "AllocationMementoMap"), + 0x03f91: (204, "JSPromiseCapabilityMap"), + 0x03fe9: (149, "AccessorInfoMap"), + 0x04041: (150, "AccessorPairMap"), + 0x04099: (151, "AccessCheckInfoMap"), + 0x040f1: (153, "FunctionTemplateInfoMap"), + 0x04149: (154, "ObjectTemplateInfoMap"), + 0x041a1: (155, "AllocationSiteMap"), + 0x041f9: (158, "AliasedArgumentsEntryMap"), + 0x04251: (159, "PromiseResolveThenableJobInfoMap"), + 0x042a9: (160, "PromiseReactionJobInfoMap"), + 0x04301: (161, "DebugInfoMap"), + 0x04359: (162, "StackFrameInfoMap"), + 0x043b1: (163, "PrototypeInfoMap"), + 0x04409: (164, "Tuple2Map"), + 0x04461: (165, "Tuple3Map"), + 0x044b9: (166, "ContextExtensionMap"), + 0x04511: (167, "ModuleMap"), + 0x04569: (168, "ModuleInfoEntryMap"), + 0x045c1: (169, "AsyncGeneratorRequestMap"), } # List of known V8 objects. @@ -268,56 +272,38 @@ ("OLD_SPACE", 0x023b1): "TrueValue", ("OLD_SPACE", 0x02421): "FalseValue", ("OLD_SPACE", 0x02471): "empty_string", - ("OLD_SPACE", 0x02489): "ArgumentsMarker", - ("OLD_SPACE", 0x024e1): "EmptyByteArray", - ("OLD_SPACE", 0x024f1): "EmptyWeakCell", - ("OLD_SPACE", 0x02509): "InfinityValue", - ("OLD_SPACE", 0x02519): "MinusZeroValue", - ("OLD_SPACE", 0x02529): "MinusInfinityValue", - ("OLD_SPACE", 0x04979): "EmptyScopeInfo", - ("OLD_SPACE", 0x04989): "Exception", - ("OLD_SPACE", 0x049e1): "TerminationException", - ("OLD_SPACE", 0x04a41): "OptimizedOut", - ("OLD_SPACE", 0x04a99): "StaleRegister", - ("OLD_SPACE", 0x04af1): "EmptyFixedUint8Array", - ("OLD_SPACE", 0x04b11): "EmptyFixedInt8Array", - ("OLD_SPACE", 0x04b31): "EmptyFixedUint16Array", - ("OLD_SPACE", 0x04b51): "EmptyFixedInt16Array", - ("OLD_SPACE", 0x04b71): "EmptyFixedUint32Array", - ("OLD_SPACE", 0x04b91): "EmptyFixedInt32Array", - ("OLD_SPACE", 0x04bb1): "EmptyFixedFloat32Array", - ("OLD_SPACE", 0x04bd1): "EmptyFixedFloat64Array", - ("OLD_SPACE", 0x04bf1): "EmptyFixedUint8ClampedArray", - ("OLD_SPACE", 0x04c11): "EmptyScript", - ("OLD_SPACE", 0x04c99): "UndefinedCell", - ("OLD_SPACE", 0x04ca9): "EmptySloppyArgumentsElements", - ("OLD_SPACE", 0x04cc9): "EmptySlowElementDictionary", - ("OLD_SPACE", 0x04d19): "EmptyPropertyCell", - ("OLD_SPACE", 0x04d39): "ArrayProtector", - ("OLD_SPACE", 0x04d59): "IsConcatSpreadableProtector", - ("OLD_SPACE", 0x04d69): "SpeciesProtector", - ("OLD_SPACE", 0x04d79): "StringLengthProtector", - ("OLD_SPACE", 0x04d99): "FastArrayIterationProtector", - ("OLD_SPACE", 0x04da9): "ArrayIteratorProtector", - ("OLD_SPACE", 0x04dc9): "ArrayBufferNeuteringProtector", - ("OLD_SPACE", 0x04de9): "NumberStringCache", - ("OLD_SPACE", 0x05df9): "SingleCharacterStringCache", - ("OLD_SPACE", 0x06669): "StringSplitCache", - ("OLD_SPACE", 0x06e79): "RegExpMultipleCache", - ("OLD_SPACE", 0x07689): "NativesSourceCache", - ("OLD_SPACE", 0x07931): "ExtraNativesSourceCache", - ("OLD_SPACE", 0x07969): "ExperimentalExtraNativesSourceCache", - ("OLD_SPACE", 0x07981): "EmptyPropertiesDictionary", - ("OLD_SPACE", 0x079d1): "ScriptList", - ("OLD_SPACE", 0x22019): "CodeStubs", - ("OLD_SPACE", 0x2f199): "WeakObjectToCodeTable", - ("OLD_SPACE", 0x2f3c1): "WeakNewSpaceObjectToCodeList", - ("OLD_SPACE", 0x2f451): "NoScriptSharedFunctionInfos", - ("OLD_SPACE", 0x4abd9): "MessageListeners", - ("OLD_SPACE", 0x4abf9): "NoOpInterceptorInfo", - ("OLD_SPACE", 0x531d1): "StringTable", - ("CODE_SPACE", 0x2cde1): "JsEntryCode", - ("CODE_SPACE", 0x31241): "JsConstructEntryCode", + ("OLD_SPACE", 0x02489): "EmptyScopeInfo", + ("OLD_SPACE", 0x02499): "ArgumentsMarker", + ("OLD_SPACE", 0x024f1): "Exception", + ("OLD_SPACE", 0x02549): "TerminationException", + ("OLD_SPACE", 0x025a9): "OptimizedOut", + ("OLD_SPACE", 0x02601): "StaleRegister", + ("OLD_SPACE", 0x02659): "EmptyByteArray", + ("OLD_SPACE", 0x02669): "EmptyFixedUint8Array", + ("OLD_SPACE", 0x02689): "EmptyFixedInt8Array", + ("OLD_SPACE", 0x026a9): "EmptyFixedUint16Array", + ("OLD_SPACE", 0x026c9): "EmptyFixedInt16Array", + ("OLD_SPACE", 0x026e9): "EmptyFixedUint32Array", + ("OLD_SPACE", 0x02709): "EmptyFixedInt32Array", + ("OLD_SPACE", 0x02729): "EmptyFixedFloat32Array", + ("OLD_SPACE", 0x02749): "EmptyFixedFloat64Array", + ("OLD_SPACE", 0x02769): "EmptyFixedUint8ClampedArray", + ("OLD_SPACE", 0x02789): "EmptyScript", + ("OLD_SPACE", 0x02811): "UndefinedCell", + ("OLD_SPACE", 0x02821): "EmptySloppyArgumentsElements", + ("OLD_SPACE", 0x02841): "EmptySlowElementDictionary", + ("OLD_SPACE", 0x02891): "EmptyPropertyCell", + ("OLD_SPACE", 0x028b1): "EmptyWeakCell", + ("OLD_SPACE", 0x028c9): "ArrayProtector", + ("OLD_SPACE", 0x028e9): "IsConcatSpreadableProtector", + ("OLD_SPACE", 0x028f9): "SpeciesProtector", + ("OLD_SPACE", 0x02909): "StringLengthProtector", + ("OLD_SPACE", 0x02929): "FastArrayIterationProtector", + ("OLD_SPACE", 0x02939): "ArrayIteratorProtector", + ("OLD_SPACE", 0x02959): "ArrayBufferNeuteringProtector", + ("OLD_SPACE", 0x02979): "InfinityValue", + ("OLD_SPACE", 0x02989): "MinusZeroValue", + ("OLD_SPACE", 0x02999): "MinusInfinityValue", } # List of known V8 Frame Markers. @@ -340,3 +326,5 @@ "BUILTIN", "BUILTIN_EXIT", ) + +# This set of constants is generated from a shipping build. diff --git a/deps/v8/tools/v8heapconst.py.tmpl b/deps/v8/tools/v8heapconst.py.tmpl deleted file mode 100644 index a773f47c8b942d..00000000000000 --- a/deps/v8/tools/v8heapconst.py.tmpl +++ /dev/null @@ -1,30 +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. - -# This file is automatically generated from the V8 source and should not -# be modified manually, run 'make grokdump' instead to update this file. - diff --git a/deps/v8/tools/verify_source_deps.py b/deps/v8/tools/verify_source_deps.py index 6f804040cc6499..e3a39c1d17c481 100755 --- a/deps/v8/tools/verify_source_deps.py +++ b/deps/v8/tools/verify_source_deps.py @@ -31,6 +31,7 @@ os.path.join(V8_BASE, 'test', 'fuzzer', 'fuzzer.gyp'), os.path.join(V8_BASE, 'test', 'unittests', 'unittests.gyp'), os.path.join(V8_BASE, 'test', 'inspector', 'inspector.gyp'), + os.path.join(V8_BASE, 'test', 'mkgrokdump', 'mkgrokdump.gyp'), os.path.join(V8_BASE, 'testing', 'gmock.gyp'), os.path.join(V8_BASE, 'testing', 'gtest.gyp'), os.path.join(V8_BASE, 'tools', 'parser-shell.gyp'), @@ -49,11 +50,13 @@ os.path.join('test', 'fuzzer'), os.path.join('test', 'unittests'), os.path.join('test', 'inspector'), + os.path.join('test', 'mkgrokdump'), ] GYP_UNSUPPORTED_FEATURES = [ 'gcmole', 'setup-isolate-deserialize.cc', + 'v8-version.h' ] GN_FILES = [ @@ -64,6 +67,7 @@ os.path.join(V8_BASE, 'test', 'cctest', 'BUILD.gn'), os.path.join(V8_BASE, 'test', 'unittests', 'BUILD.gn'), os.path.join(V8_BASE, 'test', 'inspector', 'BUILD.gn'), + os.path.join(V8_BASE, 'test', 'mkgrokdump', 'BUILD.gn'), os.path.join(V8_BASE, 'tools', 'BUILD.gn'), ] @@ -77,6 +81,7 @@ 'qnx', 'solaris', 'vtune', + 'v8-version.h', 'x87', ] @@ -88,6 +93,7 @@ os.path.join('test', 'cctest'), os.path.join('test', 'unittests'), os.path.join('test', 'inspector'), + os.path.join('test', 'mkgrokdump'), ] def pathsplit(path): diff --git a/deps/v8/tools/update-wasm-fuzzers.sh b/deps/v8/tools/wasm/update-wasm-fuzzers.sh similarity index 59% rename from deps/v8/tools/update-wasm-fuzzers.sh rename to deps/v8/tools/wasm/update-wasm-fuzzers.sh index a58681f6826807..ab9f84be287d04 100755 --- a/deps/v8/tools/update-wasm-fuzzers.sh +++ b/deps/v8/tools/wasm/update-wasm-fuzzers.sh @@ -5,52 +5,52 @@ set -e -TOOLS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +TOOLS_WASM_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -cd ${TOOLS_DIR}/.. +cd ${TOOLS_WASM_DIR}/../.. -rm -rf test/fuzzer/wasm -rm -rf test/fuzzer/wasm_asmjs +rm -rf test/fuzzer/wasm_corpus +rm -rf test/fuzzer/wasm_asmjs_corpus -make x64.release -j +tools/dev/gm.py x64.release all -mkdir -p test/fuzzer/wasm -mkdir -p test/fuzzer/wasm_asmjs +mkdir -p test/fuzzer/wasm_corpus +mkdir -p test/fuzzer/wasm_asmjs_corpus # asm.js ./tools/run-tests.py -j8 --variants=default --timeout=10 --arch=x64 \ --mode=release --no-presubmit --extra-flags="--dump-wasm-module \ - --dump-wasm-module-path=./test/fuzzer/wasm_asmjs/" mjsunit/wasm/asm* + --dump-wasm-module-path=./test/fuzzer/wasm_asmjs_corpus/" mjsunit/wasm/asm* ./tools/run-tests.py -j8 --variants=default --timeout=10 --arch=x64 \ --mode=release --no-presubmit --extra-flags="--dump-wasm-module \ - --dump-wasm-module-path=./test/fuzzer/wasm_asmjs/" mjsunit/asm/* + --dump-wasm-module-path=./test/fuzzer/wasm_asmjs_corpus/" mjsunit/asm/* +# WASM ./tools/run-tests.py -j8 --variants=default --timeout=10 --arch=x64 \ --mode=release --no-presubmit --extra-flags="--dump-wasm-module \ - --dump-wasm-module-path=./test/fuzzer/wasm_asmjs/" mjsunit/regress/asm/* -# WASM + --dump-wasm-module-path=./test/fuzzer/wasm_corpus/" unittests ./tools/run-tests.py -j8 --variants=default --timeout=10 --arch=x64 \ --mode=release --no-presubmit --extra-flags="--dump-wasm-module \ - --dump-wasm-module-path=./test/fuzzer/wasm/" unittests + --dump-wasm-module-path=./test/fuzzer/wasm_corpus/" wasm-spec-tests/* ./tools/run-tests.py -j8 --variants=default --timeout=10 --arch=x64 \ --mode=release --no-presubmit --extra-flags="--dump-wasm-module \ - --dump-wasm-module-path=./test/fuzzer/wasm/" mjsunit/wasm/* + --dump-wasm-module-path=./test/fuzzer/wasm_corpus/" mjsunit/wasm/* ./tools/run-tests.py -j8 --variants=default --timeout=10 --arch=x64 \ --mode=release --no-presubmit --extra-flags="--dump-wasm-module \ - --dump-wasm-module-path=./test/fuzzer/wasm/" \ + --dump-wasm-module-path=./test/fuzzer/wasm_corpus/" \ $(cd test/; ls cctest/wasm/test-*.cc | \ sed -es/wasm\\///g | sed -es/[.]cc/\\/\\*/g) # Delete items over 20k. -for x in $(find ./test/fuzzer/wasm/ -type f -size +20k) +for x in $(find ./test/fuzzer/wasm_corpus/ -type f -size +20k) do rm $x done -for x in $(find ./test/fuzzer/wasm_asmjs/ -type f -size +20k) +for x in $(find ./test/fuzzer/wasm_asmjs_corpus/ -type f -size +20k) do rm $x done # Upload changes. cd test/fuzzer -upload_to_google_storage.py -a -b v8-wasm-fuzzer wasm -upload_to_google_storage.py -a -b v8-wasm-asmjs-fuzzer wasm_asmjs +upload_to_google_storage.py -a -b v8-wasm-fuzzer wasm_corpus +upload_to_google_storage.py -a -b v8-wasm-asmjs-fuzzer wasm_asmjs_corpus diff --git a/deps/v8/tools/wasm/update-wasm-spec-tests.sh b/deps/v8/tools/wasm/update-wasm-spec-tests.sh new file mode 100755 index 00000000000000..be277e9ad73ef8 --- /dev/null +++ b/deps/v8/tools/wasm/update-wasm-spec-tests.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# Copyright 2017 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. + +set -e + +TOOLS_WASM_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +V8_DIR="${TOOLS_WASM_DIR}/../.." + +cd ${V8_DIR} + +mkdir -p ./test/wasm-spec-tests/tests/ +rm -rf ./test/wasm-spec-tests/tests/* + +./tools/dev/gm.py x64.release all + +cd ${V8_DIR}/test/wasm-js/interpreter +make + +cd ${V8_DIR}/test/wasm-js/test/core + +./run.py --wasm ${V8_DIR}/test/wasm-js/interpreter/wasm --js ${V8_DIR}/out/x64.release/d8 + +cp ${V8_DIR}/test/wasm-js/test/core/output/*.js ${V8_DIR}/test/wasm-spec-tests/tests + +cd ${V8_DIR}/test/wasm-spec-tests +upload_to_google_storage.py -a -b v8-wasm-spec-tests tests + + diff --git a/deps/v8/tools/whitespace.txt b/deps/v8/tools/whitespace.txt index 0c3c0d7feb1ff8..4448e29f885c6e 100644 --- a/deps/v8/tools/whitespace.txt +++ b/deps/v8/tools/whitespace.txt @@ -7,5 +7,5 @@ A Smi balks into a war and says: The doubles heard this and started to unbox. The Smi looked at them when a crazy v8-autoroll account showed up...... The autoroller bought a round of Himbeerbrause. Suddenly ..... -The bartender starts to shake the bottles..... +The bartender starts to shake the bottles........ . From f6fac0ba8cab151f702438aece2a666fa1876820 Mon Sep 17 00:00:00 2001 From: Myles Borins Date: Tue, 1 Aug 2017 11:36:45 -0500 Subject: [PATCH 2/8] src: update NODE_MODULE_VERSION to 57 Major V8 updates are usually API/ABI incompatible with previous versions. This commit adapts NODE_MODULE_VERSION for V8 6.0. Refs: https://github.com/nodejs/CTC/blob/master/meetings/2016-09-28.md --- src/node_version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/node_version.h b/src/node_version.h index 7b43eaf56c2931..a35d90559550fb 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -73,6 +73,6 @@ * an API is broken in the C++ side, including in v8 or * other dependencies. */ -#define NODE_MODULE_VERSION 56 /* Node.js v8.0.0 */ +#define NODE_MODULE_VERSION 57 /* Node.js v8.0.0 */ #endif // SRC_NODE_VERSION_H_ From 39d1616436ac72146e5a18a546c5e4daf457cb8d Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Mon, 9 May 2016 18:44:42 -0400 Subject: [PATCH 3/8] deps: limit regress/regress-crbug-514081 v8 test regress/regress-crbug-514081 allocates a 2G block of memory and if there are multiple variants running at the same time this can lead to crashes, OOM kills or the OS failing to allocate memory. This patch limits us to running a single variant of the test Fixes: https://github.com/nodejs/node/issues/6340 PR-URL: https://github.com/nodejs/node/pull/6678 Reviewed-By: Ben Noordhuis Reviewed-By: James M Snell Reviewed-By: Fedor Indutny --- deps/v8/test/mjsunit/mjsunit.status | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/deps/v8/test/mjsunit/mjsunit.status b/deps/v8/test/mjsunit/mjsunit.status index bb1630aad66597..6c6911999bfb6f 100644 --- a/deps/v8/test/mjsunit/mjsunit.status +++ b/deps/v8/test/mjsunit/mjsunit.status @@ -690,4 +690,13 @@ 'whitespaces': [SKIP], }], # variant == wasm_traps +############################################################################## +# This test allocates a 2G block of memory and if there are multiple +# varients this leads kills by the OOM killer, crashes or messages +# indicating the OS cannot allocate memory, exclude for Node.js runs +# re-evalute when we move up to v8 5.1 +[ALWAYS, { +'regress/regress-crbug-514081': [PASS, NO_VARIANTS], +}], # ALWAYS + ] From a2de53f21a0406907d9f4910acbc4789b2a88e75 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Mon, 17 Apr 2017 12:20:05 +0200 Subject: [PATCH 4/8] v8: fix stack overflow in recursive method HGlobalValueNumberingPhase::CollectSideEffectsOnPathsToDominatedBlock() used to self-recurse before this commit, causing stack overflows on systems with small stack sizes. Make it non-recursive by storing intermediate results in a heap-allocated list. Fixes: https://github.com/nodejs/node/issues/11991 PR-URL: https://github.com/nodejs/node/pull/12460 Reviewed-By: James M Snell Reviewed-By: Yang Guo --- deps/v8/src/crankshaft/hydrogen-gvn.cc | 28 ++++++++++++++++---------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/deps/v8/src/crankshaft/hydrogen-gvn.cc b/deps/v8/src/crankshaft/hydrogen-gvn.cc index 70320052b08253..e586f4778f8968 100644 --- a/deps/v8/src/crankshaft/hydrogen-gvn.cc +++ b/deps/v8/src/crankshaft/hydrogen-gvn.cc @@ -5,6 +5,8 @@ #include "src/crankshaft/hydrogen-gvn.h" #include "src/crankshaft/hydrogen.h" +#include "src/list.h" +#include "src/list-inl.h" #include "src/objects-inl.h" #include "src/v8.h" @@ -651,19 +653,23 @@ SideEffects HGlobalValueNumberingPhase::CollectSideEffectsOnPathsToDominatedBlock( HBasicBlock* dominator, HBasicBlock* dominated) { SideEffects side_effects; - for (int i = 0; i < dominated->predecessors()->length(); ++i) { - HBasicBlock* block = dominated->predecessors()->at(i); - if (dominator->block_id() < block->block_id() && - block->block_id() < dominated->block_id() && - !visited_on_paths_.Contains(block->block_id())) { - visited_on_paths_.Add(block->block_id()); - side_effects.Add(block_side_effects_[block->block_id()]); - if (block->IsLoopHeader()) { - side_effects.Add(loop_side_effects_[block->block_id()]); + List blocks; + for (;;) { + for (int i = 0; i < dominated->predecessors()->length(); ++i) { + HBasicBlock* block = dominated->predecessors()->at(i); + if (dominator->block_id() < block->block_id() && + block->block_id() < dominated->block_id() && + !visited_on_paths_.Contains(block->block_id())) { + visited_on_paths_.Add(block->block_id()); + side_effects.Add(block_side_effects_[block->block_id()]); + if (block->IsLoopHeader()) { + side_effects.Add(loop_side_effects_[block->block_id()]); + } + blocks.Add(block); } - side_effects.Add(CollectSideEffectsOnPathsToDominatedBlock( - dominator, block)); } + if (blocks.is_empty()) break; + dominated = blocks.RemoveLast(); } return side_effects; } From d019ecb374e02c844d88de5c0fa92baf199cc08b Mon Sep 17 00:00:00 2001 From: Bartosz Sosnowski Date: Tue, 23 May 2017 18:25:03 +0200 Subject: [PATCH 5/8] deps: fix addons compilation with VS2013 VS2013 does not support defaulting move constructor and assignment operator. This adds explicit definitions of those methods for two classes. This fix is required because we still support building addons with VS2013 and the incompatibility is in v8.h. Fixes: https://github.com/nodejs/node-v8/issues/4 PR-URL: https://github.com/nodejs/node/pull/13263 Reviewed-By: Gibson Fahnestock Reviewed-By: Ben Noordhuis Reviewed-By: Franziska Hinkelmann Reviewed-By: Myles Borins --- deps/v8/include/v8.h | 12 ++++++++---- deps/v8/src/api.cc | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index da3cdfdcbd7db5..1b3117ef34c67d 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -4063,10 +4063,12 @@ class V8_EXPORT WasmCompiledModule : public Object { // supports move semantics, and does not support copy semantics. class TransferrableModule final { public: - TransferrableModule(TransferrableModule&& src) = default; + TransferrableModule(TransferrableModule&& src) + : compiled_code(std::move(src.compiled_code)), + wire_bytes(std::move(src.wire_bytes)) {} TransferrableModule(const TransferrableModule& src) = delete; - TransferrableModule& operator=(TransferrableModule&& src) = default; + TransferrableModule& operator=(TransferrableModule&& src); TransferrableModule& operator=(const TransferrableModule& src) = delete; private: @@ -4139,9 +4141,11 @@ class V8_EXPORT WasmModuleObjectBuilder final { // Disable copy semantics *in this implementation*. We can choose to // relax this, albeit it's not clear why. WasmModuleObjectBuilder(const WasmModuleObjectBuilder&) = delete; - WasmModuleObjectBuilder(WasmModuleObjectBuilder&&) = default; + WasmModuleObjectBuilder(WasmModuleObjectBuilder&& src) + : received_buffers_(std::move(src.received_buffers_)), + total_size_(src.total_size_) {} WasmModuleObjectBuilder& operator=(const WasmModuleObjectBuilder&) = delete; - WasmModuleObjectBuilder& operator=(WasmModuleObjectBuilder&&) = default; + WasmModuleObjectBuilder& operator=(WasmModuleObjectBuilder&&); std::vector received_buffers_; size_t total_size_ = 0; diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 7699bc87ec8490..79008219a7c679 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -7647,6 +7647,14 @@ Local WasmCompiledModule::GetWasmWireBytes() { return Local::Cast(Utils::ToLocal(wire_bytes)); } +WasmCompiledModule::TransferrableModule& +WasmCompiledModule::TransferrableModule::operator=( + TransferrableModule&& src) { + compiled_code = std::move(src.compiled_code); + wire_bytes = std::move(src.wire_bytes); + return *this; +} + // Currently, wasm modules are bound, both to Isolate and to // the Context they were created in. The currently-supported means to // decontextualize and then re-contextualize a module is via @@ -7760,6 +7768,13 @@ MaybeLocal WasmModuleObjectBuilder::Finish() { return WasmCompiledModule::Compile(isolate_, wire_bytes.get(), total_size_); } +WasmModuleObjectBuilder& +WasmModuleObjectBuilder::operator=(WasmModuleObjectBuilder&& src) { + received_buffers_ = std::move(src.received_buffers_); + total_size_ = src.total_size_; + return *this; +} + // static v8::ArrayBuffer::Allocator* v8::ArrayBuffer::Allocator::NewDefaultAllocator() { return new ArrayBufferAllocator(); From e649b00b68e0841971abcd7158542a5c80472537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Tue, 20 Jun 2017 17:06:59 +0200 Subject: [PATCH 6/8] deps: backport c0f1ff2 from upstream V8 Original commit message: Fix GCC 7 build errors BUG=chromium:691681 R=franzih@chromium.org Change-Id: Id7e5698487f16dc217a804f6d3f24da7213c72b9 Reviewed-on: https://chromium-review.googlesource.com/530227 Commit-Queue: Toon Verwaest Reviewed-by: Toon Verwaest Cr-Commit-Position: refs/heads/master@{#46045} PR-URL: https://github.com/nodejs/node/pull/13517 Fixes: https://github.com/nodejs/node/issues/10388 Refs: https://github.com/nodejs/node/pull/12392 Reviewed-By: Ben Noordhuis --- deps/v8/BUILD.gn | 1 + deps/v8/src/objects-body-descriptors.h | 2 +- deps/v8/src/objects-inl.h | 1 + deps/v8/src/objects/hash-table-inl.h | 34 ++++++++++++++++++++++++++ deps/v8/src/objects/hash-table.h | 20 +++------------ deps/v8/src/v8.gyp | 1 + 6 files changed, 42 insertions(+), 17 deletions(-) create mode 100644 deps/v8/src/objects/hash-table-inl.h diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 80d6f3413302c4..2060cb19817059 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -1748,6 +1748,7 @@ v8_source_set("v8_base") { "src/objects/dictionary.h", "src/objects/frame-array-inl.h", "src/objects/frame-array.h", + "src/objects/hash-table-inl.h", "src/objects/hash-table.h", "src/objects/intl-objects.cc", "src/objects/intl-objects.h", diff --git a/deps/v8/src/objects-body-descriptors.h b/deps/v8/src/objects-body-descriptors.h index 499c48a9303424..3eb3bb539e4d49 100644 --- a/deps/v8/src/objects-body-descriptors.h +++ b/deps/v8/src/objects-body-descriptors.h @@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public BodyDescriptorBase { template static inline void IterateBody(HeapObject* obj, int object_size) { - IterateBody(obj); + IterateBody(obj); } static inline int SizeOf(Map* map, HeapObject* object) { return kSize; } diff --git a/deps/v8/src/objects-inl.h b/deps/v8/src/objects-inl.h index 406f49d99695ba..9afd19c8ca0bc0 100644 --- a/deps/v8/src/objects-inl.h +++ b/deps/v8/src/objects-inl.h @@ -31,6 +31,7 @@ #include "src/lookup-cache-inl.h" #include "src/lookup.h" #include "src/objects.h" +#include "src/objects/hash-table-inl.h" #include "src/objects/literal-objects.h" #include "src/objects/module-info.h" #include "src/objects/regexp-match-info.h" diff --git a/deps/v8/src/objects/hash-table-inl.h b/deps/v8/src/objects/hash-table-inl.h new file mode 100644 index 00000000000000..7b2db384954d57 --- /dev/null +++ b/deps/v8/src/objects/hash-table-inl.h @@ -0,0 +1,34 @@ +// Copyright 2017 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. + +#ifndef V8_OBJECTS_HASH_TABLE_INL_H_ +#define V8_OBJECTS_HASH_TABLE_INL_H_ + +#include "src/objects/hash-table.h" + +namespace v8 { +namespace internal { + +template +uint32_t HashTable::Hash(Key key) { + if (Shape::UsesSeed) { + return Shape::SeededHash(key, GetHeap()->HashSeed()); + } else { + return Shape::Hash(key); + } +} + +template +uint32_t HashTable::HashForObject(Key key, Object* object) { + if (Shape::UsesSeed) { + return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); + } else { + return Shape::HashForObject(key, object); + } +} + +} // namespace internal +} // namespace v8 + +#endif // V8_OBJECTS_HASH_TABLE_INL_H_ diff --git a/deps/v8/src/objects/hash-table.h b/deps/v8/src/objects/hash-table.h index f3c68a82c5e314..0eac3a2342481c 100644 --- a/deps/v8/src/objects/hash-table.h +++ b/deps/v8/src/objects/hash-table.h @@ -138,22 +138,10 @@ class HashTable : public HashTableBase { public: typedef Shape ShapeT; - // Wrapper methods - inline uint32_t Hash(Key key) { - if (Shape::UsesSeed) { - return Shape::SeededHash(key, GetHeap()->HashSeed()); - } else { - return Shape::Hash(key); - } - } - - inline uint32_t HashForObject(Key key, Object* object) { - if (Shape::UsesSeed) { - return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); - } else { - return Shape::HashForObject(key, object); - } - } + // Wrapper methods. Defined in src/objects/hash-table-inl.h + // to break a cycle with src/heap/heap.h + inline uint32_t Hash(Key key); + inline uint32_t HashForObject(Key key, Object* object); // Returns a new HashTable object. MUST_USE_RESULT static Handle New( diff --git a/deps/v8/src/v8.gyp b/deps/v8/src/v8.gyp index e7e19f5059f565..8015a6bda634cf 100644 --- a/deps/v8/src/v8.gyp +++ b/deps/v8/src/v8.gyp @@ -1228,6 +1228,7 @@ 'objects/dictionary.h', 'objects/frame-array.h', 'objects/frame-array-inl.h', + 'objects/hash-table-inl.h', 'objects/hash-table.h', 'objects/intl-objects.cc', 'objects/intl-objects.h', From 97384c3ddfff77625604895b93af3d20ffe526d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Fri, 30 Jun 2017 11:28:17 +0200 Subject: [PATCH 7/8] src: fix new V8 compiler warnings --- src/inspector_agent.cc | 11 ++++++----- src/node_url.cc | 5 +++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index 6599e870432662..4d51c3d140f941 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -219,7 +219,8 @@ class JsBindingsSessionDelegate : public InspectorSessionDelegate { Local argument = v8string.ToLocalChecked().As(); Local callback = callback_.Get(isolate); Local receiver = receiver_.Get(isolate); - static_cast(callback->Call(env_->context(), receiver, 1, &argument)); + callback->Call(env_->context(), receiver, 1, &argument) + .FromMaybe(Local()); } void Disconnect() { @@ -353,10 +354,10 @@ void InspectorConsoleCall(const v8::FunctionCallbackInfo& info) { Local node_method = info[1]; CHECK(node_method->IsFunction()); - static_cast(node_method.As()->Call(context, - info.Holder(), - call_args.size(), - call_args.data())); + node_method.As()->Call(context, + info.Holder(), + call_args.size(), + call_args.data()).FromMaybe(Local()); } void CallAndPauseOnStart( diff --git a/src/node_url.cc b/src/node_url.cc index c50700b2946831..54dbc3a053b3a1 100644 --- a/src/node_url.cc +++ b/src/node_url.cc @@ -1943,7 +1943,7 @@ static void Parse(Environment* env, null, // fragment defaults to null }; SetArgs(env, argv, &url); - (void)cb->Call(context, recv, arraysize(argv), argv); + cb->Call(context, recv, arraysize(argv), argv).FromMaybe(Local()); } else if (error_cb->IsFunction()) { Local argv[2] = { undef, undef }; argv[ERR_ARG_FLAGS] = Integer::NewFromUnsigned(isolate, url.flags); @@ -1951,7 +1951,8 @@ static void Parse(Environment* env, String::NewFromUtf8(env->isolate(), input, v8::NewStringType::kNormal).ToLocalChecked(); - (void)error_cb.As()->Call(context, recv, arraysize(argv), argv); + error_cb.As()->Call(context, recv, arraysize(argv), argv) + .FromMaybe(Local()); } } From 424aed0afcb698c27f314b11026707ce70beb801 Mon Sep 17 00:00:00 2001 From: Yang Guo Date: Tue, 18 Jul 2017 14:38:43 +0200 Subject: [PATCH 8/8] deps: backport rehash strings after deserialization Original commit messages: https://github.com/v8/v8/commit/a2ab1353f6708b44d305fdd9fe65a6d29b95c6d6 [snapshot] Rehash strings after deserialization. See https://goo.gl/6aN8xA Bug: v8:6593 Change-Id: Ic8b0b57195d01d41591397d5d45de3f0f3ebc3d9 Reviewed-on: https://chromium-review.googlesource.com/574527 Reviewed-by: Camillo Bruni Reviewed-by: Jakob Gruber Reviewed-by: Ulan Degenbaev Commit-Queue: Yang Guo Cr-Commit-Position: refs/heads/master@{#46732} https://github.com/v8/v8/commit/182caaf4a9b94024e47007d426831c024345cb97 Do not track transitions for built-in objects. Objects created during bootstrapping do not need a transition tree except for elements kind transitions. Bug: v8:6596 Change-Id: I237b8b2792f201336e1c9731c815095dd06bc182 Reviewed-on: https://chromium-review.googlesource.com/571750 Reviewed-by: Igor Sheludko Commit-Queue: Yang Guo Cr-Commit-Position: refs/heads/master@{#46693} Fixes: https://github.com/nodejs/node/issues/14171 PR-URL: https://github.com/nodejs/node/pull/14345 --- deps/v8/src/api.cc | 13 +++- deps/v8/src/bootstrapper.cc | 6 ++ deps/v8/src/flag-definitions.h | 2 + deps/v8/src/heap/heap.cc | 17 ++--- deps/v8/src/heap/heap.h | 3 + deps/v8/src/js/array.js | 2 + deps/v8/src/objects.cc | 11 ++- deps/v8/src/snapshot/deserializer.cc | 71 ++++++++++++++++++++ deps/v8/src/snapshot/deserializer.h | 18 ++++- deps/v8/src/snapshot/partial-serializer.cc | 37 +++++++--- deps/v8/src/snapshot/partial-serializer.h | 8 +++ deps/v8/src/snapshot/snapshot-common.cc | 13 +++- deps/v8/src/snapshot/snapshot.h | 12 ++-- deps/v8/src/snapshot/startup-serializer.cc | 17 ++++- deps/v8/src/snapshot/startup-serializer.h | 8 +++ deps/v8/src/transitions-inl.h | 2 - deps/v8/src/transitions.cc | 42 ++++++++++++ deps/v8/src/transitions.h | 4 +- deps/v8/test/cctest/heap/test-heap.cc | 21 ++++++ deps/v8/test/cctest/test-serialize.cc | 45 +++++++++++++ deps/v8/test/mjsunit/regress/regress-5902.js | 1 - 21 files changed, 321 insertions(+), 32 deletions(-) diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 79008219a7c679..818dfa1e22e69a 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -660,6 +660,9 @@ StartupData SnapshotCreator::CreateBlob( isolate->heap()->SetSerializedGlobalProxySizes(*global_proxy_sizes); } + // We might rehash strings and re-sort descriptors. Clear the lookup cache. + isolate->descriptor_lookup_cache()->Clear(); + // If we don't do this then we end up with a stray root pointing at the // context even after we have disposed of the context. isolate->heap()->CollectAllAvailableGarbage( @@ -701,11 +704,15 @@ StartupData SnapshotCreator::CreateBlob( // Serialize each context with a new partial serializer. i::List context_snapshots(num_additional_contexts + 1); + // TODO(6593): generalize rehashing, and remove this flag. + bool can_be_rehashed = true; + { // The default snapshot does not support embedder fields. i::PartialSerializer partial_serializer( isolate, &startup_serializer, v8::SerializeInternalFieldsCallback()); partial_serializer.Serialize(&default_context, false); + can_be_rehashed = can_be_rehashed && partial_serializer.can_be_rehashed(); context_snapshots.Add(new i::SnapshotData(&partial_serializer)); } @@ -713,10 +720,12 @@ StartupData SnapshotCreator::CreateBlob( i::PartialSerializer partial_serializer( isolate, &startup_serializer, data->embedder_fields_serializers_[i]); partial_serializer.Serialize(&contexts[i], true); + can_be_rehashed = can_be_rehashed && partial_serializer.can_be_rehashed(); context_snapshots.Add(new i::SnapshotData(&partial_serializer)); } startup_serializer.SerializeWeakReferencesAndDeferred(); + can_be_rehashed = can_be_rehashed && startup_serializer.can_be_rehashed(); #ifdef DEBUG if (i::FLAG_external_reference_stats) { @@ -725,8 +734,8 @@ StartupData SnapshotCreator::CreateBlob( #endif // DEBUG i::SnapshotData startup_snapshot(&startup_serializer); - StartupData result = - i::Snapshot::CreateSnapshotBlob(&startup_snapshot, &context_snapshots); + StartupData result = i::Snapshot::CreateSnapshotBlob( + &startup_snapshot, &context_snapshots, can_be_rehashed); // Delete heap-allocated context snapshot instances. for (const auto& context_snapshot : context_snapshots) { diff --git a/deps/v8/src/bootstrapper.cc b/deps/v8/src/bootstrapper.cc index b1fda971cfc12e..2652ab028e8b7a 100644 --- a/deps/v8/src/bootstrapper.cc +++ b/deps/v8/src/bootstrapper.cc @@ -652,6 +652,8 @@ Handle Genesis::GetThrowTypeErrorIntrinsic( DCHECK(false); } + JSObject::MigrateSlowToFast(function, 0, "Bootstrapping"); + return function; } @@ -1397,6 +1399,8 @@ void Genesis::InitializeGlobal(Handle global_object, sloppy_function_map_writable_prototype_->SetConstructor(*function_fun); strict_function_map_writable_prototype_->SetConstructor(*function_fun); class_function_map_->SetConstructor(*function_fun); + + JSObject::MigrateSlowToFast(function_fun, 0, "Bootstrapping"); } { @@ -2221,6 +2225,8 @@ void Genesis::InitializeGlobal(Handle global_object, info->set_length(1); native_context()->set_promise_reject_shared_fun(*info); } + + JSObject::MigrateSlowToFast(promise_fun, 0, "Bootstrapping"); } { // -- R e g E x p diff --git a/deps/v8/src/flag-definitions.h b/deps/v8/src/flag-definitions.h index 85ee27ee6ef321..f719555c5ff911 100644 --- a/deps/v8/src/flag-definitions.h +++ b/deps/v8/src/flag-definitions.h @@ -1002,6 +1002,8 @@ DEFINE_BOOL(abort_on_stack_overflow, false, DEFINE_BOOL(randomize_hashes, true, "randomize hashes to avoid predictable hash collisions " "(with snapshots this option cannot override the baked-in seed)") +DEFINE_BOOL(rehash_snapshot, true, + "rehash strings from the snapshot to override the baked-in seed") DEFINE_INT(hash_seed, 0, "Fixed seed to use to hash property keys (0 means random)" "(with snapshots this option cannot override the baked-in seed)") diff --git a/deps/v8/src/heap/heap.cc b/deps/v8/src/heap/heap.cc index ad3bfef5594521..2b26e0d1b9f0f7 100644 --- a/deps/v8/src/heap/heap.cc +++ b/deps/v8/src/heap/heap.cc @@ -5679,14 +5679,7 @@ bool Heap::SetUp() { // Set up the seed that is used to randomize the string hash function. DCHECK(hash_seed() == 0); - if (FLAG_randomize_hashes) { - if (FLAG_hash_seed == 0) { - int rnd = isolate()->random_number_generator()->NextInt(); - set_hash_seed(Smi::FromInt(rnd & Name::kHashBitMask)); - } else { - set_hash_seed(Smi::FromInt(FLAG_hash_seed)); - } - } + if (FLAG_randomize_hashes) InitializeHashSeed(); for (int i = 0; i < static_cast(v8::Isolate::kUseCounterFeatureCount); i++) { @@ -5731,6 +5724,14 @@ bool Heap::SetUp() { return true; } +void Heap::InitializeHashSeed() { + if (FLAG_hash_seed == 0) { + int rnd = isolate()->random_number_generator()->NextInt(); + set_hash_seed(Smi::FromInt(rnd & Name::kHashBitMask)); + } else { + set_hash_seed(Smi::FromInt(FLAG_hash_seed)); + } +} bool Heap::CreateHeapObjects() { // Create initial maps. diff --git a/deps/v8/src/heap/heap.h b/deps/v8/src/heap/heap.h index 80bc68c1723970..f18f3edd3f1231 100644 --- a/deps/v8/src/heap/heap.h +++ b/deps/v8/src/heap/heap.h @@ -1000,6 +1000,9 @@ class Heap { // without actually creating any objects. bool SetUp(); + // (Re-)Initialize hash seed from flag or RNG. + void InitializeHashSeed(); + // Bootstraps the object heap with the core set of objects required to run. // Returns whether it succeeded. bool CreateHeapObjects(); diff --git a/deps/v8/src/js/array.js b/deps/v8/src/js/array.js index 188f21c41ef250..2e22a521dcd325 100644 --- a/deps/v8/src/js/array.js +++ b/deps/v8/src/js/array.js @@ -1282,6 +1282,8 @@ var unscopables = { keys: true, }; +%ToFastProperties(unscopables); + %AddNamedProperty(GlobalArray.prototype, unscopablesSymbol, unscopables, DONT_ENUM | READ_ONLY); diff --git a/deps/v8/src/objects.cc b/deps/v8/src/objects.cc index e2748a5216d663..a1d87342ea9fd0 100644 --- a/deps/v8/src/objects.cc +++ b/deps/v8/src/objects.cc @@ -8860,7 +8860,13 @@ void Map::TraceAllTransitions(Map* map) { void Map::ConnectTransition(Handle parent, Handle child, Handle name, SimpleTransitionFlag flag) { - if (!parent->GetBackPointer()->IsUndefined(parent->GetIsolate())) { + Isolate* isolate = parent->GetIsolate(); + // Do not track transitions during bootstrap except for element transitions. + if (isolate->bootstrapper()->IsActive() && + !name.is_identical_to(isolate->factory()->elements_transition_symbol())) { + return; + } + if (!parent->GetBackPointer()->IsUndefined(isolate)) { parent->set_owns_descriptors(false); } else { // |parent| is initial map and it must keep the ownership, there must be no @@ -16712,6 +16718,9 @@ template class Dictionary; +template void +HashTable >::Rehash(Handle key); + template Handle Dictionary::New( Isolate*, int at_least_space_for, PretenureFlag pretenure, diff --git a/deps/v8/src/snapshot/deserializer.cc b/deps/v8/src/snapshot/deserializer.cc index c76e4eca542969..b39f351a942978 100644 --- a/deps/v8/src/snapshot/deserializer.cc +++ b/deps/v8/src/snapshot/deserializer.cc @@ -125,6 +125,7 @@ void Deserializer::Deserialize(Isolate* isolate) { LOG_CODE_EVENT(isolate_, LogCompiledFunctions()); isolate_->builtins()->MarkInitialized(); + if (FLAG_rehash_snapshot && can_rehash_) Rehash(); } MaybeHandle Deserializer::DeserializePartial( @@ -155,6 +156,9 @@ MaybeHandle Deserializer::DeserializePartial( // changed and logging should be added to notify the profiler et al of the // new code, which also has to be flushed from instruction cache. CHECK_EQ(start_address, code_space->top()); + + if (FLAG_rehash_snapshot && can_rehash_) RehashContext(Context::cast(root)); + return Handle(root, isolate); } @@ -181,6 +185,63 @@ MaybeHandle Deserializer::DeserializeObject(Isolate* isolate) { } } +// We only really just need HashForObject here. +class StringRehashKey : public HashTableKey { + public: + uint32_t HashForObject(Object* other) override { + return String::cast(other)->Hash(); + } + + static uint32_t StringHash(Object* obj) { + UNREACHABLE(); + return String::cast(obj)->Hash(); + } + + bool IsMatch(Object* string) override { + UNREACHABLE(); + return false; + } + + uint32_t Hash() override { + UNREACHABLE(); + return 0; + } + + Handle AsHandle(Isolate* isolate) override { + UNREACHABLE(); + return isolate->factory()->empty_string(); + } +}; + +void Deserializer::Rehash() { + DCHECK(can_rehash_); + isolate_->heap()->InitializeHashSeed(); + if (FLAG_profile_deserialization) { + PrintF("Re-initializing hash seed to %x\n", + isolate_->heap()->hash_seed()->value()); + } + StringRehashKey string_rehash_key; + isolate_->heap()->string_table()->Rehash(&string_rehash_key); + SortMapDescriptors(); +} + +void Deserializer::RehashContext(Context* context) { + DCHECK(can_rehash_); + for (const auto& array : transition_arrays_) array->Sort(); + Handle dummy = isolate_->factory()->empty_string(); + context->global_object()->global_dictionary()->Rehash(dummy); + SortMapDescriptors(); +} + +void Deserializer::SortMapDescriptors() { + for (const auto& address : allocated_maps_) { + Map* map = Map::cast(HeapObject::FromAddress(address)); + if (map->instance_descriptors()->number_of_descriptors() > 1) { + map->instance_descriptors()->Sort(); + } + } +} + Deserializer::~Deserializer() { #ifdef DEBUG // Do not perform checks if we aborted deserialization. @@ -371,6 +432,16 @@ HeapObject* Deserializer::PostProcessNewObject(HeapObject* obj, int space) { string->resource())); isolate_->heap()->RegisterExternalString(string); } + if (FLAG_rehash_snapshot && can_rehash_ && !deserializing_user_code()) { + if (obj->IsString()) { + // Uninitialize hash field as we are going to reinitialize the hash seed. + String* string = String::cast(obj); + string->set_hash_field(String::kEmptyHashField); + } else if (obj->IsTransitionArray() && + TransitionArray::cast(obj)->number_of_entries() > 1) { + transition_arrays_.Add(TransitionArray::cast(obj)); + } + } // Check alignment. DCHECK_EQ(0, Heap::GetFillToAlign(obj->address(), obj->RequiredAlignment())); return obj; diff --git a/deps/v8/src/snapshot/deserializer.h b/deps/v8/src/snapshot/deserializer.h index a56adb67d48b16..3a650d99743fde 100644 --- a/deps/v8/src/snapshot/deserializer.h +++ b/deps/v8/src/snapshot/deserializer.h @@ -39,7 +39,8 @@ class Deserializer : public SerializerDeserializer { external_reference_table_(NULL), deserialized_large_objects_(0), deserializing_user_code_(deserializing_user_code), - next_alignment_(kWordAligned) { + next_alignment_(kWordAligned), + can_rehash_(false) { DecodeReservation(data->Reservations()); } @@ -62,6 +63,8 @@ class Deserializer : public SerializerDeserializer { attached_objects_.Add(attached_object); } + void SetRehashability(bool v) { can_rehash_ = v; } + private: void VisitRootPointers(Root root, Object** start, Object** end) override; @@ -115,6 +118,15 @@ class Deserializer : public SerializerDeserializer { // snapshot by chunk index and offset. HeapObject* GetBackReferencedObject(int space); + // Rehash after deserializing an isolate. + void Rehash(); + + // Rehash after deserializing a context. + void RehashContext(Context* context); + + // Sort descriptors of deserialized maps using new string hashes. + void SortMapDescriptors(); + // Cached current isolate. Isolate* isolate_; @@ -142,11 +154,15 @@ class Deserializer : public SerializerDeserializer { List accessor_infos_; List > new_internalized_strings_; List > new_scripts_; + List transition_arrays_; bool deserializing_user_code_; AllocationAlignment next_alignment_; + // TODO(6593): generalize rehashing, and remove this flag. + bool can_rehash_; + DISALLOW_COPY_AND_ASSIGN(Deserializer); }; diff --git a/deps/v8/src/snapshot/partial-serializer.cc b/deps/v8/src/snapshot/partial-serializer.cc index d3e60e0e4e3027..bbd829eddfe816 100644 --- a/deps/v8/src/snapshot/partial-serializer.cc +++ b/deps/v8/src/snapshot/partial-serializer.cc @@ -15,7 +15,9 @@ PartialSerializer::PartialSerializer( v8::SerializeEmbedderFieldsCallback callback) : Serializer(isolate), startup_serializer_(startup_serializer), - serialize_embedder_fields_(callback) { + serialize_embedder_fields_(callback), + rehashable_global_dictionary_(nullptr), + can_be_rehashed_(true) { InitializeCodeAddressMap(); } @@ -24,7 +26,7 @@ PartialSerializer::~PartialSerializer() { } void PartialSerializer::Serialize(Object** o, bool include_global_proxy) { - if ((*o)->IsContext()) { + if ((*o)->IsNativeContext()) { Context* context = Context::cast(*o); reference_map()->AddAttachedReference(context->global_proxy()); // The bootstrap snapshot has a code-stub context. When serializing the @@ -32,14 +34,18 @@ void PartialSerializer::Serialize(Object** o, bool include_global_proxy) { // and it's next context pointer may point to the code-stub context. Clear // it before serializing, it will get re-added to the context list // explicitly when it's loaded. - if (context->IsNativeContext()) { - context->set(Context::NEXT_CONTEXT_LINK, - isolate_->heap()->undefined_value()); - DCHECK(!context->global_object()->IsUndefined(context->GetIsolate())); - // Reset math random cache to get fresh random numbers. - context->set_math_random_index(Smi::kZero); - context->set_math_random_cache(isolate_->heap()->undefined_value()); - } + context->set(Context::NEXT_CONTEXT_LINK, + isolate_->heap()->undefined_value()); + DCHECK(!context->global_object()->IsUndefined(context->GetIsolate())); + // Reset math random cache to get fresh random numbers. + context->set_math_random_index(Smi::kZero); + context->set_math_random_cache(isolate_->heap()->undefined_value()); + DCHECK_NULL(rehashable_global_dictionary_); + rehashable_global_dictionary_ = + context->global_object()->global_dictionary(); + } else { + // We only do rehashing for native contexts. + can_be_rehashed_ = false; } VisitRootPointer(Root::kPartialSnapshotCache, o); SerializeDeferredObjects(); @@ -104,6 +110,8 @@ void PartialSerializer::SerializeObject(HeapObject* obj, HowToCode how_to_code, } } + if (obj->IsHashTable()) CheckRehashability(obj); + // Object has not yet been serialized. Serialize it here. ObjectSerializer serializer(this, obj, &sink_, how_to_code, where_to_point); serializer.Serialize(); @@ -152,5 +160,14 @@ void PartialSerializer::SerializeEmbedderFields() { sink_.Put(kSynchronize, "Finished with embedder fields data"); } +void PartialSerializer::CheckRehashability(HeapObject* table) { + DCHECK(table->IsHashTable()); + if (!can_be_rehashed_) return; + // We can only correctly rehash if the global dictionary is the only hash + // table that we deserialize. + if (table == rehashable_global_dictionary_) return; + can_be_rehashed_ = false; +} + } // namespace internal } // namespace v8 diff --git a/deps/v8/src/snapshot/partial-serializer.h b/deps/v8/src/snapshot/partial-serializer.h index 313a8000425c27..4b3035f9e544b0 100644 --- a/deps/v8/src/snapshot/partial-serializer.h +++ b/deps/v8/src/snapshot/partial-serializer.h @@ -23,6 +23,8 @@ class PartialSerializer : public Serializer { // Serialize the objects reachable from a single object pointer. void Serialize(Object** o, bool include_global_proxy); + bool can_be_rehashed() const { return can_be_rehashed_; } + private: void SerializeObject(HeapObject* o, HowToCode how_to_code, WhereToPoint where_to_point, int skip) override; @@ -31,9 +33,15 @@ class PartialSerializer : public Serializer { void SerializeEmbedderFields(); + void CheckRehashability(HeapObject* table); + StartupSerializer* startup_serializer_; List embedder_field_holders_; v8::SerializeEmbedderFieldsCallback serialize_embedder_fields_; + GlobalDictionary* rehashable_global_dictionary_; + // Indicates whether we only serialized hash tables that we can rehash. + // TODO(yangguo): generalize rehashing, and remove this flag. + bool can_be_rehashed_; DISALLOW_COPY_AND_ASSIGN(PartialSerializer); }; diff --git a/deps/v8/src/snapshot/snapshot-common.cc b/deps/v8/src/snapshot/snapshot-common.cc index 9350ec6b54010b..9f299e697ee8ad 100644 --- a/deps/v8/src/snapshot/snapshot-common.cc +++ b/deps/v8/src/snapshot/snapshot-common.cc @@ -41,6 +41,7 @@ bool Snapshot::Initialize(Isolate* isolate) { Vector startup_data = ExtractStartupData(blob); SnapshotData snapshot_data(startup_data); Deserializer deserializer(&snapshot_data); + deserializer.SetRehashability(ExtractRehashability(blob)); bool success = isolate->Init(&deserializer); if (FLAG_profile_deserialization) { double ms = timer.Elapsed().InMillisecondsF(); @@ -62,6 +63,7 @@ MaybeHandle Snapshot::NewContextFromSnapshot( ExtractContextData(blob, static_cast(context_index)); SnapshotData snapshot_data(context_data); Deserializer deserializer(&snapshot_data); + deserializer.SetRehashability(ExtractRehashability(blob)); MaybeHandle maybe_context = deserializer.DeserializePartial( isolate, global_proxy, embedder_fields_deserializer); @@ -98,7 +100,7 @@ void ProfileDeserialization(const SnapshotData* startup_snapshot, v8::StartupData Snapshot::CreateSnapshotBlob( const SnapshotData* startup_snapshot, - const List* context_snapshots) { + const List* context_snapshots, bool can_be_rehashed) { int num_contexts = context_snapshots->length(); int startup_snapshot_offset = StartupSnapshotOffset(num_contexts); int total_length = startup_snapshot_offset; @@ -111,6 +113,8 @@ v8::StartupData Snapshot::CreateSnapshotBlob( char* data = new char[total_length]; memcpy(data + kNumberOfContextsOffset, &num_contexts, kInt32Size); + int rehashability = can_be_rehashed ? 1 : 0; + memcpy(data + kRehashabilityOffset, &rehashability, kInt32Size); int payload_offset = StartupSnapshotOffset(num_contexts); int payload_length = startup_snapshot->RawData().length(); memcpy(data + payload_offset, startup_snapshot->RawData().start(), @@ -143,6 +147,13 @@ int Snapshot::ExtractNumContexts(const v8::StartupData* data) { return num_contexts; } +bool Snapshot::ExtractRehashability(const v8::StartupData* data) { + CHECK_LT(kRehashabilityOffset, data->raw_size); + int rehashability; + memcpy(&rehashability, data->data + kRehashabilityOffset, kInt32Size); + return rehashability != 0; +} + Vector Snapshot::ExtractStartupData(const v8::StartupData* data) { int num_contexts = ExtractNumContexts(data); int startup_offset = StartupSnapshotOffset(num_contexts); diff --git a/deps/v8/src/snapshot/snapshot.h b/deps/v8/src/snapshot/snapshot.h index 7d9082e6d21080..91d60cfa89d277 100644 --- a/deps/v8/src/snapshot/snapshot.h +++ b/deps/v8/src/snapshot/snapshot.h @@ -71,7 +71,7 @@ class Snapshot : public AllStatic { static v8::StartupData CreateSnapshotBlob( const SnapshotData* startup_snapshot, - const List* context_snapshots); + const List* context_snapshots, bool can_be_rehashed); #ifdef DEBUG static bool SnapshotIsValid(v8::StartupData* snapshot_blob); @@ -79,14 +79,16 @@ class Snapshot : public AllStatic { private: static int ExtractNumContexts(const v8::StartupData* data); + static bool ExtractRehashability(const v8::StartupData* data); static Vector ExtractStartupData(const v8::StartupData* data); static Vector ExtractContextData(const v8::StartupData* data, int index); // Snapshot blob layout: // [0] number of contexts N - // [1] offset to context 0 - // [2] offset to context 1 + // [1] rehashability + // [2] offset to context 0 + // [3] offset to context 1 // ... // ... offset to context N - 1 // ... startup snapshot data @@ -94,8 +96,10 @@ class Snapshot : public AllStatic { // ... context 1 snapshot data static const int kNumberOfContextsOffset = 0; + // TODO(yangguo): generalize rehashing, and remove this flag. + static const int kRehashabilityOffset = kNumberOfContextsOffset + kInt32Size; static const int kFirstContextOffsetOffset = - kNumberOfContextsOffset + kInt32Size; + kRehashabilityOffset + kInt32Size; static int StartupSnapshotOffset(int num_contexts) { return kFirstContextOffsetOffset + num_contexts * kInt32Size; diff --git a/deps/v8/src/snapshot/startup-serializer.cc b/deps/v8/src/snapshot/startup-serializer.cc index dfc02036d80587..89eaaf55e481da 100644 --- a/deps/v8/src/snapshot/startup-serializer.cc +++ b/deps/v8/src/snapshot/startup-serializer.cc @@ -16,7 +16,8 @@ StartupSerializer::StartupSerializer( : Serializer(isolate), clear_function_code_(function_code_handling == v8::SnapshotCreator::FunctionCodeHandling::kClear), - serializing_builtins_(false) { + serializing_builtins_(false), + can_be_rehashed_(true) { InitializeCodeAddressMap(); } @@ -78,6 +79,8 @@ void StartupSerializer::SerializeObject(HeapObject* obj, HowToCode how_to_code, isolate_->heap()->uninitialized_symbol()); } + if (obj->IsHashTable()) CheckRehashability(obj); + // Object has not yet been serialized. Serialize it here. ObjectSerializer object_serializer(this, obj, &sink_, how_to_code, where_to_point); @@ -189,5 +192,17 @@ bool StartupSerializer::RootShouldBeSkipped(int root_index) { serializing_immortal_immovables_roots_; } +void StartupSerializer::CheckRehashability(HeapObject* table) { + DCHECK(table->IsHashTable()); + if (!can_be_rehashed_) return; + // We can only correctly rehash if the four hash tables below are the only + // ones that we deserialize. + if (table == isolate_->heap()->empty_slow_element_dictionary()) return; + if (table == isolate_->heap()->empty_properties_dictionary()) return; + if (table == isolate_->heap()->weak_object_to_code_table()) return; + if (table == isolate_->heap()->string_table()) return; + can_be_rehashed_ = false; +} + } // namespace internal } // namespace v8 diff --git a/deps/v8/src/snapshot/startup-serializer.h b/deps/v8/src/snapshot/startup-serializer.h index 223e1c7bff3b34..c58454d0667008 100644 --- a/deps/v8/src/snapshot/startup-serializer.h +++ b/deps/v8/src/snapshot/startup-serializer.h @@ -29,6 +29,8 @@ class StartupSerializer : public Serializer { int PartialSnapshotCacheIndex(HeapObject* o); + bool can_be_rehashed() const { return can_be_rehashed_; } + private: class PartialCacheIndexMap { public: @@ -68,12 +70,18 @@ class StartupSerializer : public Serializer { // roots. In the second pass, we serialize the rest. bool RootShouldBeSkipped(int root_index); + void CheckRehashability(HeapObject* hashtable); + bool clear_function_code_; bool serializing_builtins_; bool serializing_immortal_immovables_roots_; std::bitset root_has_been_serialized_; PartialCacheIndexMap partial_cache_index_map_; List accessor_infos_; + // Indicates whether we only serialized hash tables that we can rehash. + // TODO(yangguo): generalize rehashing, and remove this flag. + bool can_be_rehashed_; + DISALLOW_COPY_AND_ASSIGN(StartupSerializer); }; diff --git a/deps/v8/src/transitions-inl.h b/deps/v8/src/transitions-inl.h index df28c2c9913d5a..694674dc0f2f97 100644 --- a/deps/v8/src/transitions-inl.h +++ b/deps/v8/src/transitions-inl.h @@ -106,7 +106,6 @@ int TransitionArray::SearchName(Name* name, int* out_insertion_index) { } -#ifdef DEBUG bool TransitionArray::IsSpecialTransition(Name* name) { if (!name->IsSymbol()) return false; Heap* heap = name->GetHeap(); @@ -115,7 +114,6 @@ bool TransitionArray::IsSpecialTransition(Name* name) { name == heap->elements_transition_symbol() || name == heap->strict_function_transition_symbol(); } -#endif int TransitionArray::CompareKeys(Name* key1, uint32_t hash1, PropertyKind kind1, diff --git a/deps/v8/src/transitions.cc b/deps/v8/src/transitions.cc index 5333fa6e25d28b..42d1c895079a7a 100644 --- a/deps/v8/src/transitions.cc +++ b/deps/v8/src/transitions.cc @@ -551,5 +551,47 @@ int TransitionArray::Search(PropertyKind kind, Name* name, if (transition == kNotFound) return kNotFound; return SearchDetails(transition, kind, attributes, out_insertion_index); } + +void TransitionArray::Sort() { + DisallowHeapAllocation no_gc; + // In-place insertion sort. + int length = number_of_transitions(); + for (int i = 1; i < length; i++) { + Name* key = GetKey(i); + Map* target = GetTarget(i); + PropertyKind kind = kData; + PropertyAttributes attributes = NONE; + if (!IsSpecialTransition(key)) { + PropertyDetails details = GetTargetDetails(key, target); + kind = details.kind(); + attributes = details.attributes(); + } + int j; + for (j = i - 1; j >= 0; j--) { + Name* temp_key = GetKey(j); + Map* temp_target = GetTarget(j); + PropertyKind temp_kind = kData; + PropertyAttributes temp_attributes = NONE; + if (!IsSpecialTransition(temp_key)) { + PropertyDetails details = GetTargetDetails(temp_key, temp_target); + temp_kind = details.kind(); + temp_attributes = details.attributes(); + } + int cmp = + CompareKeys(temp_key, temp_key->Hash(), temp_kind, temp_attributes, + key, key->Hash(), kind, attributes); + if (cmp > 0) { + SetKey(j + 1, temp_key); + SetTarget(j + 1, temp_target); + } else { + break; + } + } + SetKey(j + 1, key); + SetTarget(j + 1, target); + } + DCHECK(IsSortedNoDuplicates()); +} + } // namespace internal } // namespace v8 diff --git a/deps/v8/src/transitions.h b/deps/v8/src/transitions.h index e553a05ce406fa..e40bbb04682d71 100644 --- a/deps/v8/src/transitions.h +++ b/deps/v8/src/transitions.h @@ -190,15 +190,17 @@ class TransitionArray: public FixedArray { void TransitionArrayVerify(); #endif + void Sort(); + #ifdef DEBUG bool IsSortedNoDuplicates(int valid_entries = -1); static bool IsSortedNoDuplicates(Map* map); static bool IsConsistentWithBackPointers(Map* map); +#endif // Returns true for a non-property transitions like elements kind, observed // or frozen transitions. static inline bool IsSpecialTransition(Name* name); -#endif // Constant for denoting key was not found. static const int kNotFound = -1; diff --git a/deps/v8/test/cctest/heap/test-heap.cc b/deps/v8/test/cctest/heap/test-heap.cc index fc2b68e809a8f8..afa62b9f5727cf 100644 --- a/deps/v8/test/cctest/heap/test-heap.cc +++ b/deps/v8/test/cctest/heap/test-heap.cc @@ -6730,5 +6730,26 @@ HEAP_TEST(Regress5831) { CHECK(chunk->NeverEvacuate()); } +UNINITIALIZED_TEST(ReinitializeStringHashSeed) { + // Enable rehashing and create an isolate and context. + i::FLAG_rehash_snapshot = true; + for (int i = 1; i < 3; i++) { + i::FLAG_hash_seed = 1337 * i; + v8::Isolate::CreateParams create_params; + create_params.array_buffer_allocator = CcTest::array_buffer_allocator(); + v8::Isolate* isolate = v8::Isolate::New(create_params); + { + v8::Isolate::Scope isolate_scope(isolate); + CHECK_EQ(1337 * i, + reinterpret_cast(isolate)->heap()->HashSeed()); + v8::HandleScope handle_scope(isolate); + v8::Local context = v8::Context::New(isolate); + CHECK(!context.IsEmpty()); + v8::Context::Scope context_scope(context); + } + isolate->Dispose(); + } +} + } // namespace internal } // namespace v8 diff --git a/deps/v8/test/cctest/test-serialize.cc b/deps/v8/test/cctest/test-serialize.cc index 058dd55d3cceae..1ab6e7bfd85731 100644 --- a/deps/v8/test/cctest/test-serialize.cc +++ b/deps/v8/test/cctest/test-serialize.cc @@ -2547,6 +2547,51 @@ TEST(SnapshotCreatorIncludeGlobalProxy) { delete[] blob.data; } +UNINITIALIZED_TEST(ReinitializeStringHashSeedNotRehashable) { + DisableAlwaysOpt(); + i::FLAG_rehash_snapshot = true; + i::FLAG_hash_seed = 42; + i::FLAG_allow_natives_syntax = true; + v8::StartupData blob; + { + v8::SnapshotCreator creator; + v8::Isolate* isolate = creator.GetIsolate(); + { + v8::HandleScope handle_scope(isolate); + v8::Local context = v8::Context::New(isolate); + v8::Context::Scope context_scope(context); + // Create dictionary mode object. + CompileRun( + "var a = {};" + "a.b = 1;" + "a.c = 2;" + "delete a.b;"); + ExpectInt32("a.c", 2); + creator.SetDefaultContext(context); + } + blob = + creator.CreateBlob(v8::SnapshotCreator::FunctionCodeHandling::kClear); + } + + i::FLAG_hash_seed = 1337; + v8::Isolate::CreateParams create_params; + create_params.array_buffer_allocator = CcTest::array_buffer_allocator(); + create_params.snapshot_blob = &blob; + v8::Isolate* isolate = v8::Isolate::New(create_params); + { + // Check that no rehashing has been performed. + CHECK_EQ(42, reinterpret_cast(isolate)->heap()->HashSeed()); + v8::Isolate::Scope isolate_scope(isolate); + v8::HandleScope handle_scope(isolate); + v8::Local context = v8::Context::New(isolate); + CHECK(!context.IsEmpty()); + v8::Context::Scope context_scope(context); + ExpectInt32("a.c", 2); + } + isolate->Dispose(); + delete[] blob.data; +} + TEST(SerializationMemoryStats) { FLAG_profile_deserialization = true; FLAG_always_opt = false; diff --git a/deps/v8/test/mjsunit/regress/regress-5902.js b/deps/v8/test/mjsunit/regress/regress-5902.js index 034b6a7951bbcc..69dde4387a5b7f 100644 --- a/deps/v8/test/mjsunit/regress/regress-5902.js +++ b/deps/v8/test/mjsunit/regress/regress-5902.js @@ -58,6 +58,5 @@ assertEquals( 'Error.prototype', 'EvalError.prototype', 'RangeError.prototype', 'ReferenceError.prototype', 'SyntaxError.prototype', 'TypeError.prototype', 'URIError.prototype', - 'Map', 'Map.prototype.constructor', 'Set', 'Set.prototype.constructor' ], log);