From da8ad4aba95a183700ef52bb9e3b92a12ec8e3c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Thu, 31 May 2018 11:11:57 +0200 Subject: [PATCH] deps: update V8 to 6.7.288.43 PR-URL: https://github.com/nodejs/node/pull/19989 Reviewed-By: James M Snell Reviewed-By: Matheus Marchini Reviewed-By: Gus Caplan Reviewed-By: Myles Borins --- deps/v8/.gitignore | 19 +- deps/v8/.gn | 3 +- deps/v8/.vpython | 13 + deps/v8/AUTHORS | 4 +- deps/v8/BUILD.gn | 227 +- deps/v8/ChangeLog | 1490 ++++++ deps/v8/DEPS | 36 +- deps/v8/LICENSE | 3 + deps/v8/OWNERS | 2 + .../trace_event/common/trace_event_common.h | 18 + deps/v8/gni/isolate.gni | 196 - deps/v8/gni/msvs_dependencies.isolate | 97 - deps/v8/gni/v8.gni | 13 + deps/v8/include/OWNERS | 4 + deps/v8/include/libplatform/libplatform.h | 6 +- deps/v8/include/libplatform/v8-tracing.h | 2 - deps/v8/include/v8-platform.h | 32 +- deps/v8/include/v8-profiler.h | 18 +- deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8.h | 197 +- deps/v8/include/v8config.h | 8 +- deps/v8/infra/config/cq.cfg | 7 +- deps/v8/infra/mb/gn_isolate_map.pyl | 74 + deps/v8/infra/mb/mb_config.pyl | 195 +- deps/v8/src/DEPS | 2 + deps/v8/src/accessors.cc | 23 +- deps/v8/src/accessors.h | 20 + deps/v8/src/allocation.cc | 4 +- deps/v8/src/allocation.h | 11 +- deps/v8/src/api-arguments-inl.h | 182 +- deps/v8/src/api-arguments.cc | 57 - deps/v8/src/api-arguments.h | 47 +- deps/v8/src/api-natives.cc | 2 +- deps/v8/src/api-natives.h | 8 +- deps/v8/src/api.cc | 480 +- deps/v8/src/api.h | 9 +- deps/v8/src/arm/assembler-arm-inl.h | 22 +- deps/v8/src/arm/assembler-arm.cc | 16 +- deps/v8/src/arm/assembler-arm.h | 24 +- deps/v8/src/arm/code-stubs-arm.cc | 44 +- deps/v8/src/arm/codegen-arm.cc | 1 + deps/v8/src/arm/frame-constants-arm.h | 24 +- deps/v8/src/arm/macro-assembler-arm.cc | 47 +- deps/v8/src/arm/macro-assembler-arm.h | 11 +- deps/v8/src/arm64/assembler-arm64-inl.h | 22 +- deps/v8/src/arm64/assembler-arm64.cc | 3 +- deps/v8/src/arm64/assembler-arm64.h | 53 +- deps/v8/src/arm64/code-stubs-arm64.cc | 43 +- deps/v8/src/arm64/codegen-arm64.cc | 1 + deps/v8/src/arm64/frame-constants-arm64.h | 22 +- deps/v8/src/arm64/macro-assembler-arm64.cc | 45 +- deps/v8/src/arm64/macro-assembler-arm64.h | 9 +- deps/v8/src/arm64/simulator-arm64.cc | 12 + deps/v8/src/arm64/simulator-arm64.h | 1 + deps/v8/src/asmjs/asm-js.cc | 64 +- deps/v8/src/asmjs/asm-js.h | 9 +- deps/v8/src/assembler.cc | 1039 +--- deps/v8/src/assembler.h | 413 +- deps/v8/src/ast/ast-traversal-visitor.h | 18 + deps/v8/src/ast/ast-value-factory.h | 2 +- deps/v8/src/ast/ast.cc | 17 + deps/v8/src/ast/ast.h | 92 +- deps/v8/src/ast/compile-time-value.cc | 2 +- deps/v8/src/ast/prettyprinter.cc | 30 + deps/v8/src/ast/scopes.cc | 1 + deps/v8/src/ast/scopes.h | 16 +- deps/v8/src/bailout-reason.h | 4 + deps/v8/src/base.isolate | 39 - deps/v8/src/base/compiler-specific.h | 10 - deps/v8/src/base/debug/stack_trace_posix.cc | 7 +- deps/v8/src/base/debug/stack_trace_win.cc | 13 - deps/v8/src/base/flags.h | 86 +- deps/v8/src/base/ieee754.cc | 10 +- deps/v8/src/base/logging.h | 18 +- deps/v8/src/base/macros.h | 82 +- .../v8/src/base/platform/condition-variable.h | 2 +- deps/v8/src/base/platform/mutex.h | 4 +- deps/v8/src/base/platform/platform-aix.cc | 10 +- deps/v8/src/base/platform/platform-cygwin.cc | 4 +- .../src/base/platform/platform-posix-time.cc | 4 +- .../src/base/platform/platform-posix-time.h | 2 +- deps/v8/src/base/platform/platform-posix.cc | 7 + deps/v8/src/base/platform/platform-solaris.cc | 5 +- deps/v8/src/base/platform/platform-win32.cc | 35 +- deps/v8/src/base/platform/platform.h | 14 + deps/v8/src/base/platform/semaphore.h | 2 +- deps/v8/src/base/template-utils.h | 19 +- deps/v8/src/base/timezone-cache.h | 4 +- .../src/base/utils/random-number-generator.h | 21 +- deps/v8/src/bootstrapper.cc | 284 +- deps/v8/src/bootstrapper.h | 2 +- deps/v8/src/boxed-float.h | 6 +- deps/v8/src/builtins/arm/builtins-arm.cc | 319 +- deps/v8/src/builtins/arm64/builtins-arm64.cc | 315 +- deps/v8/src/builtins/builtins-api.cc | 67 +- deps/v8/src/builtins/builtins-array-gen.cc | 1567 +++--- deps/v8/src/builtins/builtins-array-gen.h | 19 +- deps/v8/src/builtins/builtins-array.cc | 84 +- deps/v8/src/builtins/builtins-arraybuffer.cc | 41 +- deps/v8/src/builtins/builtins-async-gen.cc | 4 +- .../builtins/builtins-async-generator-gen.cc | 80 +- deps/v8/src/builtins/builtins-bigint.cc | 39 +- deps/v8/src/builtins/builtins-boolean.cc | 37 +- deps/v8/src/builtins/builtins-call-gen.cc | 137 +- .../src/builtins/builtins-collections-gen.cc | 63 +- deps/v8/src/builtins/builtins-console.cc | 4 +- .../src/builtins/builtins-constructor-gen.cc | 246 +- .../src/builtins/builtins-constructor-gen.h | 3 - .../src/builtins/builtins-conversion-gen.cc | 10 +- deps/v8/src/builtins/builtins-dataview.cc | 176 +- deps/v8/src/builtins/builtins-date.cc | 155 +- deps/v8/src/builtins/builtins-definitions.h | 76 +- deps/v8/src/builtins/builtins-function-gen.cc | 28 +- deps/v8/src/builtins/builtins-handler-gen.cc | 9 + deps/v8/src/builtins/builtins-ic-gen.cc | 1 + deps/v8/src/builtins/builtins-internal-gen.cc | 64 +- .../src/builtins/builtins-interpreter-gen.cc | 17 +- deps/v8/src/builtins/builtins-interpreter.cc | 17 +- deps/v8/src/builtins/builtins-iterator-gen.cc | 51 +- deps/v8/src/builtins/builtins-object-gen.cc | 39 +- deps/v8/src/builtins/builtins-promise-gen.cc | 489 +- deps/v8/src/builtins/builtins-promise-gen.h | 32 +- deps/v8/src/builtins/builtins-proxy-gen.cc | 102 +- deps/v8/src/builtins/builtins-regexp-gen.cc | 396 +- deps/v8/src/builtins/builtins-regexp-gen.h | 13 + .../builtins/builtins-sharedarraybuffer.cc | 6 +- deps/v8/src/builtins/builtins-string-gen.cc | 146 +- deps/v8/src/builtins/builtins-string-gen.h | 7 +- deps/v8/src/builtins/builtins-string.cc | 4 +- deps/v8/src/builtins/builtins-symbol.cc | 32 +- .../src/builtins/builtins-typedarray-gen.cc | 147 +- deps/v8/src/builtins/builtins-utils.h | 12 +- deps/v8/src/builtins/builtins.cc | 820 +-- deps/v8/src/builtins/builtins.h | 30 +- .../src/builtins/constants-table-builder.cc | 3 + .../v8/src/builtins/constants-table-builder.h | 4 +- .../src/builtins/growable-fixed-array-gen.cc | 4 +- deps/v8/src/builtins/ia32/builtins-ia32.cc | 316 +- deps/v8/src/builtins/mips/builtins-mips.cc | 312 +- .../v8/src/builtins/mips64/builtins-mips64.cc | 313 +- deps/v8/src/builtins/ppc/builtins-ppc.cc | 322 +- deps/v8/src/builtins/s390/builtins-s390.cc | 310 +- .../src/builtins/setup-builtins-internal.cc | 25 +- deps/v8/src/builtins/x64/builtins-x64.cc | 313 +- deps/v8/src/cancelable-task.cc | 1 - deps/v8/src/char-predicates-inl.h | 4 - deps/v8/src/code-events.h | 56 +- deps/v8/src/code-stub-assembler.cc | 1313 +++-- deps/v8/src/code-stub-assembler.h | 606 ++- deps/v8/src/code-stubs.cc | 15 +- deps/v8/src/code-stubs.h | 41 +- deps/v8/src/compilation-cache.cc | 2 +- deps/v8/src/compilation-dependencies.cc | 2 +- deps/v8/src/compilation-statistics.h | 2 +- .../compiler-dispatcher.cc | 46 +- .../compiler-dispatcher/compiler-dispatcher.h | 14 +- .../optimizing-compile-dispatcher.cc | 34 +- .../optimizing-compile-dispatcher.h | 14 +- .../unoptimized-compile-job.cc | 36 +- .../unoptimized-compile-job.h | 5 +- deps/v8/src/compiler.cc | 711 +-- deps/v8/src/compiler.h | 193 +- deps/v8/src/compiler/OWNERS | 2 + deps/v8/src/compiler/access-builder.cc | 36 +- deps/v8/src/compiler/access-builder.h | 13 +- deps/v8/src/compiler/access-info.h | 2 +- deps/v8/src/compiler/allocation-builder.h | 10 + .../v8/src/compiler/arm/code-generator-arm.cc | 105 +- .../compiler/arm/instruction-selector-arm.cc | 161 +- .../compiler/arm64/code-generator-arm64.cc | 49 +- .../compiler/arm64/instruction-codes-arm64.h | 22 +- .../arm64/instruction-scheduler-arm64.cc | 26 +- .../arm64/instruction-selector-arm64.cc | 213 +- .../src/compiler/basic-block-instrumentor.cc | 7 +- .../src/compiler/basic-block-instrumentor.h | 4 +- .../v8/src/compiler/bytecode-graph-builder.cc | 58 +- deps/v8/src/compiler/bytecode-graph-builder.h | 7 +- deps/v8/src/compiler/code-assembler.cc | 95 +- deps/v8/src/compiler/code-assembler.h | 33 +- deps/v8/src/compiler/code-generator.cc | 104 +- deps/v8/src/compiler/code-generator.h | 47 +- .../src/compiler/common-operator-reducer.cc | 4 +- deps/v8/src/compiler/common-operator.cc | 44 +- deps/v8/src/compiler/common-operator.h | 77 +- .../v8/src/compiler/control-flow-optimizer.cc | 5 +- .../src/compiler/effect-control-linearizer.cc | 391 +- .../src/compiler/effect-control-linearizer.h | 15 +- .../src/compiler/escape-analysis-reducer.cc | 3 +- deps/v8/src/compiler/frame-states.cc | 51 +- deps/v8/src/compiler/frame-states.h | 20 +- deps/v8/src/compiler/graph-assembler.cc | 11 +- deps/v8/src/compiler/graph-assembler.h | 1 + deps/v8/src/compiler/graph-visualizer.cc | 9 +- deps/v8/src/compiler/graph-visualizer.h | 9 +- .../src/compiler/ia32/code-generator-ia32.cc | 190 +- .../compiler/ia32/instruction-codes-ia32.h | 15 +- .../ia32/instruction-scheduler-ia32.cc | 13 + .../ia32/instruction-selector-ia32.cc | 230 +- deps/v8/src/compiler/instruction-codes.h | 2 + deps/v8/src/compiler/instruction-scheduler.cc | 54 +- deps/v8/src/compiler/instruction-scheduler.h | 16 +- .../src/compiler/instruction-selector-impl.h | 285 +- deps/v8/src/compiler/instruction-selector.cc | 440 +- deps/v8/src/compiler/instruction-selector.h | 258 +- deps/v8/src/compiler/instruction.cc | 4 +- deps/v8/src/compiler/instruction.h | 12 +- deps/v8/src/compiler/int64-lowering.cc | 10 +- deps/v8/src/compiler/js-builtin-reducer.cc | 1357 ----- deps/v8/src/compiler/js-builtin-reducer.h | 35 - deps/v8/src/compiler/js-call-reducer.cc | 1567 +++++- deps/v8/src/compiler/js-call-reducer.h | 41 + .../src/compiler/js-context-specialization.cc | 2 +- deps/v8/src/compiler/js-create-lowering.cc | 135 +- deps/v8/src/compiler/js-create-lowering.h | 2 + deps/v8/src/compiler/js-generic-lowering.cc | 29 +- deps/v8/src/compiler/js-inlining-heuristic.cc | 16 +- deps/v8/src/compiler/js-inlining-heuristic.h | 2 +- deps/v8/src/compiler/js-inlining.cc | 17 +- deps/v8/src/compiler/js-inlining.h | 6 +- .../js-native-context-specialization.cc | 122 +- .../js-native-context-specialization.h | 1 + deps/v8/src/compiler/js-operator.cc | 102 +- deps/v8/src/compiler/js-operator.h | 75 +- deps/v8/src/compiler/js-type-hint-lowering.cc | 3 +- deps/v8/src/compiler/js-typed-lowering.cc | 83 +- deps/v8/src/compiler/linkage.cc | 5 +- deps/v8/src/compiler/linkage.h | 5 +- deps/v8/src/compiler/load-elimination.cc | 4 +- deps/v8/src/compiler/load-elimination.h | 1 + .../src/compiler/loop-variable-optimizer.cc | 7 +- .../v8/src/compiler/machine-graph-verifier.cc | 10 +- deps/v8/src/compiler/machine-operator.cc | 214 +- deps/v8/src/compiler/machine-operator.h | 49 +- deps/v8/src/compiler/memory-optimizer.cc | 15 +- deps/v8/src/compiler/memory-optimizer.h | 9 +- .../src/compiler/mips/code-generator-mips.cc | 436 +- .../mips/instruction-selector-mips.cc | 96 +- .../compiler/mips64/code-generator-mips64.cc | 435 +- .../mips64/instruction-selector-mips64.cc | 102 +- deps/v8/src/compiler/node-matchers.h | 16 +- deps/v8/src/compiler/node-properties.cc | 1 - deps/v8/src/compiler/node.h | 6 - deps/v8/src/compiler/opcodes.h | 31 +- deps/v8/src/compiler/operation-typer.cc | 2 +- deps/v8/src/compiler/operator-properties.cc | 1 + deps/v8/src/compiler/osr.cc | 8 +- deps/v8/src/compiler/osr.h | 4 +- deps/v8/src/compiler/pipeline-statistics.cc | 6 +- deps/v8/src/compiler/pipeline-statistics.h | 2 +- deps/v8/src/compiler/pipeline.cc | 283 +- deps/v8/src/compiler/pipeline.h | 32 +- .../v8/src/compiler/ppc/code-generator-ppc.cc | 53 +- .../compiler/ppc/instruction-selector-ppc.cc | 73 +- .../src/compiler/property-access-builder.cc | 25 +- deps/v8/src/compiler/raw-machine-assembler.cc | 12 +- deps/v8/src/compiler/raw-machine-assembler.h | 44 +- .../v8/src/compiler/redundancy-elimination.cc | 1 - .../compiler/register-allocator-verifier.cc | 18 +- .../compiler/register-allocator-verifier.h | 5 +- deps/v8/src/compiler/register-allocator.cc | 37 +- deps/v8/src/compiler/register-allocator.h | 9 +- deps/v8/src/compiler/representation-change.cc | 30 +- deps/v8/src/compiler/representation-change.h | 2 +- .../src/compiler/s390/code-generator-s390.cc | 43 +- .../s390/instruction-selector-s390.cc | 149 +- deps/v8/src/compiler/schedule.cc | 19 + deps/v8/src/compiler/schedule.h | 4 + deps/v8/src/compiler/simd-scalar-lowering.cc | 47 +- deps/v8/src/compiler/simplified-lowering.cc | 150 +- deps/v8/src/compiler/simplified-operator.cc | 69 +- deps/v8/src/compiler/simplified-operator.h | 107 +- .../src/compiler/store-store-elimination.cc | 4 +- deps/v8/src/compiler/type-cache.h | 4 + deps/v8/src/compiler/typed-optimization.cc | 148 +- deps/v8/src/compiler/typed-optimization.h | 8 +- deps/v8/src/compiler/typer.cc | 71 +- deps/v8/src/compiler/types.cc | 34 +- deps/v8/src/compiler/types.h | 52 +- deps/v8/src/compiler/verifier.cc | 83 +- deps/v8/src/compiler/wasm-compiler.cc | 1192 ++--- deps/v8/src/compiler/wasm-compiler.h | 204 +- deps/v8/src/compiler/wasm-linkage.cc | 42 +- .../v8/src/compiler/x64/code-generator-x64.cc | 288 +- .../src/compiler/x64/instruction-codes-x64.h | 484 +- .../compiler/x64/instruction-scheduler-x64.cc | 40 + .../compiler/x64/instruction-selector-x64.cc | 295 +- deps/v8/src/contexts-inl.h | 27 +- deps/v8/src/contexts.h | 94 +- deps/v8/src/conversions.cc | 2 +- deps/v8/src/counters.h | 14 + deps/v8/src/d8-console.cc | 2 +- deps/v8/src/d8-posix.cc | 8 - deps/v8/src/d8-windows.cc | 8 - deps/v8/src/d8.cc | 129 +- deps/v8/src/d8.h | 18 +- deps/v8/src/d8.isolate | 16 - deps/v8/src/date.cc | 72 +- deps/v8/src/date.h | 65 +- deps/v8/src/debug/debug-coverage.cc | 62 +- deps/v8/src/debug/debug-evaluate.cc | 276 +- deps/v8/src/debug/debug-evaluate.h | 20 +- deps/v8/src/debug/debug-interface.h | 24 +- deps/v8/src/debug/debug-scopes.cc | 17 +- deps/v8/src/debug/debug-scopes.h | 8 +- deps/v8/src/debug/debug.cc | 407 +- deps/v8/src/debug/debug.h | 88 +- deps/v8/src/debug/liveedit.cc | 61 +- deps/v8/src/debug/liveedit.h | 5 +- deps/v8/src/debug/liveedit.js | 2 +- deps/v8/src/debug/mirrors.js | 4 +- deps/v8/src/deoptimizer.cc | 328 +- deps/v8/src/deoptimizer.h | 74 +- deps/v8/src/disassembler.cc | 6 +- deps/v8/src/elements.cc | 5 +- deps/v8/src/elements.h | 9 +- deps/v8/src/execution.cc | 10 +- deps/v8/src/execution.h | 17 +- deps/v8/src/external-reference-table.cc | 423 +- deps/v8/src/external-reference-table.h | 55 +- deps/v8/src/external-reference.cc | 1028 ++++ deps/v8/src/external-reference.h | 305 ++ deps/v8/src/feedback-vector-inl.h | 52 +- deps/v8/src/feedback-vector.cc | 80 +- deps/v8/src/feedback-vector.h | 68 +- deps/v8/src/flag-definitions.h | 72 +- deps/v8/src/frame-constants.h | 145 +- deps/v8/src/frames-inl.h | 10 +- deps/v8/src/frames.cc | 210 +- deps/v8/src/frames.h | 57 +- deps/v8/src/gdb-jit.cc | 28 +- deps/v8/src/global-handles.cc | 14 +- deps/v8/src/globals.h | 106 +- deps/v8/src/handles.cc | 9 +- deps/v8/src/heap-symbols.h | 6 +- deps/v8/src/heap/array-buffer-collector.cc | 8 +- deps/v8/src/heap/array-buffer-tracker-inl.h | 12 +- deps/v8/src/heap/array-buffer-tracker.cc | 35 +- deps/v8/src/heap/array-buffer-tracker.h | 12 +- deps/v8/src/heap/code-stats.cc | 8 +- deps/v8/src/heap/concurrent-marking.cc | 199 +- deps/v8/src/{ => heap}/factory-inl.h | 9 +- deps/v8/src/{ => heap}/factory.cc | 1894 ++++--- deps/v8/src/{ => heap}/factory.h | 278 +- deps/v8/src/heap/gc-tracer.cc | 58 +- deps/v8/src/heap/gc-tracer.h | 14 + deps/v8/src/heap/heap-inl.h | 235 +- deps/v8/src/heap/heap.cc | 1949 ++----- deps/v8/src/heap/heap.h | 556 +- deps/v8/src/heap/incremental-marking-inl.h | 18 +- deps/v8/src/heap/incremental-marking-job.cc | 4 +- deps/v8/src/heap/incremental-marking.cc | 66 +- deps/v8/src/heap/incremental-marking.h | 10 +- deps/v8/src/heap/invalidated-slots-inl.h | 2 +- deps/v8/src/heap/item-parallel-job.cc | 12 +- deps/v8/src/heap/item-parallel-job.h | 4 +- deps/v8/src/heap/mark-compact-inl.h | 74 +- deps/v8/src/heap/mark-compact.cc | 4712 +++++++++-------- deps/v8/src/heap/mark-compact.h | 184 +- deps/v8/src/heap/marking.cc | 10 + deps/v8/src/heap/marking.h | 2 + deps/v8/src/heap/memory-reducer.cc | 2 +- deps/v8/src/heap/object-stats.cc | 77 +- deps/v8/src/heap/object-stats.h | 3 - deps/v8/src/heap/objects-visiting-inl.h | 39 +- deps/v8/src/heap/objects-visiting.h | 8 +- deps/v8/src/heap/remembered-set.h | 19 +- deps/v8/src/heap/scavenge-job.cc | 2 +- deps/v8/src/heap/scavenger-inl.h | 88 +- deps/v8/src/heap/scavenger.cc | 77 +- deps/v8/src/heap/scavenger.h | 16 +- deps/v8/src/heap/setup-heap-internal.cc | 250 +- deps/v8/src/heap/spaces-inl.h | 6 +- deps/v8/src/heap/spaces.cc | 115 +- deps/v8/src/heap/spaces.h | 75 +- deps/v8/src/heap/store-buffer.cc | 10 +- deps/v8/src/heap/sweeper.cc | 77 +- deps/v8/src/heap/sweeper.h | 20 +- deps/v8/src/ia32/assembler-ia32-inl.h | 26 +- deps/v8/src/ia32/assembler-ia32.cc | 25 +- deps/v8/src/ia32/assembler-ia32.h | 44 +- deps/v8/src/ia32/code-stubs-ia32.cc | 118 +- deps/v8/src/ia32/codegen-ia32.cc | 3 +- deps/v8/src/ia32/disasm-ia32.cc | 30 + deps/v8/src/ia32/frame-constants-ia32.h | 36 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 49 +- deps/v8/src/ia32/macro-assembler-ia32.h | 18 +- deps/v8/src/ia32/sse-instr.h | 2 + deps/v8/src/ic/accessor-assembler.cc | 695 ++- deps/v8/src/ic/accessor-assembler.h | 79 +- deps/v8/src/ic/handler-configuration-inl.h | 28 +- deps/v8/src/ic/handler-configuration.cc | 74 +- deps/v8/src/ic/handler-configuration.h | 24 +- deps/v8/src/ic/ic.cc | 417 +- deps/v8/src/ic/ic.h | 61 +- deps/v8/src/ic/keyed-store-generic.cc | 325 +- .../src/inspector/injected-script-source.js | 21 +- deps/v8/src/inspector/injected-script.cc | 31 +- deps/v8/src/inspector/injected-script.h | 2 + .../inspector/inspector_protocol_config.json | 2 +- deps/v8/src/inspector/js_protocol.json | 66 +- deps/v8/src/inspector/js_protocol.pdl | 34 +- deps/v8/src/inspector/string-16.cc | 25 +- deps/v8/src/inspector/string-16.h | 2 + deps/v8/src/inspector/v8-console-message.cc | 10 + deps/v8/src/inspector/v8-console.cc | 41 +- .../src/inspector/v8-debugger-agent-impl.cc | 95 +- .../v8/src/inspector/v8-debugger-agent-impl.h | 13 +- deps/v8/src/inspector/v8-debugger-script.cc | 82 +- deps/v8/src/inspector/v8-debugger-script.h | 21 +- deps/v8/src/inspector/v8-debugger.cc | 66 +- deps/v8/src/inspector/v8-debugger.h | 11 +- .../src/inspector/v8-injected-script-host.cc | 3 +- deps/v8/src/inspector/v8-inspector-impl.cc | 21 +- deps/v8/src/inspector/v8-inspector-impl.h | 2 + .../inspector/v8-inspector-session-impl.cc | 5 +- .../src/inspector/v8-profiler-agent-impl.cc | 13 - .../v8/src/inspector/v8-profiler-agent-impl.h | 4 - .../v8/src/inspector/v8-runtime-agent-impl.cc | 42 +- deps/v8/src/inspector/v8-runtime-agent-impl.h | 8 +- deps/v8/src/inspector/wasm-translation.cc | 213 +- deps/v8/src/inspector/wasm-translation.h | 7 + deps/v8/src/instruction-stream.cc | 95 +- deps/v8/src/instruction-stream.h | 35 +- deps/v8/src/interface-descriptors.h | 5 +- .../src/interpreter/bytecode-array-builder.cc | 11 + .../src/interpreter/bytecode-array-builder.h | 6 + deps/v8/src/interpreter/bytecode-generator.cc | 279 +- deps/v8/src/interpreter/bytecode-generator.h | 19 +- deps/v8/src/interpreter/bytecodes.h | 3 + .../src/interpreter/constant-array-builder.h | 16 +- .../src/interpreter/handler-table-builder.cc | 2 +- .../src/interpreter/interpreter-assembler.cc | 164 +- .../src/interpreter/interpreter-assembler.h | 64 +- .../src/interpreter/interpreter-generator.cc | 93 +- .../interpreter-intrinsics-generator.cc | 22 +- deps/v8/src/interpreter/interpreter.cc | 43 +- deps/v8/src/interpreter/interpreter.h | 5 +- .../interpreter/setup-interpreter-internal.cc | 2 +- deps/v8/src/intl.cc | 55 +- deps/v8/src/intl.h | 27 +- deps/v8/src/isolate-inl.h | 25 +- deps/v8/src/isolate.cc | 389 +- deps/v8/src/isolate.h | 73 +- deps/v8/src/js/array.js | 50 +- deps/v8/src/js/intl.js | 89 +- deps/v8/src/js/messages.js | 70 - deps/v8/src/js/prologue.js | 36 - deps/v8/src/js/spread.js | 51 - deps/v8/src/js/typedarray.js | 27 - deps/v8/src/json-parser.cc | 7 +- deps/v8/src/json-parser.h | 9 +- deps/v8/src/json-stringifier.h | 13 +- deps/v8/src/keys.cc | 12 +- deps/v8/src/keys.h | 3 + deps/v8/src/layout-descriptor.h | 6 +- .../default-foreground-task-runner.cc | 23 +- .../default-foreground-task-runner.h | 12 +- deps/v8/src/libplatform/default-platform.cc | 32 +- deps/v8/src/libplatform/default-platform.h | 11 +- ... => default-worker-threads-task-runner.cc} | 25 +- ...h => default-worker-threads-task-runner.h} | 12 +- .../src/libplatform/tracing/trace-writer.cc | 13 +- .../v8/src/libplatform/tracing/trace-writer.h | 1 - deps/v8/src/log-utils.h | 4 +- deps/v8/src/log.cc | 230 +- deps/v8/src/log.h | 19 +- deps/v8/src/lookup.cc | 134 +- deps/v8/src/lookup.h | 19 +- deps/v8/src/macro-assembler.h | 1 + deps/v8/src/managed.h | 2 +- deps/v8/src/messages.cc | 33 +- deps/v8/src/messages.h | 16 +- deps/v8/src/mips/assembler-mips-inl.h | 22 +- deps/v8/src/mips/assembler-mips.cc | 14 +- deps/v8/src/mips/assembler-mips.h | 9 +- deps/v8/src/mips/code-stubs-mips.cc | 70 +- deps/v8/src/mips/codegen-mips.cc | 1 + deps/v8/src/mips/frame-constants-mips.h | 28 +- deps/v8/src/mips/macro-assembler-mips.cc | 1172 ++-- deps/v8/src/mips/macro-assembler-mips.h | 179 +- deps/v8/src/mips/simulator-mips.cc | 4 +- deps/v8/src/mips64/assembler-mips64-inl.h | 26 +- deps/v8/src/mips64/assembler-mips64.cc | 14 +- deps/v8/src/mips64/assembler-mips64.h | 9 +- deps/v8/src/mips64/code-stubs-mips64.cc | 70 +- deps/v8/src/mips64/codegen-mips64.cc | 1 + deps/v8/src/mips64/frame-constants-mips64.h | 28 +- deps/v8/src/mips64/macro-assembler-mips64.cc | 917 ++-- deps/v8/src/mips64/macro-assembler-mips64.h | 158 +- deps/v8/src/mips64/simulator-mips64.cc | 4 +- deps/v8/src/objects-body-descriptors-inl.h | 359 +- deps/v8/src/objects-body-descriptors.h | 31 +- deps/v8/src/objects-debug.cc | 276 +- deps/v8/src/objects-inl.h | 123 +- deps/v8/src/objects-printer.cc | 284 +- deps/v8/src/objects.cc | 922 ++-- deps/v8/src/objects.h | 589 ++- deps/v8/src/objects/bigint.cc | 145 +- deps/v8/src/objects/bigint.h | 23 +- deps/v8/src/objects/code-inl.h | 125 +- deps/v8/src/objects/code.h | 98 +- deps/v8/src/objects/debug-objects-inl.h | 2 +- deps/v8/src/objects/debug-objects.cc | 20 +- deps/v8/src/objects/debug-objects.h | 31 +- deps/v8/src/objects/descriptor-array.h | 8 +- deps/v8/src/objects/dictionary.h | 41 +- deps/v8/src/objects/fixed-array-inl.h | 39 +- deps/v8/src/objects/fixed-array.h | 86 +- deps/v8/src/objects/frame-array.h | 2 +- deps/v8/src/objects/hash-table.h | 59 +- deps/v8/src/objects/intl-objects.cc | 41 +- deps/v8/src/objects/intl-objects.h | 17 +- deps/v8/src/objects/js-array-inl.h | 83 +- deps/v8/src/objects/js-array.h | 90 +- deps/v8/src/objects/js-promise.h | 7 +- .../objects/js-regexp-string-iterator-inl.h | 35 + .../src/objects/js-regexp-string-iterator.h | 59 + deps/v8/src/objects/literal-objects.cc | 2 +- deps/v8/src/objects/literal-objects.h | 1 + deps/v8/src/objects/map-inl.h | 12 +- deps/v8/src/objects/map.h | 83 +- deps/v8/src/objects/maybe-object-inl.h | 92 + deps/v8/src/objects/maybe-object.h | 108 + deps/v8/src/objects/module.cc | 23 + deps/v8/src/objects/module.h | 29 +- deps/v8/src/objects/name.h | 5 +- deps/v8/src/objects/object-macros-undef.h | 6 + deps/v8/src/objects/object-macros.h | 48 + deps/v8/src/objects/scope-info.cc | 370 +- deps/v8/src/objects/scope-info.h | 130 +- deps/v8/src/objects/script-inl.h | 3 +- deps/v8/src/objects/script.h | 4 +- .../v8/src/objects/shared-function-info-inl.h | 399 +- deps/v8/src/objects/shared-function-info.h | 237 +- deps/v8/src/objects/string-inl.h | 2 +- deps/v8/src/objects/string-table.h | 11 +- deps/v8/src/objects/string.h | 10 +- deps/v8/src/objects/template-objects.cc | 2 +- ...-info.cc => optimized-compilation-info.cc} | 125 +- ...on-info.h => optimized-compilation-info.h} | 173 +- deps/v8/src/parsing/parse-info.cc | 34 +- deps/v8/src/parsing/parse-info.h | 12 +- deps/v8/src/parsing/parser-base.h | 6 + deps/v8/src/parsing/parser.cc | 143 +- deps/v8/src/parsing/parser.h | 11 +- deps/v8/src/parsing/parsing.cc | 2 +- deps/v8/src/parsing/pattern-rewriter.cc | 58 +- deps/v8/src/parsing/scanner.cc | 182 +- deps/v8/src/parsing/scanner.h | 27 +- deps/v8/src/perf-jit.cc | 50 +- deps/v8/src/perf-jit.h | 11 +- deps/v8/src/ppc/assembler-ppc-inl.h | 23 +- deps/v8/src/ppc/assembler-ppc.cc | 38 +- deps/v8/src/ppc/assembler-ppc.h | 9 +- deps/v8/src/ppc/code-stubs-ppc.cc | 49 +- deps/v8/src/ppc/codegen-ppc.cc | 1 + deps/v8/src/ppc/constants-ppc.h | 4 + deps/v8/src/ppc/frame-constants-ppc.h | 24 +- deps/v8/src/ppc/macro-assembler-ppc.cc | 127 +- deps/v8/src/ppc/macro-assembler-ppc.h | 34 +- deps/v8/src/profiler/allocation-tracker.cc | 2 +- deps/v8/src/profiler/heap-profiler.cc | 10 +- deps/v8/src/profiler/heap-profiler.h | 7 +- .../src/profiler/heap-snapshot-generator.cc | 214 +- .../v8/src/profiler/heap-snapshot-generator.h | 10 +- deps/v8/src/profiler/profile-generator.cc | 2 +- deps/v8/src/profiler/profiler-listener.cc | 28 +- deps/v8/src/profiler/profiler-listener.h | 6 +- .../v8/src/profiler/sampling-heap-profiler.cc | 2 +- deps/v8/src/property-descriptor.cc | 2 +- deps/v8/src/prototype.h | 4 +- .../regexp/arm/regexp-macro-assembler-arm.cc | 6 +- .../arm64/regexp-macro-assembler-arm64.cc | 4 +- .../ia32/regexp-macro-assembler-ia32.cc | 6 +- deps/v8/src/regexp/jsregexp.cc | 4 +- deps/v8/src/regexp/jsregexp.h | 10 +- .../mips/regexp-macro-assembler-mips.cc | 4 +- .../mips64/regexp-macro-assembler-mips64.cc | 4 +- .../regexp/ppc/regexp-macro-assembler-ppc.cc | 6 +- deps/v8/src/regexp/regexp-macro-assembler.cc | 4 +- deps/v8/src/regexp/regexp-parser.cc | 2 +- deps/v8/src/regexp/regexp-utils.cc | 2 +- deps/v8/src/regexp/regexp-utils.h | 8 +- .../s390/regexp-macro-assembler-s390.cc | 6 +- .../regexp/x64/regexp-macro-assembler-x64.cc | 6 +- deps/v8/src/register-configuration.cc | 20 +- deps/v8/src/runtime-profiler.cc | 16 +- deps/v8/src/runtime/runtime-array.cc | 22 +- deps/v8/src/runtime/runtime-atomics.cc | 2 +- deps/v8/src/runtime/runtime-classes.cc | 10 +- deps/v8/src/runtime/runtime-collections.cc | 2 +- deps/v8/src/runtime/runtime-compiler.cc | 15 +- deps/v8/src/runtime/runtime-date.cc | 2 +- deps/v8/src/runtime/runtime-debug.cc | 50 +- deps/v8/src/runtime/runtime-forin.cc | 14 +- deps/v8/src/runtime/runtime-function.cc | 27 +- deps/v8/src/runtime/runtime-generator.cc | 6 +- deps/v8/src/runtime/runtime-internal.cc | 31 +- deps/v8/src/runtime/runtime-intl.cc | 23 +- deps/v8/src/runtime/runtime-literals.cc | 5 +- deps/v8/src/runtime/runtime-liveedit.cc | 6 +- deps/v8/src/runtime/runtime-object.cc | 32 +- deps/v8/src/runtime/runtime-promise.cc | 1 + deps/v8/src/runtime/runtime-proxy.cc | 2 +- deps/v8/src/runtime/runtime-regexp.cc | 19 +- deps/v8/src/runtime/runtime-scopes.cc | 13 - deps/v8/src/runtime/runtime-test.cc | 59 +- deps/v8/src/runtime/runtime-typedarray.cc | 2 +- deps/v8/src/runtime/runtime-wasm.cc | 39 +- deps/v8/src/runtime/runtime.cc | 33 + deps/v8/src/runtime/runtime.h | 571 +- deps/v8/src/s390/assembler-s390-inl.h | 24 +- deps/v8/src/s390/assembler-s390.cc | 3 +- deps/v8/src/s390/assembler-s390.h | 8 +- deps/v8/src/s390/code-stubs-s390.cc | 45 +- deps/v8/src/s390/codegen-s390.cc | 1 + deps/v8/src/s390/frame-constants-s390.h | 24 +- deps/v8/src/s390/macro-assembler-s390.cc | 51 +- deps/v8/src/s390/macro-assembler-s390.h | 23 +- deps/v8/src/simulator-base.h | 1 + .../snapshot/builtin-deserializer-allocator.h | 16 + deps/v8/src/snapshot/builtin-deserializer.cc | 30 +- .../snapshot/builtin-serializer-allocator.cc | 6 +- deps/v8/src/snapshot/code-serializer.cc | 153 +- deps/v8/src/snapshot/code-serializer.h | 29 +- .../default-deserializer-allocator.cc | 15 +- .../snapshot/default-deserializer-allocator.h | 15 + .../snapshot/default-serializer-allocator.cc | 14 +- deps/v8/src/snapshot/deserializer.cc | 232 +- deps/v8/src/snapshot/deserializer.h | 23 +- deps/v8/src/snapshot/embedded-empty.cc | 24 + deps/v8/src/snapshot/macros.h | 78 + deps/v8/src/snapshot/mksnapshot.cc | 275 +- deps/v8/src/snapshot/object-deserializer.cc | 11 +- deps/v8/src/snapshot/partial-deserializer.cc | 2 +- deps/v8/src/snapshot/partial-serializer.cc | 12 +- deps/v8/src/snapshot/serializer-common.cc | 9 +- deps/v8/src/snapshot/serializer-common.h | 108 +- deps/v8/src/snapshot/serializer.cc | 77 +- deps/v8/src/snapshot/serializer.h | 20 +- deps/v8/src/snapshot/snapshot-common.cc | 156 + deps/v8/src/snapshot/snapshot.h | 58 + deps/v8/src/snapshot/startup-deserializer.cc | 2 +- deps/v8/src/snapshot/startup-serializer.cc | 17 +- deps/v8/src/snapshot/startup-serializer.h | 6 +- deps/v8/src/source-position-table.cc | 31 +- deps/v8/src/source-position-table.h | 8 +- deps/v8/src/source-position.cc | 4 +- deps/v8/src/source-position.h | 7 +- deps/v8/src/startup-data-util.cc | 9 +- deps/v8/src/string-builder.h | 2 +- deps/v8/src/string-stream.cc | 4 +- deps/v8/src/third_party/vtune/BUILD.gn | 2 +- deps/v8/src/transitions-inl.h | 57 +- deps/v8/src/transitions.cc | 195 +- deps/v8/src/transitions.h | 100 +- deps/v8/src/trap-handler/handler-outside.cc | 47 +- deps/v8/src/trap-handler/trap-handler.h | 25 +- deps/v8/src/unoptimized-compilation-info.cc | 64 + deps/v8/src/unoptimized-compilation-info.h | 138 + deps/v8/src/utils.h | 45 + deps/v8/src/v8.h | 7 +- deps/v8/src/v8memory.h | 4 + deps/v8/src/value-serializer.cc | 62 +- deps/v8/src/value-serializer.h | 99 +- deps/v8/src/visitors.h | 9 + deps/v8/src/wasm/OWNERS | 5 +- .../wasm/baseline/arm/liftoff-assembler-arm.h | 120 +- .../baseline/arm64/liftoff-assembler-arm64.h | 123 +- .../baseline/ia32/liftoff-assembler-ia32.h | 639 ++- .../v8/src/wasm/baseline/liftoff-assembler.cc | 76 +- deps/v8/src/wasm/baseline/liftoff-assembler.h | 195 +- deps/v8/src/wasm/baseline/liftoff-compiler.cc | 740 ++- deps/v8/src/wasm/baseline/liftoff-register.h | 19 +- deps/v8/src/wasm/baseline/mips/OWNERS | 3 + .../baseline/mips/liftoff-assembler-mips.h | 566 +- deps/v8/src/wasm/baseline/mips64/OWNERS | 3 + .../mips64/liftoff-assembler-mips64.h | 421 +- .../wasm/baseline/ppc/liftoff-assembler-ppc.h | 125 +- .../baseline/s390/liftoff-assembler-s390.h | 125 +- .../wasm/baseline/x64/liftoff-assembler-x64.h | 566 +- deps/v8/src/wasm/compilation-manager.cc | 19 +- deps/v8/src/wasm/compilation-manager.h | 9 +- deps/v8/src/wasm/decoder.h | 3 + deps/v8/src/wasm/function-body-decoder-impl.h | 141 +- deps/v8/src/wasm/function-body-decoder.cc | 93 +- deps/v8/src/wasm/module-compiler.cc | 3367 +++++------- deps/v8/src/wasm/module-compiler.h | 69 +- deps/v8/src/wasm/module-decoder.cc | 213 +- deps/v8/src/wasm/module-decoder.h | 16 + deps/v8/src/wasm/wasm-code-manager.cc | 650 ++- deps/v8/src/wasm/wasm-code-manager.h | 185 +- deps/v8/src/wasm/wasm-code-specialization.cc | 238 +- deps/v8/src/wasm/wasm-code-specialization.h | 34 +- deps/v8/src/wasm/wasm-code-wrapper.cc | 76 - deps/v8/src/wasm/wasm-code-wrapper.h | 50 - deps/v8/src/wasm/wasm-constants.h | 3 +- deps/v8/src/wasm/wasm-debug.cc | 147 +- deps/v8/src/wasm/wasm-engine.cc | 18 + deps/v8/src/wasm/wasm-engine.h | 16 +- deps/v8/src/wasm/wasm-interpreter.cc | 490 +- deps/v8/src/wasm/wasm-interpreter.h | 17 +- deps/v8/src/wasm/wasm-js.cc | 272 +- deps/v8/src/wasm/wasm-memory.cc | 274 +- deps/v8/src/wasm/wasm-memory.h | 101 +- deps/v8/src/wasm/wasm-module.cc | 174 +- deps/v8/src/wasm/wasm-module.h | 51 +- deps/v8/src/wasm/wasm-objects-inl.h | 230 +- deps/v8/src/wasm/wasm-objects.cc | 1099 ++-- deps/v8/src/wasm/wasm-objects.h | 632 ++- deps/v8/src/wasm/wasm-opcodes.cc | 40 +- deps/v8/src/wasm/wasm-opcodes.h | 254 +- deps/v8/src/wasm/wasm-result.cc | 2 +- deps/v8/src/wasm/wasm-result.h | 2 +- deps/v8/src/wasm/wasm-serialization.cc | 197 +- deps/v8/src/wasm/wasm-text.cc | 2 +- deps/v8/src/x64/assembler-x64-inl.h | 26 +- deps/v8/src/x64/assembler-x64.cc | 4 +- deps/v8/src/x64/assembler-x64.h | 77 +- deps/v8/src/x64/code-stubs-x64.cc | 114 +- deps/v8/src/x64/codegen-x64.cc | 1 + deps/v8/src/x64/disasm-x64.cc | 12 +- deps/v8/src/x64/frame-constants-x64.h | 36 +- deps/v8/src/x64/macro-assembler-x64.cc | 111 +- deps/v8/src/x64/macro-assembler-x64.h | 32 +- deps/v8/src/zone/zone.cc | 6 +- deps/v8/test/BUILD.gn | 262 +- deps/v8/test/benchmarks/BUILD.gn | 16 + deps/v8/test/benchmarks/benchmarks.isolate | 14 - deps/v8/test/bot_default.isolate | 24 - deps/v8/test/cctest/BUILD.gn | 22 +- deps/v8/test/cctest/cctest.cc | 5 +- deps/v8/test/cctest/cctest.h | 18 +- deps/v8/test/cctest/cctest.isolate | 16 - deps/v8/test/cctest/cctest.status | 83 +- deps/v8/test/cctest/cctest_exe.isolate | 13 - .../cctest/compiler/code-assembler-tester.h | 20 +- deps/v8/test/cctest/compiler/codegen-tester.h | 5 +- .../test/cctest/compiler/function-tester.cc | 18 +- .../cctest/compiler/graph-builder-tester.h | 5 +- .../cctest/compiler/test-code-generator.cc | 286 +- .../compiler/test-instruction-scheduler.cc | 115 + .../test/cctest/compiler/test-instruction.cc | 2 +- .../cctest/compiler/test-js-constant-cache.cc | 31 +- .../test-js-context-specialization.cc | 14 +- .../cctest/compiler/test-js-typed-lowering.cc | 14 +- deps/v8/test/cctest/compiler/test-linkage.cc | 16 +- .../cctest/compiler/test-multiple-return.cc | 173 +- .../test-run-bytecode-graph-builder.cc | 9 +- .../cctest/compiler/test-run-intrinsics.cc | 5 +- .../cctest/compiler/test-run-jsobjects.cc | 2 +- .../test/cctest/compiler/test-run-machops.cc | 23 - .../cctest/compiler/test-run-native-calls.cc | 3 +- .../v8/test/cctest/compiler/test-run-stubs.cc | 4 +- .../cctest/compiler/test-run-wasm-machops.cc | 199 - deps/v8/test/cctest/compiler/value-helper.h | 10 +- deps/v8/test/cctest/heap/heap-tester.h | 9 + deps/v8/test/cctest/heap/heap-utils.cc | 2 +- deps/v8/test/cctest/heap/test-alloc.cc | 83 +- deps/v8/test/cctest/heap/test-compaction.cc | 2 +- deps/v8/test/cctest/heap/test-heap.cc | 336 +- .../cctest/heap/test-incremental-marking.cc | 9 + .../cctest/heap/test-invalidated-slots.cc | 4 +- deps/v8/test/cctest/heap/test-mark-compact.cc | 40 +- .../test/cctest/heap/test-page-promotion.cc | 2 +- deps/v8/test/cctest/heap/test-spaces.cc | 10 +- .../test/cctest/heap/test-weak-references.cc | 430 ++ .../bytecode-expectations-printer.cc | 9 +- .../ArrayLiterals.golden | 40 +- .../AsyncGenerators.golden | 2 +- .../CallAndSpread.golden | 46 +- .../bytecode_expectations/CallRuntime.golden | 21 - .../CompoundExpressions.golden | 4 +- .../CountOperators.golden | 8 +- .../DeclareGlobals.golden | 10 +- .../bytecode_expectations/Delete.golden | 8 +- .../bytecode_expectations/ForAwaitOf.golden | 10 +- .../bytecode_expectations/ForIn.golden | 2 +- .../bytecode_expectations/ForOf.golden | 10 +- .../bytecode_expectations/ForOfLoop.golden | 18 +- .../GenerateTestUndetectable.golden | 16 +- .../bytecode_expectations/Generators.golden | 2 +- .../bytecode_expectations/NewAndSpread.golden | 44 +- .../ObjectLiterals.golden | 46 +- .../StandardForLoop.golden | 4 +- .../SuperCallAndSpread.golden | 43 +- .../TemplateLiterals.golden | 222 + .../TopLevelObjectLiterals.golden | 6 +- .../WithStatement.golden | 2 +- .../cctest/interpreter/interpreter-tester.h | 4 +- .../interpreter/test-bytecode-generator.cc | 38 +- .../cctest/interpreter/test-interpreter.cc | 23 + .../interpreter/test-source-positions.cc | 2 +- .../test/cctest/libplatform/test-tracing.cc | 83 +- .../cctest/parsing/test-parse-decision.cc | 2 +- .../cctest/parsing/test-scanner-streams.cc | 3 +- deps/v8/test/cctest/test-api-accessors.cc | 94 + deps/v8/test/cctest/test-api-interceptors.cc | 54 + deps/v8/test/cctest/test-api.cc | 307 +- deps/v8/test/cctest/test-array-list.cc | 2 +- deps/v8/test/cctest/test-assembler-arm.cc | 2 +- deps/v8/test/cctest/test-assembler-arm64.cc | 12 +- deps/v8/test/cctest/test-assembler-ia32.cc | 35 +- deps/v8/test/cctest/test-assembler-mips.cc | 69 +- deps/v8/test/cctest/test-assembler-mips64.cc | 69 +- deps/v8/test/cctest/test-assembler-ppc.cc | 2 +- deps/v8/test/cctest/test-assembler-s390.cc | 2 +- deps/v8/test/cctest/test-assembler-x64.cc | 197 +- deps/v8/test/cctest/test-code-layout.cc | 12 +- .../test/cctest/test-code-stub-assembler.cc | 177 +- deps/v8/test/cctest/test-code-stubs-arm.cc | 4 +- deps/v8/test/cctest/test-code-stubs-arm64.cc | 5 +- deps/v8/test/cctest/test-code-stubs-ia32.cc | 4 +- deps/v8/test/cctest/test-code-stubs-mips.cc | 4 +- deps/v8/test/cctest/test-code-stubs-mips64.cc | 4 +- deps/v8/test/cctest/test-code-stubs-x64.cc | 4 +- deps/v8/test/cctest/test-code-stubs.cc | 2 +- deps/v8/test/cctest/test-compiler.cc | 54 +- deps/v8/test/cctest/test-conversions.cc | 2 +- deps/v8/test/cctest/test-cpu-profiler.cc | 18 +- deps/v8/test/cctest/test-date.cc | 8 +- deps/v8/test/cctest/test-debug.cc | 689 ++- deps/v8/test/cctest/test-dictionary.cc | 2 +- deps/v8/test/cctest/test-disasm-ia32.cc | 26 +- deps/v8/test/cctest/test-disasm-x64.cc | 16 +- deps/v8/test/cctest/test-elements-kind.cc | 2 +- deps/v8/test/cctest/test-feedback-vector.cc | 7 +- deps/v8/test/cctest/test-feedback-vector.h | 10 +- .../test/cctest/test-field-type-tracking.cc | 22 +- deps/v8/test/cctest/test-global-handles.cc | 3 +- deps/v8/test/cctest/test-heap-profiler.cc | 447 +- deps/v8/test/cctest/test-identity-map.cc | 2 +- .../test-isolate-independent-builtins.cc | 250 +- deps/v8/test/cctest/test-log.cc | 31 +- .../test/cctest/test-macro-assembler-mips.cc | 521 +- .../cctest/test-macro-assembler-mips64.cc | 413 +- .../test/cctest/test-macro-assembler-x64.cc | 29 +- deps/v8/test/cctest/test-managed.cc | 17 + deps/v8/test/cctest/test-mementos.cc | 2 +- deps/v8/test/cctest/test-object.cc | 4 +- deps/v8/test/cctest/test-parsing.cc | 76 + .../cctest/test-run-wasm-relocation-arm.cc | 79 - .../cctest/test-run-wasm-relocation-arm64.cc | 84 - .../cctest/test-run-wasm-relocation-ia32.cc | 90 - .../cctest/test-run-wasm-relocation-x64.cc | 86 - deps/v8/test/cctest/test-serialize.cc | 207 +- deps/v8/test/cctest/test-strings.cc | 7 +- deps/v8/test/cctest/test-symbols.cc | 2 +- .../test/cctest/test-sync-primitives-arm.cc | 2 +- .../test/cctest/test-sync-primitives-arm64.cc | 2 +- .../v8/test/cctest/test-thread-termination.cc | 62 +- deps/v8/test/cctest/test-transitions.cc | 4 +- deps/v8/test/cctest/test-transitions.h | 2 +- deps/v8/test/cctest/test-typedarrays.cc | 6 +- deps/v8/test/cctest/test-types.cc | 16 +- deps/v8/test/cctest/test-unboxed-doubles.cc | 2 +- deps/v8/test/cctest/test-weakmaps.cc | 2 +- deps/v8/test/cctest/test-weaksets.cc | 2 +- deps/v8/test/cctest/types-fuzz.h | 2 +- deps/v8/test/cctest/wasm/test-c-wasm-entry.cc | 16 +- deps/v8/test/cctest/wasm/test-run-wasm-64.cc | 164 +- .../test/cctest/wasm/test-run-wasm-atomics.cc | 47 +- .../cctest/wasm/test-run-wasm-atomics64.cc | 405 ++ deps/v8/test/cctest/wasm/test-run-wasm-js.cc | 51 +- .../test/cctest/wasm/test-run-wasm-module.cc | 92 +- .../cctest/wasm/test-run-wasm-relocation.cc | 68 - .../v8/test/cctest/wasm/test-run-wasm-simd.cc | 84 +- deps/v8/test/cctest/wasm/test-run-wasm.cc | 200 +- .../cctest/wasm/test-streaming-compilation.cc | 7 +- deps/v8/test/cctest/wasm/test-wasm-stack.cc | 19 +- .../cctest/wasm/test-wasm-trap-position.cc | 4 +- deps/v8/test/cctest/wasm/wasm-atomics-utils.h | 62 + deps/v8/test/cctest/wasm/wasm-run-utils.cc | 252 +- deps/v8/test/cctest/wasm/wasm-run-utils.h | 132 +- deps/v8/test/common/wasm/test-signatures.h | 16 + deps/v8/test/common/wasm/wasm-macro-gen.h | 3 + .../v8/test/common/wasm/wasm-module-runner.cc | 2 - deps/v8/test/d8_default.isolate | 18 - deps/v8/test/debugger/BUILD.gn | 16 + .../v8/test/debugger/debug/debug-backtrace.js | 8 +- deps/v8/test/debugger/debug/debug-bigint.js | 24 + .../debugger/debug/debug-clearbreakpoint.js | 8 +- .../debugger/debug/debug-compile-event.js | 6 +- .../debug/debug-evaluate-bool-constructor.js | 6 +- .../debug-evaluate-locals-optimized-double.js | 6 +- .../debug/debug-evaluate-locals-optimized.js | 6 +- .../debugger/debug/debug-evaluate-locals.js | 8 +- .../debugger/debug/debug-evaluate-with.js | 10 +- deps/v8/test/debugger/debug/debug-evaluate.js | 8 +- .../test/debugger/debug/debug-return-value.js | 20 +- .../test/debugger/debug/debug-sourceinfo.js | 64 +- .../reject-in-constructor-opt.js | 61 + .../debugger/debug/es8/async-debug-basic.js | 9 +- .../debugger/debug/regress/regress-1081309.js | 8 +- .../debugger/debug/regress/regress-1170187.js | 8 +- .../debugger/debug/regress/regress-119609.js | 6 +- .../debugger/debug/regress/regress-131994.js | 6 +- .../debugger/debug/regress/regress-1639.js | 6 +- .../debugger/debug/regress/regress-419663.js | 2 +- ...ebug-evaluate-no-side-effect-builtins-2.js | 14 + .../debug-evaluate-no-side-effect-builtins.js | 15 +- .../debug-evaluate-no-side-effect-ops.js | 2 +- ...g-evaluate-no-side-effect-runtime-check.js | 71 + .../debug-evaluate-no-side-effect.js | 9 +- deps/v8/test/debugger/debugger.isolate | 15 - deps/v8/test/debugger/debugger.status | 3 + .../test/debugger/regress/regress-1639-2.js | 6 +- deps/v8/test/debugger/test-api.js | 12 +- deps/v8/test/default.isolate | 23 - deps/v8/test/fuzzer/BUILD.gn | 33 + deps/v8/test/fuzzer/fuzzer-support.cc | 2 - deps/v8/test/fuzzer/fuzzer.isolate | 48 - deps/v8/test/fuzzer/multi-return.cc | 152 +- deps/v8/test/fuzzer/regexp-builtins.cc | 3 +- deps/v8/test/fuzzer/regexp.cc | 3 +- deps/v8/test/fuzzer/wasm-async.cc | 4 +- deps/v8/test/fuzzer/wasm-fuzzer-common.cc | 13 +- deps/v8/test/fuzzer/wasm.cc | 4 +- deps/v8/test/inspector/BUILD.gn | 20 + .../breakpoints-and-side-effects-expected.txt | 26 + .../debugger/breakpoints-and-side-effects.js | 58 + .../es6-module-script-parsed-expected.txt | 6 +- .../eval-without-codegen-expected.txt | 20 + .../debugger/eval-without-codegen.js | 10 + ...ssible-breakpoints-lazy-error-expected.txt | 2 +- ...t-preview-internal-properties-expected.txt | 7 + .../object-preview-internal-properties.js | 3 + .../script-on-after-compile-expected.txt | 78 +- ...t-parsed-for-runtime-evaluate-expected.txt | 24 +- .../debugger/script-parsed-hash-expected.txt | 6 +- deps/v8/test/inspector/inspector.isolate | 27 - deps/v8/test/inspector/protocol-test.js | 2 + .../call-function-on-async-expected.txt | 11 + .../runtime/call-function-on-async.js | 15 + .../runtime/command-line-api-expected.txt | 33 +- .../inspector/runtime/command-line-api.js | 57 + .../inspector/runtime/es6-module-expected.txt | 8 +- .../evaluate-unserializable-expected.txt | 56 + .../runtime/evaluate-unserializable.js | 24 + ...valuate-with-generate-preview-expected.txt | 20 + .../runtime/evaluate-with-generate-preview.js | 11 + ...evaluate-without-side-effects-expected.txt | 73 + .../runtime/evaluate-without-side-effects.js | 53 + .../runtime/get-heap-usage-expected.txt | 1 + .../test/inspector/runtime/get-heap-usage.js | 15 + .../runtime/get-isolate-id-expected.txt | 1 + .../test/inspector/runtime/get-isolate-id.js | 12 + .../runtime/internal-properties-expected.txt | 16 + .../inspector/runtime/internal-properties.js | 3 + .../runtime/query-objects-expected.txt | 9 + .../test/inspector/runtime/query-objects.js | 39 +- .../runtime/terminate-execution-expected.txt | 66 + .../inspector/runtime/terminate-execution.js | 60 + deps/v8/test/intl/BUILD.gn | 16 + deps/v8/test/intl/assert.js | 41 - .../intl/break-iterator/default-locale.js | 4 +- .../wellformed-unsupported-locale.js | 2 +- deps/v8/test/intl/collator/default-locale.js | 11 +- .../collator/wellformed-unsupported-locale.js | 2 +- .../test/intl/date-format/default-locale.js | 4 +- .../date-format/format-with-extensions.js | 61 + .../wellformed-unsupported-locale.js | 2 +- deps/v8/test/intl/intl.isolate | 14 - .../test/intl/number-format/default-locale.js | 4 +- .../wellformed-unsupported-locale.js | 2 +- deps/v8/test/js-perf-test/ArraySort/run.js | 30 + deps/v8/test/js-perf-test/ArraySort/sort.js | 98 + deps/v8/test/js-perf-test/JSTests.json | 195 +- .../js-perf-test/ObjectLiteralSpread/run.js | 101 + deps/v8/test/js-perf-test/SixSpeed.json | 3 - .../js-perf-test/SpreadCallsGeneral/run.js | 69 + .../js-perf-test/Strings/harmony-string.js | 64 +- deps/v8/test/js-perf-test/Strings/run.js | 4 +- .../js-perf-test/Strings/string-indexof.js | 126 - .../js-perf-test/Strings/string-matchall.js | 77 + .../Strings/string-stringat-comp.js | 50 + .../js-perf-test/Strings/string-stringat.js | 129 + .../js-perf-test/Strings/string-substring.js | 206 + .../TypedArrays/sort-cmpfn-float.js | 9 + .../TypedArrays/sort-cmpfn-int.js | 9 + .../js-perf-test/TypedArrays/sort-float.js | 8 + .../test/js-perf-test/TypedArrays/sort-int.js | 8 + deps/v8/test/js-perf-test/TypedArrays/sort.js | 73 +- deps/v8/test/message/BUILD.gn | 16 + deps/v8/test/message/fail/call-expression.js | 9 + deps/v8/test/message/fail/call-expression.out | 5 + .../test/message/fail/map-arg-non-iterable.js | 5 + .../message/fail/map-arg-non-iterable.out | 6 + .../message/fail/octal-template-literal.js | 7 + .../message/fail/octal-template-literal.out | 4 + deps/v8/test/message/message.isolate | 14 - .../test/message/wasm-finish-compilation.js | 22 + .../test/message/wasm-finish-compilation.out | 1 + .../test/message/wasm-function-name-async.js | 20 + .../test/message/wasm-function-name-async.out | 4 + .../message/wasm-function-name-streaming.js | 7 + .../message/wasm-function-name-streaming.out | 4 + .../wasm-module-and-function-name-async.js | 21 + .../wasm-module-and-function-name-async.out | 4 + ...wasm-module-and-function-name-streaming.js | 7 + ...asm-module-and-function-name-streaming.out | 4 + .../v8/test/message/wasm-module-name-async.js | 23 + .../test/message/wasm-module-name-async.out | 4 + .../message/wasm-module-name-streaming.js | 7 + .../message/wasm-module-name-streaming.out | 4 + deps/v8/test/message/wasm-no-name-async.js | 22 + deps/v8/test/message/wasm-no-name-async.out | 4 + .../v8/test/message/wasm-no-name-streaming.js | 7 + .../test/message/wasm-no-name-streaming.out | 4 + deps/v8/test/mjsunit/BUILD.gn | 30 + .../v8/test/mjsunit/array-literal-feedback.js | 2 +- deps/v8/test/mjsunit/array-reduce.js | 10 + deps/v8/test/mjsunit/code-coverage-block.js | 19 + .../compiler/array-multiple-receiver-maps.js | 15 +- .../mjsunit/compiler/number-isfinite-inl.js | 54 + .../test/mjsunit/compiler/number-isfinite.js | 33 + .../mjsunit/compiler/number-isinteger-inl.js | 54 + .../test/mjsunit/compiler/number-isinteger.js | 32 + .../mjsunit/compiler/promise-constructor.js | 35 +- .../mjsunit/compiler/string-comparison-opt.js | 247 + .../mjsunit/compiler/string-concat-deopt.js | 102 + .../compiler/typed-array-constructor.js | 129 + deps/v8/test/mjsunit/constant-folding-2.js | 24 +- .../es6/array-species-constructor-accessor.js | 2 +- .../es6/array-species-constructor-delete.js | 2 +- .../mjsunit/es6/array-species-constructor.js | 2 +- .../test/mjsunit/es6/array-species-delete.js | 2 +- .../mjsunit/es6/array-species-modified.js | 2 +- .../es6/array-species-parent-constructor.js | 2 +- .../test/mjsunit/es6/array-species-proto.js | 2 +- .../mjsunit/es6/promise-all-overflow-1.js | 19 + .../mjsunit/es6/promise-all-overflow-2.js | 16 + deps/v8/test/mjsunit/es6/promise-all.js | 84 + deps/v8/test/mjsunit/es6/promises.js | 9 + .../es6/regress/regress-crbug-820596.js | 8 + .../es6/regress/regress-crbug-837939.js | 17 + deps/v8/test/mjsunit/es6/spread-array-misc.js | 273 + .../test/mjsunit/es6/string-fromcodepoint.js | 46 +- deps/v8/test/mjsunit/harmony/array-flatMap.js | 120 + deps/v8/test/mjsunit/harmony/array-flatten.js | 38 + deps/v8/test/mjsunit/harmony/bigint/exp.js | 9 + .../mjsunit/harmony/bigint/regressions.js | 21 + .../test/mjsunit/harmony/bigint/tonumber.js | 15 +- .../test/mjsunit/harmony/numeric-separator.js | 116 + .../v8/test/mjsunit/harmony/private-fields.js | 41 +- .../mjsunit/harmony/regexp-named-captures.js | 22 +- .../test/mjsunit/harmony/string-matchAll.js | 100 + deps/v8/test/mjsunit/keyed-store-generic.js | 4 +- deps/v8/test/mjsunit/mjsunit.isolate | 28 - deps/v8/test/mjsunit/mjsunit.status | 35 +- .../modules-namespace-getownproperty1.js | 148 + .../modules-namespace-getownproperty2.js | 148 + deps/v8/test/mjsunit/regress/regress-6288.js | 2 +- deps/v8/test/mjsunit/regress/regress-7254.js | 16 + deps/v8/test/mjsunit/regress/regress-7510.js | 19 + deps/v8/test/mjsunit/regress/regress-7740.js | 18 + .../v8/test/mjsunit/regress/regress-813440.js | 17 + .../v8/test/mjsunit/regress/regress-818070.js | 35 + .../v8/test/mjsunit/regress/regress-818438.js | 55 + .../v8/test/mjsunit/regress/regress-821368.js | 14 + .../v8/test/mjsunit/regress/regress-829889.js | 17 + .../v8/test/mjsunit/regress/regress-842612.js | 16 + .../v8/test/mjsunit/regress/regress-843543.js | 17 + .../mjsunit/regress/regress-arguments-gc.js | 37 - .../mjsunit/regress/regress-crbug-813630.js | 22 + .../mjsunit/regress/regress-crbug-819086.js | 14 + .../mjsunit/regress/regress-crbug-819298.js | 17 + .../mjsunit/regress/regress-crbug-820312.js | 26 + .../mjsunit/regress/regress-crbug-820820.js | 23 + .../mjsunit/regress/regress-crbug-821159-1.js | 8 + .../mjsunit/regress/regress-crbug-821159-2.js | 8 + .../mjsunit/regress/regress-crbug-821159-3.js | 8 + .../mjsunit/regress/regress-crbug-821159-4.js | 8 + .../mjsunit/regress/regress-crbug-823069.js | 8 + .../mjsunit/regress/regress-crbug-827013.js | 19 + .../mjsunit/regress/regress-crbug-831943.js | 14 + .../mjsunit/regress/regress-crbug-843022.js | 21 + .../regress/regress-store-transition-dict.js | 84 + .../test/mjsunit/regress/wasm/regress-7508.js | 21 + .../test/mjsunit/regress/wasm/regress-7565.js | 20 + .../test/mjsunit/regress/wasm/regress-7579.js | 62 + .../test/mjsunit/regress/wasm/regress-7582.js | 48 + .../mjsunit/regress/wasm/regress-769637.js | 17 + .../mjsunit/regress/wasm/regress-808848.js | 67 + .../mjsunit/regress/wasm/regress-817380.js | 25 + .../mjsunit/regress/wasm/regress-820802.js | 21 + .../mjsunit/regress/wasm/regress-824681.js | 20 + .../mjsunit/regress/wasm/regress-825087a.js | 9 + .../mjsunit/regress/wasm/regress-825087b.js | 10 + .../mjsunit/regress/wasm/regress-827806.js | 22 + .../mjsunit/regress/wasm/regress-831463.js | 22 + .../mjsunit/regress/wasm/regress-834619.js | 49 + deps/v8/test/mjsunit/tzoffset-seoul-noi18n.js | 20 + deps/v8/test/mjsunit/tzoffset-seoul.js | 20 + .../test/mjsunit/tzoffset-transition-apia.js | 48 + .../mjsunit/tzoffset-transition-lord-howe.js | 35 + .../mjsunit/tzoffset-transition-moscow.js | 85 + .../tzoffset-transition-new-york-noi18n.js | 34 + .../mjsunit/tzoffset-transition-new-york.js | 34 + deps/v8/test/mjsunit/wasm/anyref.js | 102 + .../wasm/compiled-module-management.js | 15 + deps/v8/test/mjsunit/wasm/ffi.js | 26 +- .../v8/test/mjsunit/wasm/graceful_shutdown.js | 2 +- deps/v8/test/mjsunit/wasm/indirect-tables.js | 102 + .../test/mjsunit/wasm/liftoff-trap-handler.js | 28 + deps/v8/test/mjsunit/wasm/mutable-globals.js | 300 ++ deps/v8/test/mjsunit/wasm/table-grow.js | 42 +- deps/v8/test/mjsunit/wasm/wasm-constants.js | 7 + .../test/mjsunit/wasm/wasm-module-builder.js | 5 + deps/v8/test/mkgrokdump/BUILD.gn | 10 + deps/v8/test/mkgrokdump/mkgrokdump.cc | 54 +- deps/v8/test/mkgrokdump/mkgrokdump.isolate | 17 - deps/v8/test/mozilla/BUILD.gn | 16 + deps/v8/test/mozilla/mozilla.isolate | 14 - deps/v8/test/mozilla/mozilla.status | 22 +- deps/v8/test/optimize_for_size.isolate | 18 - deps/v8/test/perf.isolate | 27 - deps/v8/test/preparser/BUILD.gn | 16 + deps/v8/test/preparser/preparser.isolate | 14 - deps/v8/test/test262/BUILD.gn | 43 +- deps/v8/test/test262/archive.py | 38 - deps/v8/test/test262/list.py | 26 - deps/v8/test/test262/test262.isolate | 20 - deps/v8/test/test262/test262.status | 142 +- deps/v8/test/test262/testcfg.py | 28 +- deps/v8/test/unittests/BUILD.gn | 10 + .../v8/test/unittests/api/isolate-unittest.cc | 6 +- .../test/unittests/base/logging-unittest.cc | 36 + .../v8/test/unittests/base/macros-unittest.cc | 36 + .../unittests/base/platform/time-unittest.cc | 20 +- .../unittests/base/template-utils-unittest.cc | 12 +- deps/v8/test/unittests/bigint-unittest.cc | 2 +- .../unittests/code-stub-assembler-unittest.cc | 2 +- .../compiler-dispatcher-unittest.cc | 140 +- .../optimizing-compile-dispatcher-unittest.cc | 20 +- .../unoptimized-compile-job-unittest.cc | 6 +- .../compiler/code-assembler-unittest.cc | 3 +- .../compiler/common-operator-unittest.cc | 24 +- .../control-flow-optimizer-unittest.cc | 21 +- .../test/unittests/compiler/graph-unittest.cc | 2 +- .../compiler/instruction-selector-unittest.cc | 48 +- .../compiler/int64-lowering-unittest.cc | 7 +- .../compiler/js-builtin-reducer-unittest.cc | 91 - .../compiler/js-call-reducer-unittest.cc | 112 +- .../compiler/machine-operator-unittest.cc | 6 +- .../unittests/compiler/node-test-utils.cc | 90 +- .../test/unittests/compiler/node-test-utils.h | 24 +- .../test/unittests/heap/gc-tracer-unittest.cc | 36 + .../bytecode-array-builder-unittest.cc | 9 +- .../bytecode-array-writer-unittest.cc | 2 +- .../constant-array-builder-unittest.cc | 2 +- .../interpreter-assembler-unittest.cc | 171 +- .../interpreter-assembler-unittest.h | 38 +- .../libplatform/default-platform-unittest.cc | 6 +- deps/v8/test/unittests/test-helpers.cc | 15 +- deps/v8/test/unittests/unittests.isolate | 16 - deps/v8/test/unittests/unittests.status | 14 +- .../unittests/value-serializer-unittest.cc | 70 +- .../wasm/function-body-decoder-unittest.cc | 16 +- .../unittests/wasm/module-decoder-unittest.cc | 106 +- .../unittests/wasm/trap-handler-unittest.cc | 5 +- .../wasm/wasm-code-manager-unittest.cc | 14 +- deps/v8/test/wasm-spec-tests/BUILD.gn | 16 + .../v8/test/wasm-spec-tests/tests.tar.gz.sha1 | 2 +- .../wasm-spec-tests/wasm-spec-tests.isolate | 15 - deps/v8/test/webkit/BUILD.gn | 16 + deps/v8/test/webkit/webkit.isolate | 14 - deps/v8/test/webkit/webkit.status | 4 + deps/v8/testing/gmock/BUILD.gn | 37 + deps/v8/testing/gmock/OWNERS | 2 + deps/v8/testing/gmock/include/DEPS | 3 + .../gmock/include/gmock/gmock-actions.h | 10 + .../gmock/gmock-generated-function-mockers.h | 10 + .../gmock/include/gmock/gmock-matchers.h | 10 + deps/v8/testing/gmock/include/gmock/gmock.h | 10 + deps/v8/testing/gtest/BUILD.gn | 100 + deps/v8/testing/gtest/OWNERS | 2 + deps/v8/testing/gtest/empty.cc | 3 + deps/v8/testing/gtest/include/DEPS | 3 + .../gtest/include/gtest/gtest-death-test.h | 10 + .../gtest/include/gtest/gtest-message.h | 10 + .../gtest/include/gtest/gtest-param-test.h | 10 + .../testing/gtest/include/gtest/gtest-spi.h | 10 + deps/v8/testing/gtest/include/gtest/gtest.h | 10 + .../testing/gtest/include/gtest/gtest_prod.h | 64 +- deps/v8/third_party/antlr4/LICENSE.txt | 52 + .../third_party/antlr4/runtime/Cpp/README.md | 59 + .../v8/third_party/antlr4/runtime/Cpp/VERSION | 1 + .../Cpp/runtime/src/ANTLRErrorListener.cpp | 8 + .../Cpp/runtime/src/ANTLRErrorListener.h | 171 + .../Cpp/runtime/src/ANTLRErrorStrategy.cpp | 8 + .../Cpp/runtime/src/ANTLRErrorStrategy.h | 121 + .../Cpp/runtime/src/ANTLRFileStream.cpp | 32 + .../runtime/Cpp/runtime/src/ANTLRFileStream.h | 28 + .../Cpp/runtime/src/ANTLRInputStream.cpp | 143 + .../Cpp/runtime/src/ANTLRInputStream.h | 69 + .../Cpp/runtime/src/BailErrorStrategy.cpp | 59 + .../Cpp/runtime/src/BailErrorStrategy.h | 60 + .../Cpp/runtime/src/BaseErrorListener.cpp | 32 + .../Cpp/runtime/src/BaseErrorListener.h | 43 + .../Cpp/runtime/src/BufferedTokenStream.cpp | 407 ++ .../Cpp/runtime/src/BufferedTokenStream.h | 207 + .../runtime/Cpp/runtime/src/CharStream.cpp | 10 + .../runtime/Cpp/runtime/src/CharStream.h | 38 + .../runtime/Cpp/runtime/src/CommonToken.cpp | 170 + .../runtime/Cpp/runtime/src/CommonToken.h | 162 + .../Cpp/runtime/src/CommonTokenFactory.cpp | 41 + .../Cpp/runtime/src/CommonTokenFactory.h | 77 + .../Cpp/runtime/src/CommonTokenStream.cpp | 77 + .../Cpp/runtime/src/CommonTokenStream.h | 78 + .../Cpp/runtime/src/ConsoleErrorListener.cpp | 19 + .../Cpp/runtime/src/ConsoleErrorListener.h | 37 + .../Cpp/runtime/src/DefaultErrorStrategy.cpp | 355 ++ .../Cpp/runtime/src/DefaultErrorStrategy.h | 478 ++ .../runtime/src/DiagnosticErrorListener.cpp | 101 + .../Cpp/runtime/src/DiagnosticErrorListener.h | 89 + .../runtime/Cpp/runtime/src/Exceptions.cpp | 61 + .../runtime/Cpp/runtime/src/Exceptions.h | 109 + .../runtime/src/FailedPredicateException.cpp | 51 + .../runtime/src/FailedPredicateException.h | 33 + .../runtime/src/InputMismatchException.cpp | 17 + .../Cpp/runtime/src/InputMismatchException.h | 24 + .../runtime/Cpp/runtime/src/IntStream.cpp | 12 + .../runtime/Cpp/runtime/src/IntStream.h | 222 + .../runtime/src/InterpreterRuleContext.cpp | 17 + .../Cpp/runtime/src/InterpreterRuleContext.h | 46 + .../antlr4/runtime/Cpp/runtime/src/Lexer.cpp | 274 + .../antlr4/runtime/Cpp/runtime/src/Lexer.h | 198 + .../Cpp/runtime/src/LexerInterpreter.cpp | 82 + .../Cpp/runtime/src/LexerInterpreter.h | 58 + .../runtime/src/LexerNoViableAltException.cpp | 37 + .../runtime/src/LexerNoViableAltException.h | 31 + .../Cpp/runtime/src/ListTokenSource.cpp | 95 + .../runtime/Cpp/runtime/src/ListTokenSource.h | 94 + .../Cpp/runtime/src/NoViableAltException.cpp | 33 + .../Cpp/runtime/src/NoViableAltException.h | 41 + .../antlr4/runtime/Cpp/runtime/src/Parser.cpp | 637 +++ .../antlr4/runtime/Cpp/runtime/src/Parser.h | 489 ++ .../Cpp/runtime/src/ParserInterpreter.cpp | 340 ++ .../Cpp/runtime/src/ParserInterpreter.h | 186 + .../Cpp/runtime/src/ParserRuleContext.cpp | 138 + .../Cpp/runtime/src/ParserRuleContext.h | 149 + .../Cpp/runtime/src/ProxyErrorListener.cpp | 63 + .../Cpp/runtime/src/ProxyErrorListener.h | 45 + .../Cpp/runtime/src/RecognitionException.cpp | 67 + .../Cpp/runtime/src/RecognitionException.h | 100 + .../runtime/Cpp/runtime/src/Recognizer.cpp | 163 + .../runtime/Cpp/runtime/src/Recognizer.h | 171 + .../runtime/Cpp/runtime/src/RuleContext.cpp | 133 + .../runtime/Cpp/runtime/src/RuleContext.h | 143 + .../Cpp/runtime/src/RuleContextWithAltNum.cpp | 23 + .../Cpp/runtime/src/RuleContextWithAltNum.h | 32 + .../Cpp/runtime/src/RuntimeMetaData.cpp | 62 + .../runtime/Cpp/runtime/src/RuntimeMetaData.h | 159 + .../antlr4/runtime/Cpp/runtime/src/Token.cpp | 8 + .../antlr4/runtime/Cpp/runtime/src/Token.h | 93 + .../runtime/Cpp/runtime/src/TokenFactory.h | 34 + .../runtime/Cpp/runtime/src/TokenSource.cpp | 8 + .../runtime/Cpp/runtime/src/TokenSource.h | 87 + .../runtime/Cpp/runtime/src/TokenStream.cpp | 10 + .../runtime/Cpp/runtime/src/TokenStream.h | 138 + .../Cpp/runtime/src/TokenStreamRewriter.cpp | 463 ++ .../Cpp/runtime/src/TokenStreamRewriter.h | 307 ++ .../Cpp/runtime/src/UnbufferedCharStream.cpp | 215 + .../Cpp/runtime/src/UnbufferedCharStream.h | 125 + .../Cpp/runtime/src/UnbufferedTokenStream.cpp | 257 + .../Cpp/runtime/src/UnbufferedTokenStream.h | 117 + .../runtime/Cpp/runtime/src/Vocabulary.cpp | 108 + .../runtime/Cpp/runtime/src/Vocabulary.h | 198 + .../runtime/Cpp/runtime/src/WritableToken.cpp | 8 + .../runtime/Cpp/runtime/src/WritableToken.h | 23 + .../runtime/Cpp/runtime/src/antlr4-common.h | 134 + .../runtime/Cpp/runtime/src/antlr4-runtime.h | 164 + .../runtime/Cpp/runtime/src/atn/ATN.cpp | 212 + .../antlr4/runtime/Cpp/runtime/src/atn/ATN.h | 115 + .../runtime/Cpp/runtime/src/atn/ATNConfig.cpp | 118 + .../runtime/Cpp/runtime/src/atn/ATNConfig.h | 148 + .../Cpp/runtime/src/atn/ATNConfigSet.cpp | 224 + .../Cpp/runtime/src/atn/ATNConfigSet.h | 114 + .../src/atn/ATNDeserializationOptions.cpp | 61 + .../src/atn/ATNDeserializationOptions.h | 51 + .../Cpp/runtime/src/atn/ATNDeserializer.cpp | 813 +++ .../Cpp/runtime/src/atn/ATNDeserializer.h | 88 + .../Cpp/runtime/src/atn/ATNSerializer.cpp | 622 +++ .../Cpp/runtime/src/atn/ATNSerializer.h | 61 + .../Cpp/runtime/src/atn/ATNSimulator.cpp | 68 + .../Cpp/runtime/src/atn/ATNSimulator.h | 93 + .../runtime/Cpp/runtime/src/atn/ATNState.cpp | 69 + .../runtime/Cpp/runtime/src/atn/ATNState.h | 134 + .../runtime/Cpp/runtime/src/atn/ATNType.h | 20 + .../src/atn/AbstractPredicateTransition.cpp | 13 + .../src/atn/AbstractPredicateTransition.h | 22 + .../Cpp/runtime/src/atn/ActionTransition.cpp | 41 + .../Cpp/runtime/src/atn/ActionTransition.h | 35 + .../Cpp/runtime/src/atn/AmbiguityInfo.cpp | 18 + .../Cpp/runtime/src/atn/AmbiguityInfo.h | 70 + .../src/atn/ArrayPredictionContext.cpp | 84 + .../runtime/src/atn/ArrayPredictionContext.h | 45 + .../Cpp/runtime/src/atn/AtomTransition.cpp | 33 + .../Cpp/runtime/src/atn/AtomTransition.h | 31 + .../runtime/src/atn/BasicBlockStartState.cpp | 10 + .../runtime/src/atn/BasicBlockStartState.h | 20 + .../Cpp/runtime/src/atn/BasicState.cpp | 10 + .../runtime/Cpp/runtime/src/atn/BasicState.h | 19 + .../Cpp/runtime/src/atn/BlockEndState.cpp | 12 + .../Cpp/runtime/src/atn/BlockEndState.h | 24 + .../Cpp/runtime/src/atn/BlockStartState.cpp | 8 + .../Cpp/runtime/src/atn/BlockStartState.h | 21 + .../src/atn/ContextSensitivityInfo.cpp | 17 + .../runtime/src/atn/ContextSensitivityInfo.h | 49 + .../Cpp/runtime/src/atn/DecisionEventInfo.cpp | 19 + .../Cpp/runtime/src/atn/DecisionEventInfo.h | 70 + .../Cpp/runtime/src/atn/DecisionInfo.cpp | 28 + .../Cpp/runtime/src/atn/DecisionInfo.h | 232 + .../Cpp/runtime/src/atn/DecisionState.cpp | 17 + .../Cpp/runtime/src/atn/DecisionState.h | 28 + .../src/atn/EmptyPredictionContext.cpp | 30 + .../runtime/src/atn/EmptyPredictionContext.h | 28 + .../Cpp/runtime/src/atn/EpsilonTransition.cpp | 35 + .../Cpp/runtime/src/atn/EpsilonTransition.h | 40 + .../runtime/Cpp/runtime/src/atn/ErrorInfo.cpp | 16 + .../runtime/Cpp/runtime/src/atn/ErrorInfo.h | 44 + .../Cpp/runtime/src/atn/LL1Analyzer.cpp | 173 + .../runtime/Cpp/runtime/src/atn/LL1Analyzer.h | 118 + .../Cpp/runtime/src/atn/LexerATNConfig.cpp | 90 + .../Cpp/runtime/src/atn/LexerATNConfig.h | 50 + .../Cpp/runtime/src/atn/LexerATNSimulator.cpp | 683 +++ .../Cpp/runtime/src/atn/LexerATNSimulator.h | 223 + .../Cpp/runtime/src/atn/LexerAction.cpp | 8 + .../runtime/Cpp/runtime/src/atn/LexerAction.h | 68 + .../runtime/src/atn/LexerActionExecutor.cpp | 116 + .../Cpp/runtime/src/atn/LexerActionExecutor.h | 124 + .../Cpp/runtime/src/atn/LexerActionType.h | 55 + .../runtime/src/atn/LexerChannelAction.cpp | 49 + .../Cpp/runtime/src/atn/LexerChannelAction.h | 68 + .../Cpp/runtime/src/atn/LexerCustomAction.cpp | 58 + .../Cpp/runtime/src/atn/LexerCustomAction.h | 92 + .../src/atn/LexerIndexedCustomAction.cpp | 58 + .../src/atn/LexerIndexedCustomAction.h | 85 + .../Cpp/runtime/src/atn/LexerModeAction.cpp | 49 + .../Cpp/runtime/src/atn/LexerModeAction.h | 63 + .../Cpp/runtime/src/atn/LexerMoreAction.cpp | 40 + .../Cpp/runtime/src/atn/LexerMoreAction.h | 61 + .../runtime/src/atn/LexerPopModeAction.cpp | 40 + .../Cpp/runtime/src/atn/LexerPopModeAction.h | 61 + .../runtime/src/atn/LexerPushModeAction.cpp | 50 + .../Cpp/runtime/src/atn/LexerPushModeAction.h | 64 + .../Cpp/runtime/src/atn/LexerSkipAction.cpp | 40 + .../Cpp/runtime/src/atn/LexerSkipAction.h | 59 + .../Cpp/runtime/src/atn/LexerTypeAction.cpp | 49 + .../Cpp/runtime/src/atn/LexerTypeAction.h | 58 + .../runtime/src/atn/LookaheadEventInfo.cpp | 18 + .../Cpp/runtime/src/atn/LookaheadEventInfo.h | 43 + .../Cpp/runtime/src/atn/LoopEndState.cpp | 10 + .../Cpp/runtime/src/atn/LoopEndState.h | 22 + .../runtime/Cpp/runtime/src/atn/Makefile | 67 + .../Cpp/runtime/src/atn/NotSetTransition.cpp | 30 + .../Cpp/runtime/src/atn/NotSetTransition.h | 26 + .../runtime/src/atn/OrderedATNConfigSet.cpp | 10 + .../Cpp/runtime/src/atn/OrderedATNConfigSet.h | 20 + .../runtime/Cpp/runtime/src/atn/ParseInfo.cpp | 101 + .../runtime/Cpp/runtime/src/atn/ParseInfo.h | 103 + .../runtime/src/atn/ParserATNSimulator.cpp | 1508 ++++++ .../Cpp/runtime/src/atn/ParserATNSimulator.h | 942 ++++ .../runtime/src/atn/PlusBlockStartState.cpp | 10 + .../Cpp/runtime/src/atn/PlusBlockStartState.h | 25 + .../Cpp/runtime/src/atn/PlusLoopbackState.cpp | 10 + .../Cpp/runtime/src/atn/PlusLoopbackState.h | 21 + .../src/atn/PrecedencePredicateTransition.cpp | 35 + .../src/atn/PrecedencePredicateTransition.h | 30 + .../Cpp/runtime/src/atn/PredicateEvalInfo.cpp | 22 + .../Cpp/runtime/src/atn/PredicateEvalInfo.h | 64 + .../runtime/src/atn/PredicateTransition.cpp | 41 + .../Cpp/runtime/src/atn/PredicateTransition.h | 41 + .../Cpp/runtime/src/atn/PredictionContext.cpp | 694 +++ .../Cpp/runtime/src/atn/PredictionContext.h | 290 + .../Cpp/runtime/src/atn/PredictionMode.cpp | 217 + .../Cpp/runtime/src/atn/PredictionMode.h | 442 ++ .../runtime/src/atn/ProfilingATNSimulator.cpp | 221 + .../runtime/src/atn/ProfilingATNSimulator.h | 74 + .../Cpp/runtime/src/atn/RangeTransition.cpp | 33 + .../Cpp/runtime/src/atn/RangeTransition.h | 30 + .../Cpp/runtime/src/atn/RuleStartState.cpp | 12 + .../Cpp/runtime/src/atn/RuleStartState.h | 24 + .../Cpp/runtime/src/atn/RuleStopState.cpp | 10 + .../Cpp/runtime/src/atn/RuleStopState.h | 23 + .../Cpp/runtime/src/atn/RuleTransition.cpp | 38 + .../Cpp/runtime/src/atn/RuleTransition.h | 44 + .../Cpp/runtime/src/atn/SemanticContext.cpp | 400 ++ .../Cpp/runtime/src/atn/SemanticContext.h | 229 + .../Cpp/runtime/src/atn/SetTransition.cpp | 31 + .../Cpp/runtime/src/atn/SetTransition.h | 31 + .../src/atn/SingletonPredictionContext.cpp | 80 + .../src/atn/SingletonPredictionContext.h | 39 + .../runtime/src/atn/StarBlockStartState.cpp | 10 + .../Cpp/runtime/src/atn/StarBlockStartState.h | 20 + .../runtime/src/atn/StarLoopEntryState.cpp | 13 + .../Cpp/runtime/src/atn/StarLoopEntryState.h | 35 + .../Cpp/runtime/src/atn/StarLoopbackState.cpp | 17 + .../Cpp/runtime/src/atn/StarLoopbackState.h | 21 + .../Cpp/runtime/src/atn/TokensStartState.cpp | 10 + .../Cpp/runtime/src/atn/TokensStartState.h | 20 + .../Cpp/runtime/src/atn/Transition.cpp | 42 + .../runtime/Cpp/runtime/src/atn/Transition.h | 77 + .../runtime/src/atn/WildcardTransition.cpp | 25 + .../Cpp/runtime/src/atn/WildcardTransition.h | 26 + .../runtime/Cpp/runtime/src/dfa/DFA.cpp | 125 + .../antlr4/runtime/Cpp/runtime/src/dfa/DFA.h | 93 + .../Cpp/runtime/src/dfa/DFASerializer.cpp | 68 + .../Cpp/runtime/src/dfa/DFASerializer.h | 32 + .../runtime/Cpp/runtime/src/dfa/DFAState.cpp | 95 + .../runtime/Cpp/runtime/src/dfa/DFAState.h | 142 + .../runtime/src/dfa/LexerDFASerializer.cpp | 19 + .../Cpp/runtime/src/dfa/LexerDFASerializer.h | 23 + .../src/misc/InterpreterDataReader.cpp | 119 + .../runtime/src/misc/InterpreterDataReader.h | 32 + .../runtime/Cpp/runtime/src/misc/Interval.cpp | 88 + .../runtime/Cpp/runtime/src/misc/Interval.h | 85 + .../Cpp/runtime/src/misc/IntervalSet.cpp | 516 ++ .../Cpp/runtime/src/misc/IntervalSet.h | 198 + .../Cpp/runtime/src/misc/MurmurHash.cpp | 127 + .../runtime/Cpp/runtime/src/misc/MurmurHash.h | 76 + .../Cpp/runtime/src/misc/Predicate.cpp | 3 + .../runtime/Cpp/runtime/src/misc/Predicate.h | 21 + .../runtime/Cpp/runtime/src/support/Any.cpp | 12 + .../runtime/Cpp/runtime/src/support/Any.h | 121 + .../Cpp/runtime/src/support/Arrays.cpp | 44 + .../runtime/Cpp/runtime/src/support/Arrays.h | 101 + .../runtime/Cpp/runtime/src/support/BitSet.h | 75 + .../Cpp/runtime/src/support/CPPUtils.cpp | 237 + .../Cpp/runtime/src/support/CPPUtils.h | 87 + .../Cpp/runtime/src/support/Declarations.h | 165 + .../Cpp/runtime/src/support/StringUtils.cpp | 36 + .../Cpp/runtime/src/support/StringUtils.h | 35 + .../runtime/Cpp/runtime/src/support/guid.cpp | 232 + .../runtime/Cpp/runtime/src/support/guid.h | 111 + .../src/tree/AbstractParseTreeVisitor.h | 127 + .../Cpp/runtime/src/tree/ErrorNode.cpp | 8 + .../runtime/Cpp/runtime/src/tree/ErrorNode.h | 19 + .../Cpp/runtime/src/tree/ErrorNodeImpl.cpp | 21 + .../Cpp/runtime/src/tree/ErrorNodeImpl.h | 34 + .../src/tree/IterativeParseTreeWalker.cpp | 71 + .../src/tree/IterativeParseTreeWalker.h | 53 + .../Cpp/runtime/src/tree/ParseTree.cpp | 14 + .../runtime/Cpp/runtime/src/tree/ParseTree.h | 107 + .../runtime/src/tree/ParseTreeListener.cpp | 8 + .../Cpp/runtime/src/tree/ParseTreeListener.h | 38 + .../Cpp/runtime/src/tree/ParseTreeProperty.h | 44 + .../Cpp/runtime/src/tree/ParseTreeVisitor.cpp | 8 + .../Cpp/runtime/src/tree/ParseTreeVisitor.h | 58 + .../Cpp/runtime/src/tree/ParseTreeWalker.cpp | 50 + .../Cpp/runtime/src/tree/ParseTreeWalker.h | 32 + .../Cpp/runtime/src/tree/TerminalNode.cpp | 8 + .../Cpp/runtime/src/tree/TerminalNode.h | 32 + .../Cpp/runtime/src/tree/TerminalNodeImpl.cpp | 50 + .../Cpp/runtime/src/tree/TerminalNodeImpl.h | 32 + .../runtime/Cpp/runtime/src/tree/Trees.cpp | 241 + .../runtime/Cpp/runtime/src/tree/Trees.h | 84 + .../Cpp/runtime/src/tree/pattern/Chunk.cpp | 8 + .../Cpp/runtime/src/tree/pattern/Chunk.h | 44 + .../src/tree/pattern/ParseTreeMatch.cpp | 65 + .../runtime/src/tree/pattern/ParseTreeMatch.h | 141 + .../src/tree/pattern/ParseTreePattern.cpp | 61 + .../src/tree/pattern/ParseTreePattern.h | 111 + .../tree/pattern/ParseTreePatternMatcher.cpp | 388 ++ .../tree/pattern/ParseTreePatternMatcher.h | 196 + .../runtime/src/tree/pattern/RuleTagToken.cpp | 57 + .../runtime/src/tree/pattern/RuleTagToken.h | 130 + .../Cpp/runtime/src/tree/pattern/TagChunk.cpp | 33 + .../Cpp/runtime/src/tree/pattern/TagChunk.h | 87 + .../runtime/src/tree/pattern/TextChunk.cpp | 24 + .../Cpp/runtime/src/tree/pattern/TextChunk.h | 53 + .../src/tree/pattern/TokenTagToken.cpp | 31 + .../runtime/src/tree/pattern/TokenTagToken.h | 84 + .../Cpp/runtime/src/tree/xpath/XPath.cpp | 148 + .../Cpp/runtime/src/tree/xpath/XPath.h | 85 + .../runtime/src/tree/xpath/XPathElement.cpp | 26 + .../Cpp/runtime/src/tree/xpath/XPathElement.h | 40 + .../Cpp/runtime/src/tree/xpath/XPathLexer.cpp | 177 + .../Cpp/runtime/src/tree/xpath/XPathLexer.g4 | 64 + .../Cpp/runtime/src/tree/xpath/XPathLexer.h | 59 + .../runtime/src/tree/xpath/XPathLexer.tokens | 12 + .../tree/xpath/XPathLexerErrorListener.cpp | 16 + .../src/tree/xpath/XPathLexerErrorListener.h | 24 + .../tree/xpath/XPathRuleAnywhereElement.cpp | 22 + .../src/tree/xpath/XPathRuleAnywhereElement.h | 27 + .../src/tree/xpath/XPathRuleElement.cpp | 33 + .../runtime/src/tree/xpath/XPathRuleElement.h | 26 + .../tree/xpath/XPathTokenAnywhereElement.cpp | 22 + .../tree/xpath/XPathTokenAnywhereElement.h | 26 + .../src/tree/xpath/XPathTokenElement.cpp | 36 + .../src/tree/xpath/XPathTokenElement.h | 26 + .../xpath/XPathWildcardAnywhereElement.cpp | 23 + .../tree/xpath/XPathWildcardAnywhereElement.h | 23 + .../src/tree/xpath/XPathWildcardElement.cpp | 23 + .../src/tree/xpath/XPathWildcardElement.h | 23 + deps/v8/third_party/googletest/BUILD.gn | 148 + deps/v8/third_party/googletest/OWNERS | 2 + .../v8/third_party/googletest/README.chromium | 17 + .../custom/gtest/internal/custom/gtest-port.h | 27 + .../gmock/internal/custom/gmock-port.h | 12 +- .../src/googletest/include/gtest/gtest_prod.h | 61 + deps/v8/third_party/jinja2/AUTHORS | 1 + .../third_party/jinja2/Jinja2-2.10.tar.gz.md5 | 1 + .../jinja2/Jinja2-2.10.tar.gz.sha512 | 1 + .../third_party/jinja2/Jinja2-2.8.tar.gz.md5 | 1 - .../jinja2/Jinja2-2.8.tar.gz.sha512 | 1 - deps/v8/third_party/jinja2/README.chromium | 15 +- deps/v8/third_party/jinja2/__init__.py | 21 +- deps/v8/third_party/jinja2/_compat.py | 22 +- deps/v8/third_party/jinja2/_identifier.py | 2 + deps/v8/third_party/jinja2/_stringdefs.py | 132 - deps/v8/third_party/jinja2/asyncfilters.py | 146 + deps/v8/third_party/jinja2/asyncsupport.py | 256 + deps/v8/third_party/jinja2/bccache.py | 6 +- deps/v8/third_party/jinja2/compiler.py | 1135 ++-- deps/v8/third_party/jinja2/constants.py | 2 +- deps/v8/third_party/jinja2/debug.py | 42 +- deps/v8/third_party/jinja2/defaults.py | 19 +- deps/v8/third_party/jinja2/environment.py | 177 +- deps/v8/third_party/jinja2/exceptions.py | 2 +- deps/v8/third_party/jinja2/ext.py | 55 +- deps/v8/third_party/jinja2/filters.py | 416 +- deps/v8/third_party/jinja2/get_jinja2.sh | 18 +- deps/v8/third_party/jinja2/idtracking.py | 286 + deps/v8/third_party/jinja2/jinja2.gni | 31 + deps/v8/third_party/jinja2/lexer.py | 57 +- deps/v8/third_party/jinja2/loaders.py | 6 +- deps/v8/third_party/jinja2/meta.py | 11 +- deps/v8/third_party/jinja2/nativetypes.py | 220 + deps/v8/third_party/jinja2/nodes.py | 184 +- deps/v8/third_party/jinja2/optimizer.py | 25 +- deps/v8/third_party/jinja2/parser.py | 142 +- deps/v8/third_party/jinja2/runtime.py | 288 +- deps/v8/third_party/jinja2/sandbox.py | 128 +- deps/v8/third_party/jinja2/tests.py | 52 +- deps/v8/third_party/jinja2/utils.py | 140 +- deps/v8/third_party/jinja2/visitor.py | 2 +- deps/v8/tools/BUILD.gn | 58 +- deps/v8/tools/cfi/blacklist.txt | 24 +- .../tools/check-static-initializers.isolate | 16 - .../clusterfuzz/testdata/failure_output.txt | 4 +- deps/v8/tools/clusterfuzz/v8_foozzie.py | 7 +- .../clusterfuzz/v8_foozzie_harness_adjust.js | 38 +- deps/v8/tools/clusterfuzz/v8_foozzie_test.py | 2 +- deps/v8/tools/clusterfuzz/v8_fuzz_config.py | 10 +- deps/v8/tools/gcmole/BUILD.gn | 33 + deps/v8/tools/gcmole/run-gcmole.isolate | 35 - deps/v8/tools/gen-postmortem-metadata.py | 4 +- deps/v8/tools/grokdump.py | 6 +- deps/v8/tools/heap-stats/categories.js | 11 +- .../tools/heap-stats/details-selection.html | 41 +- deps/v8/tools/heap-stats/details-selection.js | 175 +- deps/v8/tools/heap-stats/global-timeline.js | 17 +- deps/v8/tools/heap-stats/helper.js | 23 + deps/v8/tools/heap-stats/histogram-viewer.js | 17 +- deps/v8/tools/heap-stats/index.html | 8 +- deps/v8/tools/heap-stats/model.js | 58 +- .../tools/heap-stats/trace-file-reader.html | 17 +- deps/v8/tools/heap-stats/trace-file-reader.js | 22 +- deps/v8/tools/ic-processor.js | 5 + deps/v8/tools/isolate_driver.py | 340 -- deps/v8/tools/jsfunfuzz/BUILD.gn | 19 + deps/v8/tools/jsfunfuzz/jsfunfuzz.isolate | 18 - deps/v8/tools/mb/mb.py | 6 +- deps/v8/tools/mb/mb_unittest.py | 3 - deps/v8/tools/node/fetch_deps.py | 16 +- deps/v8/tools/node/node_common.py | 5 +- deps/v8/tools/node/test_update_node.py | 23 +- deps/v8/tools/node/testdata/v8/.gitignore | 3 +- .../testdata/v8/testing/gtest/baz/gtest_foo | 1 + .../testdata/v8/testing/gtest/baz/gtest_new | 1 + .../node/testdata/v8/testing/gtest/gtest_bar | 1 + .../node/testdata/v8/testing/gtest/gtest_new | 1 + .../testdata/v8/testing/gtest/new/gtest_new | 1 + deps/v8/tools/node/update_node.py | 21 +- deps/v8/tools/predictable_wrapper.py | 3 +- deps/v8/tools/presubmit.py | 2 + deps/v8/tools/release/auto_roll.py | 6 +- deps/v8/tools/release/test_scripts.py | 5 +- .../googletest/include/gtest/baz/gtest_new | 0 .../src/googletest/include/gtest/gtest_new | 0 .../src/googletest/include/gtest/gtest_prod.h | 1 + .../googletest/include/gtest/new/gtest_new | 0 deps/v8/tools/run-num-fuzzer.isolate | 20 - deps/v8/tools/run_perf.py | 6 + deps/v8/tools/testrunner/base_runner.py | 5 + deps/v8/tools/testrunner/local/statusfile.py | 2 +- deps/v8/tools/testrunner/local/variants.py | 3 +- deps/v8/tools/testrunner/standard_runner.py | 2 +- deps/v8/tools/testrunner/testrunner.isolate | 25 - deps/v8/tools/toolchain/BUILD.gn | 70 + deps/v8/tools/v8heapconst.py | 518 +- deps/v8/tools/valgrind/asan/dummy | 2 + deps/v8/tools/whitespace.txt | 2 +- 1595 files changed, 91018 insertions(+), 40937 deletions(-) delete mode 100644 deps/v8/gni/isolate.gni delete mode 100644 deps/v8/gni/msvs_dependencies.isolate create mode 100644 deps/v8/infra/mb/gn_isolate_map.pyl delete mode 100644 deps/v8/src/api-arguments.cc delete mode 100644 deps/v8/src/base.isolate delete mode 100644 deps/v8/src/d8.isolate create mode 100644 deps/v8/src/external-reference.cc create mode 100644 deps/v8/src/external-reference.h rename deps/v8/src/{ => heap}/factory-inl.h (97%) rename deps/v8/src/{ => heap}/factory.cc (63%) rename deps/v8/src/{ => heap}/factory.h (80%) delete mode 100644 deps/v8/src/js/messages.js delete mode 100644 deps/v8/src/js/spread.js rename deps/v8/src/libplatform/{default-background-task-runner.cc => default-worker-threads-task-runner.cc} (59%) rename deps/v8/src/libplatform/{default-background-task-runner.h => default-worker-threads-task-runner.h} (72%) create mode 100644 deps/v8/src/objects/js-regexp-string-iterator-inl.h create mode 100644 deps/v8/src/objects/js-regexp-string-iterator.h create mode 100644 deps/v8/src/objects/maybe-object-inl.h create mode 100644 deps/v8/src/objects/maybe-object.h rename deps/v8/src/{compilation-info.cc => optimized-compilation-info.cc} (50%) rename deps/v8/src/{compilation-info.h => optimized-compilation-info.h} (61%) create mode 100644 deps/v8/src/snapshot/embedded-empty.cc create mode 100644 deps/v8/src/snapshot/macros.h create mode 100644 deps/v8/src/unoptimized-compilation-info.cc create mode 100644 deps/v8/src/unoptimized-compilation-info.h create mode 100644 deps/v8/src/wasm/baseline/mips/OWNERS create mode 100644 deps/v8/src/wasm/baseline/mips64/OWNERS delete mode 100644 deps/v8/src/wasm/wasm-code-wrapper.cc delete mode 100644 deps/v8/src/wasm/wasm-code-wrapper.h create mode 100644 deps/v8/test/benchmarks/BUILD.gn delete mode 100644 deps/v8/test/benchmarks/benchmarks.isolate delete mode 100644 deps/v8/test/bot_default.isolate delete mode 100644 deps/v8/test/cctest/cctest.isolate delete mode 100644 deps/v8/test/cctest/cctest_exe.isolate create mode 100644 deps/v8/test/cctest/compiler/test-instruction-scheduler.cc delete mode 100644 deps/v8/test/cctest/compiler/test-run-wasm-machops.cc create mode 100644 deps/v8/test/cctest/heap/test-weak-references.cc create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/TemplateLiterals.golden delete mode 100644 deps/v8/test/cctest/test-run-wasm-relocation-arm.cc delete mode 100644 deps/v8/test/cctest/test-run-wasm-relocation-arm64.cc delete mode 100644 deps/v8/test/cctest/test-run-wasm-relocation-ia32.cc delete mode 100644 deps/v8/test/cctest/test-run-wasm-relocation-x64.cc create mode 100644 deps/v8/test/cctest/wasm/test-run-wasm-atomics64.cc delete mode 100644 deps/v8/test/cctest/wasm/test-run-wasm-relocation.cc create mode 100644 deps/v8/test/cctest/wasm/wasm-atomics-utils.h delete mode 100644 deps/v8/test/d8_default.isolate create mode 100644 deps/v8/test/debugger/BUILD.gn create mode 100644 deps/v8/test/debugger/debug/debug-bigint.js create mode 100644 deps/v8/test/debugger/debug/es6/debug-promises/reject-in-constructor-opt.js create mode 100644 deps/v8/test/debugger/debug/side-effect/debug-evaluate-no-side-effect-runtime-check.js delete mode 100644 deps/v8/test/debugger/debugger.isolate delete mode 100644 deps/v8/test/default.isolate create mode 100644 deps/v8/test/fuzzer/BUILD.gn delete mode 100644 deps/v8/test/fuzzer/fuzzer.isolate create mode 100644 deps/v8/test/inspector/debugger/breakpoints-and-side-effects-expected.txt create mode 100644 deps/v8/test/inspector/debugger/breakpoints-and-side-effects.js delete mode 100644 deps/v8/test/inspector/inspector.isolate create mode 100644 deps/v8/test/inspector/runtime/evaluate-unserializable-expected.txt create mode 100644 deps/v8/test/inspector/runtime/evaluate-unserializable.js create mode 100644 deps/v8/test/inspector/runtime/evaluate-without-side-effects-expected.txt create mode 100644 deps/v8/test/inspector/runtime/evaluate-without-side-effects.js create mode 100644 deps/v8/test/inspector/runtime/get-heap-usage-expected.txt create mode 100644 deps/v8/test/inspector/runtime/get-heap-usage.js create mode 100644 deps/v8/test/inspector/runtime/get-isolate-id-expected.txt create mode 100644 deps/v8/test/inspector/runtime/get-isolate-id.js create mode 100644 deps/v8/test/inspector/runtime/terminate-execution-expected.txt create mode 100644 deps/v8/test/inspector/runtime/terminate-execution.js create mode 100644 deps/v8/test/intl/BUILD.gn create mode 100644 deps/v8/test/intl/date-format/format-with-extensions.js delete mode 100644 deps/v8/test/intl/intl.isolate create mode 100644 deps/v8/test/js-perf-test/ArraySort/run.js create mode 100644 deps/v8/test/js-perf-test/ArraySort/sort.js create mode 100644 deps/v8/test/js-perf-test/ObjectLiteralSpread/run.js create mode 100644 deps/v8/test/js-perf-test/SpreadCallsGeneral/run.js create mode 100644 deps/v8/test/js-perf-test/Strings/string-matchall.js create mode 100644 deps/v8/test/js-perf-test/Strings/string-stringat-comp.js create mode 100644 deps/v8/test/js-perf-test/Strings/string-stringat.js create mode 100644 deps/v8/test/js-perf-test/Strings/string-substring.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/sort-cmpfn-float.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/sort-cmpfn-int.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/sort-float.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/sort-int.js create mode 100644 deps/v8/test/message/BUILD.gn create mode 100644 deps/v8/test/message/fail/call-expression.js create mode 100644 deps/v8/test/message/fail/call-expression.out create mode 100644 deps/v8/test/message/fail/map-arg-non-iterable.js create mode 100644 deps/v8/test/message/fail/map-arg-non-iterable.out create mode 100644 deps/v8/test/message/fail/octal-template-literal.js create mode 100644 deps/v8/test/message/fail/octal-template-literal.out delete mode 100644 deps/v8/test/message/message.isolate create mode 100644 deps/v8/test/message/wasm-finish-compilation.js create mode 100644 deps/v8/test/message/wasm-finish-compilation.out create mode 100644 deps/v8/test/message/wasm-function-name-async.js create mode 100644 deps/v8/test/message/wasm-function-name-async.out create mode 100644 deps/v8/test/message/wasm-function-name-streaming.js create mode 100644 deps/v8/test/message/wasm-function-name-streaming.out create mode 100644 deps/v8/test/message/wasm-module-and-function-name-async.js create mode 100644 deps/v8/test/message/wasm-module-and-function-name-async.out create mode 100644 deps/v8/test/message/wasm-module-and-function-name-streaming.js create mode 100644 deps/v8/test/message/wasm-module-and-function-name-streaming.out create mode 100644 deps/v8/test/message/wasm-module-name-async.js create mode 100644 deps/v8/test/message/wasm-module-name-async.out create mode 100644 deps/v8/test/message/wasm-module-name-streaming.js create mode 100644 deps/v8/test/message/wasm-module-name-streaming.out create mode 100644 deps/v8/test/message/wasm-no-name-async.js create mode 100644 deps/v8/test/message/wasm-no-name-async.out create mode 100644 deps/v8/test/message/wasm-no-name-streaming.js create mode 100644 deps/v8/test/message/wasm-no-name-streaming.out create mode 100644 deps/v8/test/mjsunit/BUILD.gn create mode 100644 deps/v8/test/mjsunit/compiler/number-isfinite-inl.js create mode 100644 deps/v8/test/mjsunit/compiler/number-isinteger-inl.js create mode 100644 deps/v8/test/mjsunit/compiler/string-comparison-opt.js create mode 100644 deps/v8/test/mjsunit/compiler/string-concat-deopt.js create mode 100644 deps/v8/test/mjsunit/compiler/typed-array-constructor.js create mode 100644 deps/v8/test/mjsunit/es6/promise-all-overflow-1.js create mode 100644 deps/v8/test/mjsunit/es6/promise-all-overflow-2.js create mode 100644 deps/v8/test/mjsunit/es6/promise-all.js create mode 100644 deps/v8/test/mjsunit/es6/regress/regress-crbug-820596.js create mode 100644 deps/v8/test/mjsunit/es6/regress/regress-crbug-837939.js create mode 100644 deps/v8/test/mjsunit/es6/spread-array-misc.js create mode 100644 deps/v8/test/mjsunit/harmony/array-flatMap.js create mode 100644 deps/v8/test/mjsunit/harmony/array-flatten.js create mode 100644 deps/v8/test/mjsunit/harmony/numeric-separator.js create mode 100644 deps/v8/test/mjsunit/harmony/string-matchAll.js delete mode 100644 deps/v8/test/mjsunit/mjsunit.isolate create mode 100644 deps/v8/test/mjsunit/modules-namespace-getownproperty1.js create mode 100644 deps/v8/test/mjsunit/modules-namespace-getownproperty2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-7254.js create mode 100644 deps/v8/test/mjsunit/regress/regress-7510.js create mode 100644 deps/v8/test/mjsunit/regress/regress-7740.js create mode 100644 deps/v8/test/mjsunit/regress/regress-813440.js create mode 100644 deps/v8/test/mjsunit/regress/regress-818070.js create mode 100644 deps/v8/test/mjsunit/regress/regress-818438.js create mode 100644 deps/v8/test/mjsunit/regress/regress-821368.js create mode 100644 deps/v8/test/mjsunit/regress/regress-829889.js create mode 100644 deps/v8/test/mjsunit/regress/regress-842612.js create mode 100644 deps/v8/test/mjsunit/regress/regress-843543.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-arguments-gc.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-813630.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-819086.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-819298.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-820312.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-820820.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-821159-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-821159-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-821159-3.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-821159-4.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-823069.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-827013.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-831943.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-843022.js create mode 100644 deps/v8/test/mjsunit/regress/regress-store-transition-dict.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-7508.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-7565.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-7579.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-7582.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-769637.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-808848.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-817380.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-820802.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-824681.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-825087a.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-825087b.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-827806.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-831463.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-834619.js create mode 100644 deps/v8/test/mjsunit/tzoffset-seoul-noi18n.js create mode 100644 deps/v8/test/mjsunit/tzoffset-seoul.js create mode 100644 deps/v8/test/mjsunit/tzoffset-transition-apia.js create mode 100644 deps/v8/test/mjsunit/tzoffset-transition-lord-howe.js create mode 100644 deps/v8/test/mjsunit/tzoffset-transition-moscow.js create mode 100644 deps/v8/test/mjsunit/tzoffset-transition-new-york-noi18n.js create mode 100644 deps/v8/test/mjsunit/tzoffset-transition-new-york.js create mode 100644 deps/v8/test/mjsunit/wasm/anyref.js create mode 100644 deps/v8/test/mjsunit/wasm/liftoff-trap-handler.js create mode 100644 deps/v8/test/mjsunit/wasm/mutable-globals.js delete mode 100644 deps/v8/test/mkgrokdump/mkgrokdump.isolate create mode 100644 deps/v8/test/mozilla/BUILD.gn delete mode 100644 deps/v8/test/mozilla/mozilla.isolate delete mode 100644 deps/v8/test/optimize_for_size.isolate delete mode 100644 deps/v8/test/perf.isolate create mode 100644 deps/v8/test/preparser/BUILD.gn delete mode 100644 deps/v8/test/preparser/preparser.isolate delete mode 100755 deps/v8/test/test262/archive.py delete mode 100755 deps/v8/test/test262/list.py delete mode 100644 deps/v8/test/test262/test262.isolate delete mode 100644 deps/v8/test/unittests/unittests.isolate create mode 100644 deps/v8/test/wasm-spec-tests/BUILD.gn delete mode 100644 deps/v8/test/wasm-spec-tests/wasm-spec-tests.isolate create mode 100644 deps/v8/test/webkit/BUILD.gn delete mode 100644 deps/v8/test/webkit/webkit.isolate create mode 100644 deps/v8/testing/gmock/BUILD.gn create mode 100644 deps/v8/testing/gmock/OWNERS create mode 100644 deps/v8/testing/gmock/include/DEPS create mode 100644 deps/v8/testing/gmock/include/gmock/gmock-actions.h create mode 100644 deps/v8/testing/gmock/include/gmock/gmock-generated-function-mockers.h create mode 100644 deps/v8/testing/gmock/include/gmock/gmock-matchers.h create mode 100644 deps/v8/testing/gmock/include/gmock/gmock.h create mode 100644 deps/v8/testing/gtest/BUILD.gn create mode 100644 deps/v8/testing/gtest/OWNERS create mode 100644 deps/v8/testing/gtest/empty.cc create mode 100644 deps/v8/testing/gtest/include/DEPS create mode 100644 deps/v8/testing/gtest/include/gtest/gtest-death-test.h create mode 100644 deps/v8/testing/gtest/include/gtest/gtest-message.h create mode 100644 deps/v8/testing/gtest/include/gtest/gtest-param-test.h create mode 100644 deps/v8/testing/gtest/include/gtest/gtest-spi.h create mode 100644 deps/v8/testing/gtest/include/gtest/gtest.h create mode 100644 deps/v8/third_party/antlr4/LICENSE.txt create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/README.md create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/VERSION create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/CharStream.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/CharStream.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/CommonToken.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/CommonToken.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenFactory.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenFactory.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenStream.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenStream.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ConsoleErrorListener.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/DefaultErrorStrategy.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/DiagnosticErrorListener.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/Exceptions.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/Exceptions.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/FailedPredicateException.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/FailedPredicateException.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/InputMismatchException.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/InputMismatchException.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/IntStream.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/IntStream.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/InterpreterRuleContext.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/Lexer.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/Lexer.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/LexerInterpreter.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/LexerInterpreter.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/LexerNoViableAltException.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ListTokenSource.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ListTokenSource.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/NoViableAltException.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/NoViableAltException.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/Parser.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/Parser.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ParserInterpreter.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ParserInterpreter.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ParserRuleContext.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ParserRuleContext.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ProxyErrorListener.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/ProxyErrorListener.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/RecognitionException.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/RecognitionException.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/Recognizer.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/Recognizer.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/RuleContext.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/RuleContext.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/RuleContextWithAltNum.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/RuntimeMetaData.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/RuntimeMetaData.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/Token.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/Token.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/TokenFactory.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/TokenSource.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/TokenSource.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/TokenStream.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/TokenStream.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/TokenStreamRewriter.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedCharStream.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedTokenStream.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/Vocabulary.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/Vocabulary.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/WritableToken.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/WritableToken.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/antlr4-common.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/antlr4-runtime.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATN.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATN.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfig.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfig.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfigSet.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializer.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNSerializer.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNSerializer.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNSimulator.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNType.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ActionTransition.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ActionTransition.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/AtomTransition.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/AtomTransition.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/BasicBlockStartState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/BasicState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/BasicState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/BlockEndState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/BlockEndState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/BlockStartState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/BlockStartState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionInfo.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/EpsilonTransition.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ErrorInfo.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LL1Analyzer.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNConfig.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerAction.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerAction.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerActionType.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerChannelAction.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerCustomAction.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerModeAction.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerMoreAction.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerSkipAction.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerTypeAction.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LoopEndState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/LoopEndState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/Makefile create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/NotSetTransition.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParseInfo.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParseInfo.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PlusBlockStartState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PlusLoopbackState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateTransition.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContext.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContext.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionMode.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionMode.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/RangeTransition.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/RangeTransition.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleStartState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleStartState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleStopState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleStopState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleTransition.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleTransition.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/SemanticContext.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/SemanticContext.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/SetTransition.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/SetTransition.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarBlockStartState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarBlockStartState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopEntryState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopbackState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/TokensStartState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/TokensStartState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/Transition.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/Transition.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/atn/WildcardTransition.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFA.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFA.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFASerializer.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFAState.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFAState.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/Interval.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/Interval.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/IntervalSet.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/IntervalSet.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/MurmurHash.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/MurmurHash.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/Predicate.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/Predicate.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/Any.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/Any.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/Arrays.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/Arrays.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/BitSet.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/CPPUtils.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/CPPUtils.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/Declarations.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/StringUtils.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/StringUtils.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/guid.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/guid.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNode.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNode.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTree.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTree.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeListener.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNode.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNode.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/Trees.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/Trees.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/Chunk.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPath.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.g4 create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.tokens create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp create mode 100644 deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h create mode 100644 deps/v8/third_party/googletest/BUILD.gn create mode 100644 deps/v8/third_party/googletest/OWNERS create mode 100644 deps/v8/third_party/googletest/README.chromium create mode 100644 deps/v8/third_party/googletest/custom/gtest/internal/custom/gtest-port.h rename deps/v8/{testing => third_party/googletest}/gmock_custom/gmock/internal/custom/gmock-port.h (72%) create mode 100644 deps/v8/third_party/googletest/src/googletest/include/gtest/gtest_prod.h create mode 100644 deps/v8/third_party/jinja2/Jinja2-2.10.tar.gz.md5 create mode 100644 deps/v8/third_party/jinja2/Jinja2-2.10.tar.gz.sha512 delete mode 100644 deps/v8/third_party/jinja2/Jinja2-2.8.tar.gz.md5 delete mode 100644 deps/v8/third_party/jinja2/Jinja2-2.8.tar.gz.sha512 create mode 100644 deps/v8/third_party/jinja2/_identifier.py delete mode 100644 deps/v8/third_party/jinja2/_stringdefs.py create mode 100644 deps/v8/third_party/jinja2/asyncfilters.py create mode 100644 deps/v8/third_party/jinja2/asyncsupport.py create mode 100644 deps/v8/third_party/jinja2/idtracking.py create mode 100644 deps/v8/third_party/jinja2/jinja2.gni create mode 100644 deps/v8/third_party/jinja2/nativetypes.py delete mode 100644 deps/v8/tools/check-static-initializers.isolate create mode 100644 deps/v8/tools/gcmole/BUILD.gn delete mode 100644 deps/v8/tools/gcmole/run-gcmole.isolate create mode 100644 deps/v8/tools/heap-stats/helper.js delete mode 100644 deps/v8/tools/isolate_driver.py create mode 100644 deps/v8/tools/jsfunfuzz/BUILD.gn delete mode 100644 deps/v8/tools/jsfunfuzz/jsfunfuzz.isolate create mode 100644 deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_foo create mode 100644 deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_new create mode 100644 deps/v8/tools/node/testdata/v8/testing/gtest/gtest_bar create mode 100644 deps/v8/tools/node/testdata/v8/testing/gtest/gtest_new create mode 100644 deps/v8/tools/node/testdata/v8/testing/gtest/new/gtest_new create mode 100644 deps/v8/tools/release/testdata/v8/third_party/googletest/src/googletest/include/gtest/baz/gtest_new create mode 100644 deps/v8/tools/release/testdata/v8/third_party/googletest/src/googletest/include/gtest/gtest_new create mode 100644 deps/v8/tools/release/testdata/v8/third_party/googletest/src/googletest/include/gtest/gtest_prod.h create mode 100644 deps/v8/tools/release/testdata/v8/third_party/googletest/src/googletest/include/gtest/new/gtest_new delete mode 100644 deps/v8/tools/run-num-fuzzer.isolate delete mode 100644 deps/v8/tools/testrunner/testrunner.isolate create mode 100644 deps/v8/tools/valgrind/asan/dummy diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index 4ea2ead23d990d..630c3f2a09d3f8 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -49,24 +49,25 @@ /test/fuzzer/wasm_corpus.tar.gz /test/mozilla/data /test/test262/data -/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 -/testing/gtest/include/* -!/testing/gtest/include/gtest -/testing/gtest/include/gtest/* -!/testing/gtest/include/gtest/gtest_prod.h /third_party/* +!/third_party/antlr4 !/third_party/binutils -!/third_party/eu-strip !/third_party/inspector_protocol !/third_party/colorama /third_party/colorama/src +!/third_party/googletest +/third_party/googletest/src/* +!/third_party/googletest/src/googletest +/third_party/googletest/src/googletest/* +!/third_party/googletest/src/googletest/include +/third_party/googletest/src/googletest/include/* +!/third_party/googletest/src/googletest/include/gtest +/third_party/googletest/src/googletest/include/gtest/* +!/third_party/googletest/src/googletest/include/gtest/gtest_prod.h /tools/clang /tools/gcmole/gcmole-tools /tools/gcmole/gcmole-tools.tar.gz diff --git a/deps/v8/.gn b/deps/v8/.gn index c80980ea092d05..573fd030d80cf1 100644 --- a/deps/v8/.gn +++ b/deps/v8/.gn @@ -21,5 +21,4 @@ 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" ] +exec_script_whitelist = build_dotfile_settings.exec_script_whitelist + [] diff --git a/deps/v8/.vpython b/deps/v8/.vpython index 9ea0da7145bb16..6a9ce3f693ef11 100644 --- a/deps/v8/.vpython +++ b/deps/v8/.vpython @@ -30,3 +30,16 @@ wheel: < name: "infra/python/wheels/psutil/${vpython_platform}" version: "version:5.2.2" > + +# Used by: +# build/toolchain/win +wheel: < + name: "infra/python/wheels/pypiwin32/${vpython_platform}" + version: "version:219" + match_tag: < + platform: "win32" + > + match_tag: < + platform: "win_amd64" + > +> diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index 76a27ac1952ace..3251716f2a55f5 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -70,7 +70,6 @@ Felix Geisendörfer Filipe David Manana Franziska Hinkelmann Geoffrey Garside -Gus Caplan Gwang Yoon Hwang Henrique Ferreiro Hirofumi Mako @@ -99,6 +98,7 @@ Maciej Małecki Marcin Cieślak Marcin Wiącek Mateusz Czeladka +Matheus Marchini Mathias Bynens Matt Hanselman Matthew Sporleder @@ -138,6 +138,7 @@ Seo Sanghyeon Stefan Penner Sylvestre Ledru Taketoshi Aono +Teddy Katz Tiancheng "Timothy" Gu Tobias Burnus Victor Costan @@ -145,6 +146,7 @@ Vlad Burlik Vladimir Krivosheev Vladimir Shutoff Wiktor Garbacz +Xiaoyin Liu Yong Wang Yu Yin Zac Hansen diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 72a19b2ca450fa..4b48f7d6874df9 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -9,19 +9,23 @@ import("//build/config/host_byteorder.gni") import("//build/config/jumbo.gni") import("//build/config/mips.gni") import("//build/config/sanitizers/sanitizers.gni") +import("//build_overrides/build.gni") if (is_android) { import("//build/config/android/rules.gni") } import("gni/v8.gni") -import("gni/isolate.gni") import("snapshot_toolchain.gni") declare_args() { # Print to stdout on Android. v8_android_log_stdout = false + # Turns on all V8 debug features. Enables running V8 in a pseudo debug mode + # within a release Chrome. + v8_enable_debugging_features = is_debug + # Sets -DV8_ENABLE_FUTURE. v8_enable_future = false @@ -65,7 +69,8 @@ declare_args() { v8_enable_fast_mksnapshot = false # Enable embedded builtins. - # TODO(jgruber,v8:6666): Support ia32. + # TODO(jgruber,v8:6666): Support ia32 and maybe MSVC. + # TODO(jgruber,v8:6666): Re-enable after the M67 branch point. v8_enable_embedded_builtins = false # Enable code-generation-time checking of types in the CodeStubAssembler. @@ -142,29 +147,33 @@ declare_args() { # Enable mitigations for executing untrusted code. v8_untrusted_code_mitigations = true + + # Enable minor mark compact. + v8_enable_minor_mc = true } # Derived defaults. if (v8_enable_verify_heap == "") { - v8_enable_verify_heap = is_debug + v8_enable_verify_heap = v8_enable_debugging_features } if (v8_enable_object_print == "") { - v8_enable_object_print = is_debug + v8_enable_object_print = v8_enable_debugging_features } if (v8_enable_disassembler == "") { - v8_enable_disassembler = is_debug + v8_enable_disassembler = v8_enable_debugging_features } if (v8_enable_trace_maps == "") { - v8_enable_trace_maps = is_debug + v8_enable_trace_maps = v8_enable_debugging_features } if (v8_enable_test_features == "") { - v8_enable_test_features = is_debug || dcheck_always_on + v8_enable_test_features = v8_enable_debugging_features || dcheck_always_on } if (v8_enable_v8_checks == "") { - v8_enable_v8_checks = is_debug + v8_enable_v8_checks = v8_enable_debugging_features } if (v8_check_microtasks_scopes_consistency == "") { - v8_check_microtasks_scopes_consistency = is_debug || dcheck_always_on + v8_check_microtasks_scopes_consistency = + v8_enable_debugging_features || dcheck_always_on } # Specifies if the target build is a simulator build. Comparing target cpu @@ -268,6 +277,9 @@ config("features") { if (v8_enable_vtunejit) { defines += [ "ENABLE_VTUNE_JIT_INTERFACE" ] } + if (v8_enable_minor_mc) { + defines += [ "ENABLE_MINOR_MC" ] + } if (v8_enable_object_print) { defines += [ "OBJECT_PRINT" ] } @@ -326,6 +338,9 @@ config("features") { if (v8_enable_embedded_builtins) { defines += [ "V8_EMBEDDED_BUILTINS" ] } + if (v8_use_multi_snapshots) { + defines += [ "V8_MULTI_SNAPSHOTS" ] + } } config("toolchain") { @@ -497,7 +512,7 @@ config("toolchain") { # TODO(jochen): Support v8_enable_prof on Windows. # TODO(jochen): Add support for compiling with simulators. - if (is_debug) { + if (v8_enable_debugging_features) { if (is_linux && v8_enable_backtrace) { ldflags += [ "-rdynamic" ] } @@ -527,6 +542,8 @@ config("toolchain") { if (is_clang) { cflags += [ + "-Wmissing-field-initializers", + # TODO(hans): Remove once http://crbug.com/428099 is resolved. "-Winconsistent-missing-override", ] @@ -602,8 +619,6 @@ action("js2c") { "src/js/prologue.js", "src/js/array.js", "src/js/typedarray.js", - "src/js/messages.js", - "src/js/spread.js", "src/debug/mirrors.js", "src/debug/debug.js", "src/debug/liveedit.js", @@ -717,6 +732,8 @@ action("d8_js2c") { if (is_android && enable_java_templates) { android_assets("v8_external_startup_data_assets") { if (v8_use_external_startup_data) { + # We don't support side-by-side snapshots on Android within Chromium. + assert(!v8_use_multi_snapshots) deps = [ "//v8", ] @@ -756,6 +773,10 @@ if (v8_use_external_startup_data) { "$root_out_dir/natives_blob.bin", ] + data = [ + "$root_out_dir/natives_blob.bin", + ] + script = "tools/concatenate-files.py" args = rebase_path(sources + outputs, root_build_dir) @@ -786,6 +807,8 @@ action("postmortem-metadata") { "src/objects/js-array.h", "src/objects/js-regexp-inl.h", "src/objects/js-regexp.h", + "src/objects/js-regexp-string-iterator-inl.h", + "src/objects/js-regexp-string-iterator.h", "src/objects/map.h", "src/objects/map-inl.h", "src/objects/script.h", @@ -804,8 +827,24 @@ action("postmortem-metadata") { rebase_path(sources, root_build_dir) } -if (v8_use_snapshot) { - action("run_mksnapshot") { +# Template to generate different V8 snapshots based on different runtime flags. +# Can be invoked with run_mksnapshot(). The target will resolve to +# run_mksnapshot_. If is "default", no file suffixes will be used. +# Otherwise files are suffixed, e.g. embedded_.cc and +# snapshot_blob_.bin. +# +# The template exposes the variables: +# args: additional flags for mksnapshots +# embedded_suffix: a camel case suffix for method names in the embedded +# snapshot. +template("run_mksnapshot") { + name = target_name + if (name == "default") { + suffix = "" + } else { + suffix = "_$name" + } + action("run_mksnapshot_" + name) { visibility = [ ":*" ] # Only targets in this file can depend on this. deps = [ @@ -816,19 +855,33 @@ if (v8_use_snapshot) { sources = [] - outputs = [ - "$target_gen_dir/snapshot.cc", - ] + outputs = [] + + data = [] args = [ "./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)", "root_out_dir") + "/mksnapshot", root_build_dir), "--turbo_instruction_scheduling", - "--startup_src", - rebase_path("$target_gen_dir/snapshot.cc", root_build_dir), ] + args += invoker.args + + if (v8_enable_embedded_builtins) { + outputs += [ "$target_gen_dir/embedded${suffix}.cc" ] + args += [ + "--embedded_src", + rebase_path("$target_gen_dir/embedded${suffix}.cc", root_build_dir), + ] + if (invoker.embedded_variant != "") { + args += [ + "--embedded_variant", + invoker.embedded_variant, + ] + } + } + if (v8_random_seed != "0") { args += [ "--random-seed", @@ -848,10 +901,17 @@ if (v8_use_snapshot) { } if (v8_use_external_startup_data) { - outputs += [ "$root_out_dir/snapshot_blob.bin" ] + outputs += [ "$root_out_dir/snapshot_blob${suffix}.bin" ] + data += [ "$root_out_dir/snapshot_blob${suffix}.bin" ] args += [ "--startup_blob", - rebase_path("$root_out_dir/snapshot_blob.bin", root_build_dir), + rebase_path("$root_out_dir/snapshot_blob${suffix}.bin", root_build_dir), + ] + } else { + outputs += [ "$target_gen_dir/snapshot${suffix}.cc" ] + args += [ + "--startup_src", + rebase_path("$target_gen_dir/snapshot${suffix}.cc", root_build_dir), ] } @@ -869,6 +929,23 @@ if (v8_use_snapshot) { } } +if (v8_use_snapshot) { + run_mksnapshot("default") { + args = [] + if (v8_enable_embedded_builtins) { + embedded_variant = "Default" + } + } + if (v8_use_multi_snapshots) { + run_mksnapshot("trusted") { + args = [ "--no-untrusted-code-mitigations" ] + if (v8_enable_embedded_builtins) { + embedded_variant = "Trusted" + } + } + } +} + action("v8_dump_build_config") { script = "tools/testrunner/utils/dump_build_config.py" outputs = [ @@ -882,7 +959,7 @@ action("v8_dump_build_config") { "is_asan=$is_asan", "is_cfi=$is_cfi", "is_component_build=$is_component_build", - "is_debug=$is_debug", + "is_debug=$v8_enable_debugging_features", "is_gcov_coverage=$is_gcov_coverage", "is_msan=$is_msan", "is_tsan=$is_tsan", @@ -940,12 +1017,13 @@ v8_source_set("v8_nosnapshot") { "$target_gen_dir/experimental-extras-libraries.cc", "$target_gen_dir/extras-libraries.cc", "$target_gen_dir/libraries.cc", + "src/snapshot/embedded-empty.cc", "src/snapshot/snapshot-empty.cc", ] if (use_jumbo_build == true) { jumbo_excluded_sources = [ - # TODO(mostynb@opera.com): don't exclude these http://crbug.com/752428 + # TODO(mostynb@vewd.com): don't exclude these http://crbug.com/752428 # Generated source, contains same variable names as libraries.cc "$target_gen_dir/experimental-extras-libraries.cc", "$target_gen_dir/libraries.cc", @@ -955,7 +1033,7 @@ v8_source_set("v8_nosnapshot") { configs = [ ":internal_config" ] } -if (v8_use_snapshot) { +if (v8_use_snapshot && !v8_use_external_startup_data) { v8_source_set("v8_snapshot") { # Only targets in this file and the top-level visibility target can # depend on this. @@ -973,7 +1051,7 @@ if (v8_use_snapshot) { public_deps = [ # This should be public so downstream targets can declare the snapshot # output file as their inputs. - ":run_mksnapshot", + ":run_mksnapshot_default", ] sources = [ @@ -984,9 +1062,13 @@ if (v8_use_snapshot) { "src/setup-isolate-deserialize.cc", ] + if (v8_enable_embedded_builtins) { + sources += [ "$target_gen_dir/embedded.cc" ] + } + if (use_jumbo_build == true) { jumbo_excluded_sources = [ - # TODO(mostynb@opera.com): don't exclude these http://crbug.com/752428 + # TODO(mostynb@vewd.com): don't exclude these http://crbug.com/752428 # Generated source, contains same variable names as libraries.cc "$target_gen_dir/experimental-extras-libraries.cc", "$target_gen_dir/libraries.cc", @@ -997,7 +1079,7 @@ if (v8_use_snapshot) { } } -if (v8_use_external_startup_data) { +if (v8_use_snapshot && v8_use_external_startup_data) { v8_source_set("v8_external_snapshot") { visibility = [ ":*" ] # Only targets in this file can depend on this. @@ -1009,15 +1091,34 @@ if (v8_use_external_startup_data) { ] public_deps = [ ":natives_blob", - ":run_mksnapshot", + ":run_mksnapshot_default", ] + if (v8_use_multi_snapshots) { + public_deps += [ ":run_mksnapshot_trusted" ] + } + sources = [ "src/setup-isolate-deserialize.cc", "src/snapshot/natives-external.cc", "src/snapshot/snapshot-external.cc", ] + if (v8_enable_embedded_builtins) { + sources += [ "$target_gen_dir/embedded.cc" ] + + if (v8_use_multi_snapshots) { + sources += [ "$target_gen_dir/embedded_trusted.cc" ] + + if (use_jumbo_build == true) { + jumbo_excluded_sources = [ + # Duplicated symbols with embedded.cc + "$target_gen_dir/embedded_trusted.cc", + ] + } + } + } + configs = [ ":internal_config" ] } } @@ -1105,7 +1206,7 @@ v8_source_set("v8_initializers") { if (use_jumbo_build == true) { jumbo_excluded_sources = [ - # TODO(mostynb@opera.com): don't exclude these http://crbug.com/752428 + # TODO(mostynb@vewd.com): don't exclude these http://crbug.com/752428 "src/builtins/builtins-async-iterator-gen.cc", "src/builtins/builtins-async-generator-gen.cc", @@ -1232,7 +1333,6 @@ v8_source_set("v8_base") { "src/allocation.cc", "src/allocation.h", "src/api-arguments-inl.h", - "src/api-arguments.cc", "src/api-arguments.h", "src/api-natives.cc", "src/api-natives.h", @@ -1350,8 +1450,6 @@ v8_source_set("v8_base") { "src/compilation-cache.h", "src/compilation-dependencies.cc", "src/compilation-dependencies.h", - "src/compilation-info.cc", - "src/compilation-info.h", "src/compilation-statistics.cc", "src/compilation-statistics.h", "src/compiler-dispatcher/compiler-dispatcher-job.cc", @@ -1634,9 +1732,8 @@ v8_source_set("v8_base") { "src/extensions/trigger-failure-extension.h", "src/external-reference-table.cc", "src/external-reference-table.h", - "src/factory-inl.h", - "src/factory.cc", - "src/factory.h", + "src/external-reference.cc", + "src/external-reference.h", "src/fast-dtoa.cc", "src/fast-dtoa.h", "src/feedback-vector-inl.h", @@ -1680,6 +1777,9 @@ v8_source_set("v8_base") { "src/heap/concurrent-marking.h", "src/heap/embedder-tracing.cc", "src/heap/embedder-tracing.h", + "src/heap/factory-inl.h", + "src/heap/factory.cc", + "src/heap/factory.h", "src/heap/gc-idle-time-handler.cc", "src/heap/gc-idle-time-handler.h", "src/heap/gc-tracer.cc", @@ -1866,12 +1966,16 @@ v8_source_set("v8_base") { "src/objects/js-promise-inl.h", "src/objects/js-promise.h", "src/objects/js-regexp-inl.h", + "src/objects/js-regexp-string-iterator-inl.h", + "src/objects/js-regexp-string-iterator.h", "src/objects/js-regexp.h", "src/objects/literal-objects-inl.h", "src/objects/literal-objects.cc", "src/objects/literal-objects.h", "src/objects/map-inl.h", "src/objects/map.h", + "src/objects/maybe-object-inl.h", + "src/objects/maybe-object.h", "src/objects/microtask-inl.h", "src/objects/microtask.h", "src/objects/module-inl.h", @@ -1897,6 +2001,8 @@ v8_source_set("v8_base") { "src/objects/string.h", "src/objects/template-objects.cc", "src/objects/template-objects.h", + "src/optimized-compilation-info.cc", + "src/optimized-compilation-info.h", "src/ostreams.cc", "src/ostreams.h", "src/parsing/duplicate-finder.h", @@ -2051,6 +2157,7 @@ v8_source_set("v8_base") { "src/snapshot/default-serializer-allocator.h", "src/snapshot/deserializer.cc", "src/snapshot/deserializer.h", + "src/snapshot/macros.h", "src/snapshot/natives-common.cc", "src/snapshot/natives.h", "src/snapshot/object-deserializer.cc", @@ -2113,6 +2220,8 @@ v8_source_set("v8_base") { "src/unicode-inl.h", "src/unicode.cc", "src/unicode.h", + "src/unoptimized-compilation-info.cc", + "src/unoptimized-compilation-info.h", "src/uri.cc", "src/uri.h", "src/utils-inl.h", @@ -2162,8 +2271,6 @@ v8_source_set("v8_base") { "src/wasm/wasm-code-manager.h", "src/wasm/wasm-code-specialization.cc", "src/wasm/wasm-code-specialization.h", - "src/wasm/wasm-code-wrapper.cc", - "src/wasm/wasm-code-wrapper.h", "src/wasm/wasm-constants.h", "src/wasm/wasm-debug.cc", "src/wasm/wasm-engine.cc", @@ -2196,7 +2303,6 @@ v8_source_set("v8_base") { "src/zone/accounting-allocator.cc", "src/zone/accounting-allocator.h", "src/zone/zone-allocator.h", - "src/zone/zone-allocator.h", "src/zone/zone-chunk-list.h", "src/zone/zone-containers.h", "src/zone/zone-handle-set.h", @@ -2209,7 +2315,7 @@ v8_source_set("v8_base") { if (use_jumbo_build == true) { jumbo_excluded_sources = [ - # TODO(mostynb@opera.com): don't exclude these http://crbug.com/752428 + # TODO(mostynb@vewd.com): don't exclude these http://crbug.com/752428 "src/profiler/heap-snapshot-generator.cc", # Macro clash in mman-linux.h # These source files take an unusually large amount of time to @@ -2364,7 +2470,7 @@ v8_source_set("v8_base") { ] if (use_jumbo_build) { jumbo_excluded_sources += [ - # TODO(mostynb@opera.com): fix this code so it doesn't need + # TODO(mostynb@vewd.com): fix this code so it doesn't need # to be excluded, see the comments inside. "src/arm64/instructions-arm64-constants.cc", ] @@ -2592,13 +2698,17 @@ v8_component("v8_libbase") { public_configs = [ ":libbase_config" ] + data = [] + + data_deps = [] + defines = [] if (is_component_build) { defines = [ "BUILDING_V8_BASE_SHARED" ] } - if (is_posix) { + if (is_posix || is_fuchsia) { sources += [ "src/base/platform/platform-posix.cc", "src/base/platform/platform-posix.h", @@ -2680,6 +2790,12 @@ v8_component("v8_libbase") { "winmm.lib", "ws2_32.lib", ] + + data_deps += [ "//build/win:runtime_libs" ] + } + + if (is_tsan && !build_with_chromium) { + data += [ "tools/sanitizers/tsan_suppressions.txt" ] } # TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris. @@ -2691,12 +2807,12 @@ v8_component("v8_libplatform") { "include/libplatform/libplatform-export.h", "include/libplatform/libplatform.h", "include/libplatform/v8-tracing.h", - "src/libplatform/default-background-task-runner.cc", - "src/libplatform/default-background-task-runner.h", "src/libplatform/default-foreground-task-runner.cc", "src/libplatform/default-foreground-task-runner.h", "src/libplatform/default-platform.cc", "src/libplatform/default-platform.h", + "src/libplatform/default-worker-threads-task-runner.cc", + "src/libplatform/default-worker-threads-task-runner.h", "src/libplatform/task-queue.cc", "src/libplatform/task-queue.h", "src/libplatform/tracing/trace-buffer.cc", @@ -2834,10 +2950,6 @@ group("gn_all") { if (want_v8_shell) { deps += [ ":v8_shell" ] } - - if (v8_test_isolation_mode != "noop") { - deps += [ ":d8_run" ] - } } group("v8_clusterfuzz") { @@ -2855,13 +2967,6 @@ group("v8_clusterfuzz") { ":d8(//build/toolchain/linux:clang_x86_v8_arm)", ] } - - if (v8_test_isolation_mode != "noop") { - deps += [ - "test:d8_default_run", - "tools:run-num-fuzzer_run", - ] - } } group("v8_archive") { @@ -2872,7 +2977,7 @@ group("v8_archive") { group("v8_fuzzers") { testonly = true - deps = [ + data_deps = [ ":v8_simple_json_fuzzer", ":v8_simple_multi_return_fuzzer", ":v8_simple_parser_fuzzer", @@ -2979,7 +3084,7 @@ v8_executable("d8") { "//build/win:default_exe_manifest", ] - if (is_posix) { + if (is_posix || is_fuchsia) { sources += [ "src/d8-posix.cc" ] } else if (is_win) { sources += [ "src/d8-windows.cc" ] @@ -2992,18 +3097,10 @@ v8_executable("d8") { defines = [] if (v8_enable_vtunejit) { - deps += [ "//src/third_party/vtune:v8_vtune" ] + deps += [ "src/third_party/vtune:v8_vtune" ] } } -v8_isolate_run("d8") { - deps = [ - ":d8", - ] - - isolate = "//src/d8.isolate" -} - v8_executable("v8_hello_world") { sources = [ "samples/hello-world.cc", diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index cfeeb0e08b6630..e6b825092c4a1d 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,1493 @@ +2018-04-11: Version 6.7.288 + + Performance and stability improvements on all platforms. + + +2018-04-11: Version 6.7.287 + + Performance and stability improvements on all platforms. + + +2018-04-11: Version 6.7.286 + + Performance and stability improvements on all platforms. + + +2018-04-11: Version 6.7.285 + + Performance and stability improvements on all platforms. + + +2018-04-11: Version 6.7.284 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.283 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.282 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.281 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.280 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.279 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.278 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.277 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.276 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.275 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.274 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.273 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.272 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.271 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.270 + + Performance and stability improvements on all platforms. + + +2018-04-10: Version 6.7.269 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.268 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.267 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.266 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.265 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.264 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.263 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.262 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.261 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.260 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.259 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.258 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.257 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.256 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.255 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.254 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.253 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.252 + + Performance and stability improvements on all platforms. + + +2018-04-09: Version 6.7.251 + + Performance and stability improvements on all platforms. + + +2018-04-06: Version 6.7.250 + + Performance and stability improvements on all platforms. + + +2018-04-06: Version 6.7.249 + + Performance and stability improvements on all platforms. + + +2018-04-06: Version 6.7.248 + + Performance and stability improvements on all platforms. + + +2018-04-06: Version 6.7.247 + + Performance and stability improvements on all platforms. + + +2018-04-06: Version 6.7.246 + + Performance and stability improvements on all platforms. + + +2018-04-06: Version 6.7.245 + + Performance and stability improvements on all platforms. + + +2018-04-06: Version 6.7.244 + + Performance and stability improvements on all platforms. + + +2018-04-06: Version 6.7.243 + + Performance and stability improvements on all platforms. + + +2018-04-06: Version 6.7.242 + + Performance and stability improvements on all platforms. + + +2018-04-06: Version 6.7.241 + + Performance and stability improvements on all platforms. + + +2018-04-05: Version 6.7.240 + + Performance and stability improvements on all platforms. + + +2018-04-05: Version 6.7.239 + + Performance and stability improvements on all platforms. + + +2018-04-05: Version 6.7.238 + + Performance and stability improvements on all platforms. + + +2018-04-05: Version 6.7.237 + + Performance and stability improvements on all platforms. + + +2018-04-05: Version 6.7.236 + + Performance and stability improvements on all platforms. + + +2018-04-05: Version 6.7.235 + + Performance and stability improvements on all platforms. + + +2018-04-05: Version 6.7.234 + + Performance and stability improvements on all platforms. + + +2018-04-05: Version 6.7.233 + + Performance and stability improvements on all platforms. + + +2018-04-05: Version 6.7.232 + + Performance and stability improvements on all platforms. + + +2018-04-05: Version 6.7.231 + + Performance and stability improvements on all platforms. + + +2018-04-05: Version 6.7.230 + + Performance and stability improvements on all platforms. + + +2018-04-05: Version 6.7.229 + + Performance and stability improvements on all platforms. + + +2018-04-05: Version 6.7.228 + + Performance and stability improvements on all platforms. + + +2018-04-04: Version 6.7.227 + + Performance and stability improvements on all platforms. + + +2018-04-04: Version 6.7.226 + + Performance and stability improvements on all platforms. + + +2018-04-04: Version 6.7.225 + + Performance and stability improvements on all platforms. + + +2018-04-04: Version 6.7.224 + + Performance and stability improvements on all platforms. + + +2018-04-04: Version 6.7.223 + + Performance and stability improvements on all platforms. + + +2018-04-04: Version 6.7.222 + + Performance and stability improvements on all platforms. + + +2018-04-04: Version 6.7.221 + + Performance and stability improvements on all platforms. + + +2018-04-04: Version 6.7.220 + + Performance and stability improvements on all platforms. + + +2018-04-04: Version 6.7.219 + + Performance and stability improvements on all platforms. + + +2018-04-04: Version 6.7.218 + + Performance and stability improvements on all platforms. + + +2018-04-04: Version 6.7.217 + + Performance and stability improvements on all platforms. + + +2018-04-04: Version 6.7.216 + + Performance and stability improvements on all platforms. + + +2018-04-03: Version 6.7.215 + + Performance and stability improvements on all platforms. + + +2018-04-03: Version 6.7.214 + + Performance and stability improvements on all platforms. + + +2018-03-30: Version 6.7.213 + + Performance and stability improvements on all platforms. + + +2018-03-30: Version 6.7.212 + + Performance and stability improvements on all platforms. + + +2018-03-29: Version 6.7.211 + + Performance and stability improvements on all platforms. + + +2018-03-29: Version 6.7.210 + + Performance and stability improvements on all platforms. + + +2018-03-29: Version 6.7.209 + + Performance and stability improvements on all platforms. + + +2018-03-29: Version 6.7.208 + + Performance and stability improvements on all platforms. + + +2018-03-29: Version 6.7.207 + + Performance and stability improvements on all platforms. + + +2018-03-29: Version 6.7.206 + + Performance and stability improvements on all platforms. + + +2018-03-29: Version 6.7.205 + + Performance and stability improvements on all platforms. + + +2018-03-29: Version 6.7.204 + + Performance and stability improvements on all platforms. + + +2018-03-28: Version 6.7.203 + + Performance and stability improvements on all platforms. + + +2018-03-28: Version 6.7.202 + + Performance and stability improvements on all platforms. + + +2018-03-28: Version 6.7.201 + + Performance and stability improvements on all platforms. + + +2018-03-28: Version 6.7.200 + + Performance and stability improvements on all platforms. + + +2018-03-28: Version 6.7.199 + + Performance and stability improvements on all platforms. + + +2018-03-28: Version 6.7.198 + + Performance and stability improvements on all platforms. + + +2018-03-28: Version 6.7.197 + + Performance and stability improvements on all platforms. + + +2018-03-28: Version 6.7.196 + + Performance and stability improvements on all platforms. + + +2018-03-28: Version 6.7.195 + + Performance and stability improvements on all platforms. + + +2018-03-28: Version 6.7.194 + + Performance and stability improvements on all platforms. + + +2018-03-27: Version 6.7.193 + + Performance and stability improvements on all platforms. + + +2018-03-27: Version 6.7.192 + + Performance and stability improvements on all platforms. + + +2018-03-27: Version 6.7.191 + + Performance and stability improvements on all platforms. + + +2018-03-27: Version 6.7.190 + + Performance and stability improvements on all platforms. + + +2018-03-27: Version 6.7.189 + + Performance and stability improvements on all platforms. + + +2018-03-27: Version 6.7.188 + + Performance and stability improvements on all platforms. + + +2018-03-27: Version 6.7.187 + + Performance and stability improvements on all platforms. + + +2018-03-27: Version 6.7.186 + + Performance and stability improvements on all platforms. + + +2018-03-27: Version 6.7.185 + + Performance and stability improvements on all platforms. + + +2018-03-27: Version 6.7.184 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.183 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.182 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.181 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.180 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.179 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.178 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.177 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.176 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.175 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.174 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.173 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.172 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.171 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.170 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.169 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.168 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.167 + + Performance and stability improvements on all platforms. + + +2018-03-26: Version 6.7.166 + + Performance and stability improvements on all platforms. + + +2018-03-24: Version 6.7.165 + + Performance and stability improvements on all platforms. + + +2018-03-24: Version 6.7.164 + + Performance and stability improvements on all platforms. + + +2018-03-24: Version 6.7.163 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.162 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.161 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.160 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.159 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.158 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.157 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.156 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.155 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.154 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.153 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.152 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.151 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.150 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.149 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.148 + + Performance and stability improvements on all platforms. + + +2018-03-23: Version 6.7.147 + + Performance and stability improvements on all platforms. + + +2018-03-22: Version 6.7.146 + + Performance and stability improvements on all platforms. + + +2018-03-22: Version 6.7.145 + + Performance and stability improvements on all platforms. + + +2018-03-22: Version 6.7.144 + + Performance and stability improvements on all platforms. + + +2018-03-22: Version 6.7.143 + + Performance and stability improvements on all platforms. + + +2018-03-22: Version 6.7.142 + + Performance and stability improvements on all platforms. + + +2018-03-22: Version 6.7.141 + + Performance and stability improvements on all platforms. + + +2018-03-22: Version 6.7.140 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.139 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.138 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.137 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.136 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.135 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.134 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.133 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.132 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.131 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.130 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.129 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.128 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.127 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.126 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.125 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.124 + + Performance and stability improvements on all platforms. + + +2018-03-21: Version 6.7.123 + + Performance and stability improvements on all platforms. + + +2018-03-20: Version 6.7.122 + + Performance and stability improvements on all platforms. + + +2018-03-20: Version 6.7.121 + + Performance and stability improvements on all platforms. + + +2018-03-20: Version 6.7.120 + + Performance and stability improvements on all platforms. + + +2018-03-20: Version 6.7.119 + + Performance and stability improvements on all platforms. + + +2018-03-20: Version 6.7.118 + + Performance and stability improvements on all platforms. + + +2018-03-20: Version 6.7.117 + + Performance and stability improvements on all platforms. + + +2018-03-20: Version 6.7.116 + + Performance and stability improvements on all platforms. + + +2018-03-20: Version 6.7.115 + + Performance and stability improvements on all platforms. + + +2018-03-20: Version 6.7.114 + + Performance and stability improvements on all platforms. + + +2018-03-20: Version 6.7.113 + + Performance and stability improvements on all platforms. + + +2018-03-20: Version 6.7.112 + + Performance and stability improvements on all platforms. + + +2018-03-20: Version 6.7.111 + + Performance and stability improvements on all platforms. + + +2018-03-20: Version 6.7.110 + + Performance and stability improvements on all platforms. + + +2018-03-19: Version 6.7.109 + + Performance and stability improvements on all platforms. + + +2018-03-19: Version 6.7.108 + + Performance and stability improvements on all platforms. + + +2018-03-19: Version 6.7.107 + + Performance and stability improvements on all platforms. + + +2018-03-19: Version 6.7.106 + + Performance and stability improvements on all platforms. + + +2018-03-19: Version 6.7.105 + + Performance and stability improvements on all platforms. + + +2018-03-19: Version 6.7.104 + + Performance and stability improvements on all platforms. + + +2018-03-19: Version 6.7.103 + + Performance and stability improvements on all platforms. + + +2018-03-17: Version 6.7.102 + + Performance and stability improvements on all platforms. + + +2018-03-16: Version 6.7.101 + + Performance and stability improvements on all platforms. + + +2018-03-16: Version 6.7.100 + + Performance and stability improvements on all platforms. + + +2018-03-16: Version 6.7.99 + + Performance and stability improvements on all platforms. + + +2018-03-16: Version 6.7.98 + + Performance and stability improvements on all platforms. + + +2018-03-16: Version 6.7.97 + + Performance and stability improvements on all platforms. + + +2018-03-16: Version 6.7.96 + + Performance and stability improvements on all platforms. + + +2018-03-16: Version 6.7.95 + + Performance and stability improvements on all platforms. + + +2018-03-16: Version 6.7.94 + + Performance and stability improvements on all platforms. + + +2018-03-16: Version 6.7.93 + + Performance and stability improvements on all platforms. + + +2018-03-16: Version 6.7.92 + + Performance and stability improvements on all platforms. + + +2018-03-16: Version 6.7.91 + + Performance and stability improvements on all platforms. + + +2018-03-16: Version 6.7.90 + + Performance and stability improvements on all platforms. + + +2018-03-16: Version 6.7.89 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.88 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.87 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.86 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.85 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.84 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.83 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.82 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.81 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.80 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.79 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.78 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.77 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.76 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.75 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.74 + + Performance and stability improvements on all platforms. + + +2018-03-15: Version 6.7.73 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.72 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.71 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.70 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.69 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.68 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.67 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.66 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.65 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.64 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.63 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.62 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.61 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.60 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.59 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.58 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.57 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.56 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.55 + + Performance and stability improvements on all platforms. + + +2018-03-14: Version 6.7.54 + + Performance and stability improvements on all platforms. + + +2018-03-13: Version 6.7.53 + + Performance and stability improvements on all platforms. + + +2018-03-13: Version 6.7.52 + + Performance and stability improvements on all platforms. + + +2018-03-13: Version 6.7.51 + + Performance and stability improvements on all platforms. + + +2018-03-13: Version 6.7.50 + + Performance and stability improvements on all platforms. + + +2018-03-13: Version 6.7.49 + + Performance and stability improvements on all platforms. + + +2018-03-13: Version 6.7.48 + + Performance and stability improvements on all platforms. + + +2018-03-13: Version 6.7.47 + + Performance and stability improvements on all platforms. + + +2018-03-13: Version 6.7.46 + + Performance and stability improvements on all platforms. + + +2018-03-13: Version 6.7.45 + + Performance and stability improvements on all platforms. + + +2018-03-12: Version 6.7.44 + + Performance and stability improvements on all platforms. + + +2018-03-12: Version 6.7.43 + + Performance and stability improvements on all platforms. + + +2018-03-12: Version 6.7.42 + + Performance and stability improvements on all platforms. + + +2018-03-12: Version 6.7.41 + + Performance and stability improvements on all platforms. + + +2018-03-12: Version 6.7.40 + + Performance and stability improvements on all platforms. + + +2018-03-12: Version 6.7.39 + + Performance and stability improvements on all platforms. + + +2018-03-12: Version 6.7.38 + + Performance and stability improvements on all platforms. + + +2018-03-12: Version 6.7.37 + + Performance and stability improvements on all platforms. + + +2018-03-12: Version 6.7.36 + + Performance and stability improvements on all platforms. + + +2018-03-12: Version 6.7.35 + + Performance and stability improvements on all platforms. + + +2018-03-12: Version 6.7.34 + + Performance and stability improvements on all platforms. + + +2018-03-12: Version 6.7.33 + + Performance and stability improvements on all platforms. + + +2018-03-12: Version 6.7.32 + + Performance and stability improvements on all platforms. + + +2018-03-10: Version 6.7.31 + + Performance and stability improvements on all platforms. + + +2018-03-09: Version 6.7.30 + + Performance and stability improvements on all platforms. + + +2018-03-09: Version 6.7.29 + + Performance and stability improvements on all platforms. + + +2018-03-08: Version 6.7.28 + + Performance and stability improvements on all platforms. + + +2018-03-08: Version 6.7.27 + + Performance and stability improvements on all platforms. + + +2018-03-08: Version 6.7.26 + + Performance and stability improvements on all platforms. + + +2018-03-07: Version 6.7.25 + + Performance and stability improvements on all platforms. + + +2018-03-07: Version 6.7.24 + + Performance and stability improvements on all platforms. + + +2018-03-07: Version 6.7.23 + + Performance and stability improvements on all platforms. + + +2018-03-06: Version 6.7.22 + + Performance and stability improvements on all platforms. + + +2018-03-06: Version 6.7.21 + + Performance and stability improvements on all platforms. + + +2018-03-06: Version 6.7.20 + + Performance and stability improvements on all platforms. + + +2018-03-06: Version 6.7.19 + + Performance and stability improvements on all platforms. + + +2018-03-06: Version 6.7.18 + + Performance and stability improvements on all platforms. + + +2018-03-06: Version 6.7.17 + + Performance and stability improvements on all platforms. + + +2018-03-06: Version 6.7.16 + + Performance and stability improvements on all platforms. + + +2018-03-05: Version 6.7.15 + + Performance and stability improvements on all platforms. + + +2018-03-05: Version 6.7.14 + + Performance and stability improvements on all platforms. + + +2018-03-05: Version 6.7.13 + + Performance and stability improvements on all platforms. + + +2018-03-05: Version 6.7.12 + + Performance and stability improvements on all platforms. + + +2018-03-05: Version 6.7.11 + + Performance and stability improvements on all platforms. + + +2018-03-05: Version 6.7.10 + + Performance and stability improvements on all platforms. + + +2018-03-05: Version 6.7.9 + + Performance and stability improvements on all platforms. + + +2018-03-02: Version 6.7.8 + + Performance and stability improvements on all platforms. + + +2018-03-02: Version 6.7.7 + + Performance and stability improvements on all platforms. + + +2018-03-02: Version 6.7.6 + + Performance and stability improvements on all platforms. + + +2018-03-02: Version 6.7.5 + + Performance and stability improvements on all platforms. + + +2018-03-02: Version 6.7.4 + + Performance and stability improvements on all platforms. + + +2018-03-02: Version 6.7.3 + + Performance and stability improvements on all platforms. + + +2018-03-02: Version 6.7.2 + + Performance and stability improvements on all platforms. + + +2018-03-02: Version 6.7.1 + + Performance and stability improvements on all platforms. + + +2018-03-01: Version 6.6.356 + + Performance and stability improvements on all platforms. + + +2018-02-28: Version 6.6.355 + + Performance and stability improvements on all platforms. + + +2018-02-28: Version 6.6.354 + + Performance and stability improvements on all platforms. + + +2018-02-28: Version 6.6.353 + + Performance and stability improvements on all platforms. + + +2018-02-28: Version 6.6.352 + + Performance and stability improvements on all platforms. + + +2018-02-28: Version 6.6.351 + + Performance and stability improvements on all platforms. + + +2018-02-28: Version 6.6.350 + + Performance and stability improvements on all platforms. + + +2018-02-28: Version 6.6.349 + + Performance and stability improvements on all platforms. + + +2018-02-28: Version 6.6.348 + + Performance and stability improvements on all platforms. + + +2018-02-28: Version 6.6.347 + + Performance and stability improvements on all platforms. + + 2018-02-28: Version 6.6.346 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index 4c67868d52dac8..4a00478633793d 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -12,57 +12,55 @@ vars = { deps = { 'v8/build': - Var('chromium_url') + '/chromium/src/build.git' + '@' + 'b1d6c28b4a64128ad856d9da458afda2861fddab', + Var('chromium_url') + '/chromium/src/build.git' + '@' + '73e352e758d90603e23bdc84734c12aa5817ab5f', 'v8/tools/gyp': Var('chromium_url') + '/external/gyp.git' + '@' + 'd61a9397e668fa9843c4aa7da9e79460fe590bfb', 'v8/third_party/icu': Var('chromium_url') + '/chromium/deps/icu.git' + '@' + 'd888fd2a1be890f4d35e43f68d6d79f42519a357', 'v8/third_party/instrumented_libraries': - Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + 'b745ddca2c63719167c0f2008ae19e667c5e9952', + Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + '323cf32193caecbf074d1a0cb5b02b905f163e0f', 'v8/buildtools': - Var('chromium_url') + '/chromium/buildtools.git' + '@' + '2888931260f2a32bc583f005bd807a561b2fa6af', + Var('chromium_url') + '/chromium/buildtools.git' + '@' + 'e8aa02ea839e087f2db66100d02c3b5d47993852', 'v8/base/trace_event/common': - Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + '0e9a47d74970bee1bbfc063c47215406f8918699', + Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + '211b3ed9d0481b4caddbee1322321b86a483ca1f', 'v8/third_party/android_ndk': { - 'url': Var('chromium_url') + '/android_ndk.git' + '@' + 'e951c37287c7d8cd915bf8d4149fd4a06d808b55', + 'url': Var('chromium_url') + '/android_ndk.git' + '@' + '635bc380968a76f6948fee65f80a0b28db53ae81', 'condition': 'checkout_android', }, 'v8/third_party/android_tools': { - 'url': Var('chromium_url') + '/android_tools.git' + '@' + '9a70d48fcdd68cd0e7e968f342bd767ee6323bd1', + 'url': Var('chromium_url') + '/android_tools.git' + '@' + 'c22a664c39af72dd8f89200220713dcad811300a', 'condition': 'checkout_android', }, 'v8/third_party/catapult': { - 'url': Var('chromium_url') + '/catapult.git' + '@' + '8a42ad3cb185e340c32b20f657980fd057e3769f', + 'url': Var('chromium_url') + '/catapult.git' + '@' + '2c59f678c7ede8a844fb687525d594b71aabe3dd', 'condition': 'checkout_android', }, 'v8/third_party/colorama/src': { 'url': Var('chromium_url') + '/external/colorama.git' + '@' + '799604a1041e9b3bc5d2789ecbd7e8db2e18e6b8', 'condition': 'checkout_android', }, + 'v8/third_party/googletest/src': + Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '7e5f90d3780d553cb86771141fb81349f3a63508', 'v8/third_party/jinja2': - Var('chromium_url') + '/chromium/src/third_party/jinja2.git' + '@' + 'd34383206fa42d52faa10bb9931d6d538f3a57e0', + Var('chromium_url') + '/chromium/src/third_party/jinja2.git' + '@' + '45571de473282bd1d8b63a8dfcb1fd268d0635d2', 'v8/third_party/markupsafe': Var('chromium_url') + '/chromium/src/third_party/markupsafe.git' + '@' + '8f45f5cfa0009d2a70589bcda0349b8cb2b72783', 'v8/tools/swarming_client': Var('chromium_url') + '/infra/luci/client-py.git' + '@' + '88229872dd17e71658fe96763feaa77915d8cbd6', - 'v8/testing/gtest': - Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '6f8a66431cb592dad629028a50b3dd418a408c87', - 'v8/testing/gmock': - Var('chromium_url') + '/external/googlemock.git' + '@' + '0421b6f358139f02e102c9c332ce19a33faf75be', 'v8/test/benchmarks/data': Var('chromium_url') + '/v8/deps/third_party/benchmarks.git' + '@' + '05d7188267b4560491ff9155c5ee13e207ecd65f', 'v8/test/mozilla/data': Var('chromium_url') + '/v8/deps/third_party/mozilla-tests.git' + '@' + 'f6c578a10ea707b1a8ab0b88943fe5115ce2b9be', 'v8/test/test262/data': - Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + 'b59d956b3c268abd0875aeb87d6688f4c7aafc9b', + Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + '0192e0d70e2295fb590f14865da42f0f9dfa64bd', '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' + '@' + 'b3d3f5920b161f95f1a8ffe08b75c695e0edf350', + Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + 'd7c36b0ae001a5cc31f2da79a430154916a3def2', 'v8/tools/luci-go': Var('chromium_url') + '/chromium/src/tools/luci-go.git' + '@' + 'ff0709d4283b1f233dcf0c9fec1672c6ecaed2f1', 'v8/test/wasm-js': - Var('chromium_url') + '/external/github.com/WebAssembly/spec.git' + '@' + '4653fc002a510b4f207af07f2c7c61b13dba78d9', + Var('chromium_url') + '/external/github.com/WebAssembly/spec.git' + '@' + '586d34770c6445bfb93c9bae8ac50baade7ee168', } recursedeps = [ @@ -255,28 +253,28 @@ hooks = [ { 'name': 'sysroot_arm', 'pattern': '.', - 'condition': 'checkout_linux and checkout_arm', + 'condition': '(checkout_linux and checkout_arm)', 'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py', '--arch=arm'], }, { 'name': 'sysroot_arm64', 'pattern': '.', - 'condition': 'checkout_linux and checkout_arm64', + 'condition': '(checkout_linux and checkout_arm64)', 'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py', '--arch=arm64'], }, { 'name': 'sysroot_x86', 'pattern': '.', - 'condition': 'checkout_linux and (checkout_x86 or checkout_x64)', + 'condition': '(checkout_linux and (checkout_x86 or checkout_x64))', 'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py', '--arch=x86'], }, { 'name': 'sysroot_mips', 'pattern': '.', - 'condition': 'checkout_linux and checkout_mips', + 'condition': '(checkout_linux and checkout_mips)', 'action': ['python', 'v8/build/linux/sysroot_scripts/install-sysroot.py', '--arch=mips'], }, diff --git a/deps/v8/LICENSE b/deps/v8/LICENSE index 1ffa949c6c1dfb..a1e403f82bac6b 100644 --- a/deps/v8/LICENSE +++ b/deps/v8/LICENSE @@ -23,6 +23,9 @@ are: - Valgrind client API header, located at third_party/valgrind/valgrind.h This is release under the BSD license. + - antlr4 parser generator Cpp library located in third_party/antlr4 + This is release under the BSD license. + These libraries have their own licenses; we recommend you read them, as their terms may differ from the terms below. diff --git a/deps/v8/OWNERS b/deps/v8/OWNERS index d8e0fc60def3f7..f6726316f2af95 100644 --- a/deps/v8/OWNERS +++ b/deps/v8/OWNERS @@ -1,5 +1,6 @@ adamk@chromium.org ahaas@chromium.org +aseemgarg@chromium.org bbudge@chromium.org binji@chromium.org bmeurer@chromium.org @@ -18,6 +19,7 @@ ishell@chromium.org jarin@chromium.org jgruber@chromium.org jkummerow@chromium.org +kschimpf@chromium.org leszeks@chromium.org machenbach@chromium.org marja@chromium.org 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 51869ee9525614..e2a5ca0c8d491b 100644 --- a/deps/v8/base/trace_event/common/trace_event_common.h +++ b/deps/v8/base/trace_event/common/trace_event_common.h @@ -2,6 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#ifndef BASE_TRACE_EVENT_COMMON_TRACE_EVENT_COMMON_H_ +#define BASE_TRACE_EVENT_COMMON_TRACE_EVENT_COMMON_H_ + // This header file defines the set of trace_event macros without specifying // how the events actually get collected and stored. If you need to expose trace // events to some other universe, you can copy-and-paste this file as well as @@ -687,6 +690,11 @@ TRACE_EVENT_PHASE_ASYNC_END, category_group, name, id, \ TRACE_EVENT_API_CURRENT_THREAD_ID, timestamp, TRACE_EVENT_FLAG_NONE, \ arg1_name, arg1_val, arg2_name, arg2_val) +#define TRACE_EVENT_COPY_ASYNC_END_WITH_TIMESTAMP0(category_group, name, id, \ + timestamp) \ + INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ + TRACE_EVENT_PHASE_ASYNC_END, category_group, name, id, \ + TRACE_EVENT_API_CURRENT_THREAD_ID, timestamp, TRACE_EVENT_FLAG_COPY) // NESTABLE_ASYNC_* APIs are used to describe an async operation, which can // be nested within a NESTABLE_ASYNC event and/or have inner NESTABLE_ASYNC @@ -1020,6 +1028,14 @@ } \ } while (0) +// Macro for getting the real base::TimeTicks::Now() which can be overridden in +// headless when VirtualTime is enabled. +#define TRACE_TIME_TICKS_NOW() INTERNAL_TRACE_TIME_TICKS_NOW() + +// Macro for getting the real base::Time::Now() which can be overridden in +// headless when VirtualTime is enabled. +#define TRACE_TIME_NOW() INTERNAL_TRACE_TIME_NOW() + // Notes regarding the following definitions: // New values can be added and propagated to third party libraries, but existing // definitions must never be changed, because third party libraries may use old @@ -1094,3 +1110,5 @@ #define TRACE_EVENT_SCOPE_NAME_GLOBAL ('g') #define TRACE_EVENT_SCOPE_NAME_PROCESS ('p') #define TRACE_EVENT_SCOPE_NAME_THREAD ('t') + +#endif // BASE_TRACE_EVENT_COMMON_TRACE_EVENT_COMMON_H_ diff --git a/deps/v8/gni/isolate.gni b/deps/v8/gni/isolate.gni deleted file mode 100644 index 6ad25c27749cc5..00000000000000 --- a/deps/v8/gni/isolate.gni +++ /dev/null @@ -1,196 +0,0 @@ -# Copyright 2016 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. - -import("//build/config/sanitizers/sanitizers.gni") -import("//third_party/icu/config.gni") -import("v8.gni") - -declare_args() { - # Sets the test isolation mode (noop|prepare|check). - v8_test_isolation_mode = "noop" -} - -template("v8_isolate_run") { - forward_variables_from(invoker, - "*", - [ - "deps", - "isolate", - ]) - - # Remember target name as within the action scope the target name will be - # different. - name = target_name - - assert(defined(invoker.deps)) - assert(defined(invoker.isolate)) - - if (name != "" && v8_test_isolation_mode != "noop") { - action(name + "_run") { - testonly = true - - deps = invoker.deps - - script = "//tools/isolate_driver.py" - - sources = [ - invoker.isolate, - ] - - inputs = [ - # Files that are known to be involved in this step. - "//tools/swarming_client/isolate.py", - "//tools/swarming_client/run_isolated.py", - ] - - if (v8_test_isolation_mode == "prepare") { - outputs = [ - "$root_out_dir/$name.isolated.gen.json", - ] - } else if (v8_test_isolation_mode == "check") { - outputs = [ - "$root_out_dir/$name.isolated", - "$root_out_dir/$name.isolated.state", - ] - } - - # Translate gn to gyp variables. - if (v8_code_coverage) { - coverage = "1" - } else { - coverage = "0" - } - if (is_asan) { - asan = "1" - } else { - asan = "0" - } - if (is_msan) { - msan = "1" - } else { - msan = "0" - } - if (is_tsan) { - tsan = "1" - } else { - tsan = "0" - } - if (is_cfi) { - cfi_vptr = "1" - } else { - cfi_vptr = "0" - } - if (target_cpu == "x86") { - target_arch = "ia32" - } else { - target_arch = target_cpu - } - if (is_debug) { - configuration_name = "Debug" - } else { - configuration_name = "Release" - } - if (is_component_build) { - component = "shared_library" - } else { - component = "static_library" - } - if (icu_use_data_file) { - icu_use_data_file_flag = "1" - } else { - icu_use_data_file_flag = "0" - } - if (v8_use_external_startup_data) { - use_external_startup_data = "1" - } else { - use_external_startup_data = "0" - } - if (is_ubsan_vptr) { - ubsan_vptr = "1" - } else { - ubsan_vptr = "0" - } - if (v8_use_snapshot) { - use_snapshot = "true" - } else { - use_snapshot = "false" - } - if (v8_has_valgrind) { - has_valgrind = "1" - } else { - has_valgrind = "0" - } - if (v8_gcmole) { - gcmole = "1" - } else { - gcmole = "0" - } - - # Note, all paths will be rebased in isolate_driver.py to be relative to - # the isolate file. - args = [ - v8_test_isolation_mode, - "--isolated", - rebase_path("$root_out_dir/$name.isolated", root_build_dir), - "--isolate", - rebase_path(invoker.isolate, root_build_dir), - - # Path variables are used to replace file paths when loading a .isolate - # file - "--path-variable", - "DEPTH", - rebase_path("//", root_build_dir), - "--path-variable", - "PRODUCT_DIR", - rebase_path(root_out_dir, root_build_dir), - - # TODO(machenbach): Set variables for remaining features. - "--config-variable", - "CONFIGURATION_NAME=$configuration_name", - "--config-variable", - "OS=$target_os", - "--config-variable", - "asan=$asan", - "--config-variable", - "cfi_vptr=$cfi_vptr", - "--config-variable", - "gcmole=$gcmole", - "--config-variable", - "has_valgrind=$has_valgrind", - "--config-variable", - "icu_use_data_file_flag=$icu_use_data_file_flag", - "--config-variable", - "msan=$msan", - "--config-variable", - "tsan=$tsan", - "--config-variable", - "coverage=$coverage", - "--config-variable", - "sanitizer_coverage=$sanitizer_coverage_flags", - "--config-variable", - "component=$component", - "--config-variable", - "target_arch=$target_arch", - "--config-variable", - "ubsan_vptr=$ubsan_vptr", - "--config-variable", - "v8_use_external_startup_data=$use_external_startup_data", - "--config-variable", - "v8_use_snapshot=$use_snapshot", - ] - - if (is_win) { - args += [ - "--config-variable", - "msvs_version=2017", - ] - } else { - args += [ - "--config-variable", - "msvs_version=0", - ] - } - } - } -} diff --git a/deps/v8/gni/msvs_dependencies.isolate b/deps/v8/gni/msvs_dependencies.isolate deleted file mode 100644 index 285912665916e8..00000000000000 --- a/deps/v8/gni/msvs_dependencies.isolate +++ /dev/null @@ -1,97 +0,0 @@ -# Copyright 2016 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# TODO(machenbach): Remove this when crbug.com/669910 is resolved. -{ - 'conditions': [ - # Copy the VS runtime DLLs into the isolate so that they - # don't have to be preinstalled on the target machine. - # - # VS2013 runtimes - ['OS=="win" and msvs_version==2013 and component=="shared_library" and (CONFIGURATION_NAME=="Debug" or CONFIGURATION_NAME=="Debug_x64")', { - 'variables': { - 'files': [ - '<(PRODUCT_DIR)/msvcp120d.dll', - '<(PRODUCT_DIR)/msvcr120d.dll', - ], - }, - }], - ['OS=="win" and msvs_version==2013 and component=="shared_library" and (CONFIGURATION_NAME=="Release" or CONFIGURATION_NAME=="Release_x64")', { - 'variables': { - 'files': [ - '<(PRODUCT_DIR)/msvcp120.dll', - '<(PRODUCT_DIR)/msvcr120.dll', - ], - }, - }], - # VS2015/2017 runtimes - ['OS=="win" and (msvs_version==2015 or msvs_version==2017) and component=="shared_library" and (CONFIGURATION_NAME=="Debug" or CONFIGURATION_NAME=="Debug_x64")', { - 'variables': { - 'files': [ - '<(PRODUCT_DIR)/msvcp140d.dll', - '<(PRODUCT_DIR)/vccorlib140d.dll', - '<(PRODUCT_DIR)/vcruntime140d.dll', - '<(PRODUCT_DIR)/ucrtbased.dll', - ], - }, - }], - ['OS=="win" and (msvs_version==2015 or msvs_version==2017) and component=="shared_library" and (CONFIGURATION_NAME=="Release" or CONFIGURATION_NAME=="Release_x64")', { - 'variables': { - 'files': [ - '<(PRODUCT_DIR)/msvcp140.dll', - '<(PRODUCT_DIR)/vccorlib140.dll', - '<(PRODUCT_DIR)/vcruntime140.dll', - '<(PRODUCT_DIR)/ucrtbase.dll', - ], - }, - }], - ['OS=="win" and (msvs_version==2015 or msvs_version==2017) and component=="shared_library"', { - # Windows 10 Universal C Runtime binaries. - 'variables': { - 'files': [ - '<(PRODUCT_DIR)/api-ms-win-core-console-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-datetime-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-debug-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-errorhandling-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-file-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-file-l1-2-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-file-l2-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-handle-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-heap-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-interlocked-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-libraryloader-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-localization-l1-2-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-memory-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-namedpipe-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-processenvironment-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-processthreads-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-processthreads-l1-1-1.dll', - '<(PRODUCT_DIR)/api-ms-win-core-profile-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-rtlsupport-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-string-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-synch-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-synch-l1-2-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-sysinfo-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-timezone-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-core-util-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-conio-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-convert-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-environment-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-filesystem-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-heap-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-locale-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-math-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-multibyte-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-private-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-process-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-runtime-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-stdio-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-string-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-time-l1-1-0.dll', - '<(PRODUCT_DIR)/api-ms-win-crt-utility-l1-1-0.dll', - ], - }, - }], - ], -} diff --git a/deps/v8/gni/v8.gni b/deps/v8/gni/v8.gni index 16a124dce85471..211f15aab944d4 100644 --- a/deps/v8/gni/v8.gni +++ b/deps/v8/gni/v8.gni @@ -37,6 +37,9 @@ declare_args() { # https://803591 v8_use_snapshot = !(is_win && host_os != "win" && target_cpu == "x64") + # Enable several snapshots side-by-side (e.g. default and for trusted code). + v8_use_multi_snapshots = "" + # Use external files for startup data blobs: # the JS builtins sources and the start snapshot. v8_use_external_startup_data = "" @@ -58,6 +61,11 @@ if (v8_use_external_startup_data == "") { v8_use_external_startup_data = v8_use_snapshot && !is_ios } +if (v8_use_multi_snapshots == "") { + v8_use_multi_snapshots = + v8_use_external_startup_data && !build_with_chromium && !use_jumbo_build +} + if (v8_enable_backtrace == "") { v8_enable_backtrace = is_debug && !v8_optimized_debug } @@ -113,6 +121,10 @@ if (target_cpu == "mipsel" || target_cpu == "mips64el" || v8_add_configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ] } +if (!build_with_chromium && is_clang) { + v8_remove_configs += [ "//build/config/clang:find_bad_constructs" ] +} + # All templates should be kept in sync. template("v8_source_set") { if (defined(invoker.split_count) && invoker.split_count > 1 && @@ -192,6 +204,7 @@ template("v8_static_library") { forward_variables_from(invoker, "*", [ "configs" ]) configs += invoker.configs configs -= v8_remove_configs + configs -= [ "//build/config/compiler:thin_archive" ] configs += v8_add_configs } } diff --git a/deps/v8/include/OWNERS b/deps/v8/include/OWNERS index 28f038f80b2112..a7ac912c0ab4a9 100644 --- a/deps/v8/include/OWNERS +++ b/deps/v8/include/OWNERS @@ -1,5 +1,9 @@ +set noparent + adamk@chromium.org danno@chromium.org +ulan@chromium.org +yangguo@chromium.org per-file v8-inspector.h=dgozman@chromium.org per-file v8-inspector.h=pfeldman@chromium.org diff --git a/deps/v8/include/libplatform/libplatform.h b/deps/v8/include/libplatform/libplatform.h index b5f2b77711166f..2c830bf834b786 100644 --- a/deps/v8/include/libplatform/libplatform.h +++ b/deps/v8/include/libplatform/libplatform.h @@ -62,8 +62,10 @@ 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); +V8_PLATFORM_EXPORT V8_DEPRECATE_SOON( + "This function has become obsolete and is essentially a nop", + 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/libplatform/v8-tracing.h b/deps/v8/include/libplatform/v8-tracing.h index e430e7c3502741..9dcf3d7bca760a 100644 --- a/deps/v8/include/libplatform/v8-tracing.h +++ b/deps/v8/include/libplatform/v8-tracing.h @@ -112,8 +112,6 @@ class V8_PLATFORM_EXPORT TraceWriter { virtual void Flush() = 0; static TraceWriter* CreateJSONTraceWriter(std::ostream& stream); - static TraceWriter* CreateJSONTraceWriter(std::ostream& stream, - const std::string& tag); private: // Disallow copy and assign diff --git a/deps/v8/include/v8-platform.h b/deps/v8/include/v8-platform.h index 62b3af84a0f717..ddc200abab0dd9 100644 --- a/deps/v8/include/v8-platform.h +++ b/deps/v8/include/v8-platform.h @@ -5,9 +5,9 @@ #ifndef V8_V8_PLATFORM_H_ #define V8_V8_PLATFORM_H_ -#include #include #include +#include // For abort. #include #include @@ -288,16 +288,21 @@ class Platform { */ virtual bool OnCriticalMemoryPressure(size_t length) { return false; } + /** + * Gets the number of worker threads used by GetWorkerThreadsTaskRunner() and + * CallOnWorkerThread(). This can be used to estimate the number of tasks a + * work package should be split into. A return value of 0 means that there are + * no worker threads available. Note that a value of 0 won't prohibit V8 from + * posting tasks using |CallOnWorkerThread|. + */ virtual int NumberOfWorkerThreads() { return static_cast(NumberOfAvailableBackgroundThreads()); } /** - * Gets the number of threads that are used to execute background tasks. Is - * used to estimate the number of tasks a work package should be split into. - * A return value of 0 means that there are no background threads available. - * Note that a value of 0 won't prohibit V8 from posting tasks using - * |CallOnBackgroundThread|. + * Deprecated. Use NumberOfWorkerThreads() instead. + * TODO(gab): Remove this when all embedders override + * NumberOfWorkerThreads() instead. */ V8_DEPRECATE_SOON( "NumberOfAvailableBackgroundThreads() is deprecated, use " @@ -340,8 +345,14 @@ class Platform { abort(); } + /** + * Returns a TaskRunner which can be used to post async tasks on a worker. + * This function should only be called from a foreground thread. + */ virtual std::shared_ptr GetWorkerThreadsTaskRunner( Isolate* isolate) { + // TODO(gab): Make this function abstract after it got implemented on all + // platforms. return GetBackgroundTaskRunner(isolate); } @@ -365,10 +376,19 @@ class Platform { abort(); } + /** + * Schedules a task to be invoked on a worker thread. + * TODO(gab): Make pure virtual when all embedders override this instead of + * CallOnBackgroundThread(). + */ virtual void CallOnWorkerThread(std::unique_ptr task) { CallOnBackgroundThread(task.release(), kShortRunningTask); } + /** + * Schedules a task that blocks the main thread to be invoked with + * high-priority on a worker thread. + */ virtual void CallBlockingTaskOnWorkerThread(std::unique_ptr task) { // Embedders may optionally override this to process these tasks in a high // priority pool. diff --git a/deps/v8/include/v8-profiler.h b/deps/v8/include/v8-profiler.h index 50c531559ec663..afa40d25f30fdc 100644 --- a/deps/v8/include/v8-profiler.h +++ b/deps/v8/include/v8-profiler.h @@ -335,7 +335,8 @@ class V8_EXPORT CpuProfiler { /** * Tells the profiler whether the embedder is idle. */ - void SetIdle(bool is_idle); + V8_DEPRECATED("Use Isolate::SetIdle(bool) instead.", + void SetIdle(bool is_idle)); private: CpuProfiler(); @@ -401,7 +402,8 @@ class V8_EXPORT HeapGraphNode { // snapshot items together. kConsString = 10, // Concatenated string. A pair of pointers to strings. kSlicedString = 11, // Sliced string. A fragment of another string. - kSymbol = 12 // A Symbol (ES6). + kSymbol = 12, // A Symbol (ES6). + kBigInt = 13 // BigInt. }; /** Returns node type (see HeapGraphNode::Type). */ @@ -875,11 +877,15 @@ class V8_EXPORT HeapProfiler { void DeleteAllHeapSnapshots(); /** Binds a callback to embedder's class ID. */ - void SetWrapperClassInfoProvider( - uint16_t class_id, - WrapperInfoCallback callback); + V8_DEPRECATED( + "Use SetBuildEmbedderGraphCallback to provide info about embedder nodes", + void SetWrapperClassInfoProvider(uint16_t class_id, + WrapperInfoCallback callback)); + + V8_DEPRECATED( + "Use SetBuildEmbedderGraphCallback to provide info about embedder nodes", + void SetGetRetainerInfosCallback(GetRetainerInfosCallback callback)); - void SetGetRetainerInfosCallback(GetRetainerInfosCallback callback); void SetBuildEmbedderGraphCallback(BuildEmbedderGraphCallback callback); /** diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index cdb2c5381e3c85..f871c8fa676968 100644 --- a/deps/v8/include/v8-version.h +++ b/deps/v8/include/v8-version.h @@ -9,9 +9,9 @@ // 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 6 -#define V8_MINOR_VERSION 6 -#define V8_BUILD_NUMBER 346 -#define V8_PATCH_LEVEL 32 +#define V8_MINOR_VERSION 7 +#define V8_BUILD_NUMBER 288 +#define V8_PATCH_LEVEL 43 // 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 31407fa0839bb9..d520c866042a7a 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -66,6 +66,8 @@ namespace v8 { class AccessorSignature; class Array; class ArrayBuffer; +class BigInt; +class BigIntObject; class Boolean; class BooleanObject; class Context; @@ -1579,6 +1581,15 @@ class V8_EXPORT ScriptCompiler { static CachedData* CreateCodeCache(Local unbound_script, Local source); + /** + * Creates and returns code cache for the specified function that was + * previously produced by CompileFunctionInContext. + * This will return nullptr if the script cannot be serialized. The + * CachedData returned by this function should be owned by the caller. + */ + static CachedData* CreateCodeCacheForFunction(Local function, + Local source); + private: static V8_WARN_UNUSED_RESULT MaybeLocal CompileUnboundInternal( Isolate* isolate, Source* source, CompileOptions options, @@ -1650,6 +1661,7 @@ class V8_EXPORT Message { * Returns the index within the line of the last character where * the error occurred. */ + int GetEndColumn() const; V8_WARN_UNUSED_RESULT Maybe GetEndColumn(Local context) const; /** @@ -2153,6 +2165,11 @@ class V8_EXPORT Value : public Data { */ bool IsObject() const; + /** + * Returns true if this value is a bigint. + */ + bool IsBigInt() const; + /** * Returns true if this value is boolean. */ @@ -2188,6 +2205,11 @@ class V8_EXPORT Value : public Data { */ bool IsArgumentsObject() const; + /** + * Returns true if this value is a BigInt object. + */ + bool IsBigIntObject() const; + /** * Returns true if this value is a Boolean object. */ @@ -2356,11 +2378,8 @@ class V8_EXPORT Value : public Data { bool IsWebAssemblyCompiledModule() const; - /** - * Returns true if the value is a Module Namespace Object. - */ - bool IsModuleNamespaceObject() const; - + V8_WARN_UNUSED_RESULT MaybeLocal ToBigInt( + Local context) const; V8_WARN_UNUSED_RESULT MaybeLocal ToBoolean( Local context) const; V8_WARN_UNUSED_RESULT MaybeLocal ToNumber( @@ -3012,6 +3031,19 @@ class V8_EXPORT Uint32 : public Integer { static void CheckCast(v8::Value* obj); }; +/** + * A JavaScript BigInt value (https://tc39.github.io/proposal-bigint) + */ +class V8_EXPORT BigInt : public Primitive { + public: + static Local New(Isolate* isolate, int64_t value); + V8_INLINE static BigInt* Cast(v8::Value* obj); + + private: + BigInt(); + static void CheckCast(v8::Value* obj); +}; + /** * PropertyAttribute. */ @@ -3077,6 +3109,13 @@ enum PropertyFilter { SKIP_SYMBOLS = 16 }; +/** + * Options for marking whether callbacks may trigger JS-observable side effects. + * Side-effect-free callbacks are whitelisted during debug evaluation with + * throwOnSideEffect. It applies when calling a Function, FunctionTemplate, + * or an Accessor's getter callback. For Interceptors, please see + * PropertyHandlerFlags's kHasNoSideEffect. + */ enum class SideEffectType { kHasSideEffect, kHasNoSideEffect }; /** @@ -3090,7 +3129,7 @@ enum class KeyCollectionMode { kOwnOnly, kIncludePrototypes }; /** * kIncludesIndices allows for integer indices to be collected, while - * kSkipIndices will exclude integer indicies from being collected. + * kSkipIndices will exclude integer indices from being collected. */ enum class IndexFilter { kIncludeIndices, kSkipIndices }; @@ -3205,12 +3244,14 @@ class V8_EXPORT Object : public Value { V8_WARN_UNUSED_RESULT Maybe Delete(Local context, Local key); - V8_WARN_UNUSED_RESULT Maybe Has(Local context, - uint32_t index); + V8_WARN_UNUSED_RESULT Maybe Has(Local context, uint32_t index); V8_WARN_UNUSED_RESULT Maybe Delete(Local context, uint32_t index); + /** + * Note: SideEffectType affects the getter only, not the setter. + */ V8_WARN_UNUSED_RESULT Maybe SetAccessor( Local context, Local name, AccessorNameGetterCallback getter, AccessorNameSetterCallback setter = 0, @@ -3503,17 +3544,6 @@ class V8_EXPORT Object : public Value { */ Isolate* GetIsolate(); - /** - * If this object is a Set, Map, WeakSet or WeakMap, this returns a - * representation of the elements of this object as an array. - * If this object is a SetIterator or MapIterator, this returns all - * elements of the underlying collection, starting at the iterator's current - * position. - * For other types, this will return an empty MaybeLocal (without - * scheduling an exception). - */ - MaybeLocal PreviewEntries(bool* is_key_value); - static Local New(Isolate* isolate); V8_INLINE static Object* Cast(Value* obj); @@ -4294,6 +4324,11 @@ class V8_EXPORT ArrayBuffer : public Object { */ virtual void Free(void* data, size_t length) = 0; + /** + * ArrayBuffer allocation mode. kNormal is a malloc/free style allocation, + * while kReservation is for larger allocations with the ability to set + * access permissions. + */ enum class AllocationMode { kNormal, kReservation }; /** @@ -4868,6 +4903,20 @@ class V8_EXPORT NumberObject : public Object { static void CheckCast(Value* obj); }; +/** + * A BigInt object (https://tc39.github.io/proposal-bigint) + */ +class V8_EXPORT BigIntObject : public Object { + public: + static Local New(Isolate* isolate, int64_t value); + + Local ValueOf() const; + + V8_INLINE static BigIntObject* Cast(Value* obj); + + private: + static void CheckCast(Value* obj); +}; /** * A Boolean object (ECMA-262, 4.3.15). @@ -5532,7 +5581,7 @@ class V8_EXPORT FunctionTemplate : public Template { /** * Causes the function template to inherit from a parent function template. - * This means the the function's prototype.__proto__ is set to the parent + * This means the function's prototype.__proto__ is set to the parent * function's prototype. **/ void Inherit(Local parent); @@ -5633,6 +5682,11 @@ enum class PropertyHandlerFlags { * named interceptors. */ kOnlyInterceptStrings = 1 << 2, + + /** + * The getter, query, enumerator callbacks do not produce side effects. + */ + kHasNoSideEffect = 1 << 3, }; struct NamedPropertyHandlerConfiguration { @@ -6209,24 +6263,6 @@ typedef void* (*CreateHistogramCallback)(const char* name, typedef void (*AddHistogramSampleCallback)(void* histogram, int sample); -// --- Memory Allocation Callback --- -enum ObjectSpace { - kObjectSpaceNewSpace = 1 << 0, - kObjectSpaceOldSpace = 1 << 1, - kObjectSpaceCodeSpace = 1 << 2, - kObjectSpaceMapSpace = 1 << 3, - kObjectSpaceLoSpace = 1 << 4, - kObjectSpaceAll = kObjectSpaceNewSpace | kObjectSpaceOldSpace | - kObjectSpaceCodeSpace | kObjectSpaceMapSpace | - kObjectSpaceLoSpace -}; - - enum AllocationAction { - kAllocationActionAllocate = 1 << 0, - kAllocationActionFree = 1 << 1, - kAllocationActionAll = kAllocationActionAllocate | kAllocationActionFree - }; - // --- Enter/Leave Script Callback --- typedef void (*BeforeCallEnteredCallback)(Isolate*); typedef void (*CallCompletedCallback)(Isolate*); @@ -6445,6 +6481,15 @@ typedef void (*GCCallback)(GCType type, GCCallbackFlags flags); typedef void (*InterruptCallback)(Isolate* isolate, void* data); +/** + * This callback is invoked when the heap size is close to the heap limit and + * V8 is likely to abort with out-of-memory error. + * The callback can extend the heap limit by returning a value that is greater + * than the current_heap_limit. The initial heap limit is the limit that was + * set after heap setup. + */ +typedef size_t (*NearHeapLimitCallback)(void* data, size_t current_heap_limit, + size_t initial_heap_limit); /** * Collection of V8 heap information. @@ -6578,6 +6623,12 @@ struct JitCodeEvent { // statement, and is used to indicate possible break locations. enum PositionType { POSITION, STATEMENT_POSITION }; + // There are two different kinds of JitCodeEvents, one for JIT code generated + // by the optimizing compiler, and one for byte code generated for the + // interpreter. For JIT_CODE events, the |code_start| member of the event + // points to the beginning of jitted assembly code, while for BYTE_CODE + // events, |code_start| points to the first bytecode of the interpreted + // function. enum CodeType { BYTE_CODE, JIT_CODE }; // Type of event. @@ -7281,6 +7332,11 @@ class V8_EXPORT Isolate { V8_DEPRECATED("CpuProfiler should be created with CpuProfiler::New call.", CpuProfiler* GetCpuProfiler()); + /** + * Tells the CPU profiler whether the embedder is idle. + */ + void SetIdle(bool is_idle); + /** Returns true if this isolate has a current context. */ bool InContext(); @@ -7692,6 +7748,23 @@ class V8_EXPORT Isolate { /** Set the callback to invoke in case of OOM errors. */ void SetOOMErrorHandler(OOMErrorCallback that); + /** + * Add a callback to invoke in case the heap size is close to the heap limit. + * If multiple callbacks are added, only the most recently added callback is + * invoked. + */ + void AddNearHeapLimitCallback(NearHeapLimitCallback callback, void* data); + + /** + * Remove the given callback and restore the heap limit to the + * given limit. If the given limit is zero, then it is ignored. + * If the current heap size is greater than the given limit, + * then the heap limit is restored to the minimal limit that + * is possible for the current heap size. + */ + void RemoveNearHeapLimitCallback(NearHeapLimitCallback callback, + size_t heap_limit); + /** * Set the callback to invoke to check if code generation from * strings should be allowed. @@ -7947,6 +8020,15 @@ class V8_EXPORT V8 { */ static bool Dispose(); + /** + * Initialize the ICU library bundled with V8. The embedder should only + * invoke this method when using the bundled ICU. Returns true on success. + * + * If V8 was compiled with the ICU data in an external file, the location + * of the data file has to be provided. + */ + static bool InitializeICU(const char* icu_data_file = nullptr); + /** * Initialize the ICU library bundled with V8. The embedder should only * invoke this method when using the bundled ICU. If V8 was compiled with @@ -8023,6 +8105,14 @@ class V8_EXPORT V8 { V8_DEPRECATE_SOON("Use EnableWebAssemblyTrapHandler", static bool RegisterDefaultSignalHandler()); + /** + * Activate trap-based bounds checking for WebAssembly. + * + * \param use_v8_signal_handler Whether V8 should install its own signal + * handler or rely on the embedder's. + */ + static bool EnableWebAssemblyTrapHandler(bool use_v8_signal_handler); + private: V8(); @@ -8580,6 +8670,11 @@ class V8_EXPORT Context { */ enum EmbedderDataFields { kDebugIdIndex = 0 }; + /** + * Return the number of fields allocated for embedder data. + */ + uint32_t GetNumberOfEmbedderDataFields(); + /** * Gets the embedder data with the given index, which must have been set by a * previous call to SetEmbedderData with the same index. @@ -8835,6 +8930,7 @@ const int kApiInt64Size = sizeof(int64_t); // NOLINT // Tag information for HeapObject. const int kHeapObjectTag = 1; +const int kWeakHeapObjectTag = 3; const int kHeapObjectTagSize = 2; const intptr_t kHeapObjectTagMask = (1 << kHeapObjectTagSize) - 1; @@ -9849,6 +9945,12 @@ Uint32* Uint32::Cast(v8::Value* value) { return static_cast(value); } +BigInt* BigInt::Cast(v8::Value* value) { +#ifdef V8_ENABLE_CHECKS + CheckCast(value); +#endif + return static_cast(value); +} Date* Date::Cast(v8::Value* value) { #ifdef V8_ENABLE_CHECKS @@ -9881,6 +9983,12 @@ NumberObject* NumberObject::Cast(v8::Value* value) { return static_cast(value); } +BigIntObject* BigIntObject::Cast(v8::Value* value) { +#ifdef V8_ENABLE_CHECKS + CheckCast(value); +#endif + return static_cast(value); +} BooleanObject* BooleanObject::Cast(v8::Value* value) { #ifdef V8_ENABLE_CHECKS @@ -10047,6 +10155,19 @@ Float64Array* Float64Array::Cast(v8::Value* value) { return static_cast(value); } +BigInt64Array* BigInt64Array::Cast(v8::Value* value) { +#ifdef V8_ENABLE_CHECKS + CheckCast(value); +#endif + return static_cast(value); +} + +BigUint64Array* BigUint64Array::Cast(v8::Value* value) { +#ifdef V8_ENABLE_CHECKS + CheckCast(value); +#endif + return static_cast(value); +} Uint8ClampedArray* Uint8ClampedArray::Cast(v8::Value* value) { #ifdef V8_ENABLE_CHECKS diff --git a/deps/v8/include/v8config.h b/deps/v8/include/v8config.h index 69cf3b78c8b2c8..d8e1f36c128d1e 100644 --- a/deps/v8/include/v8config.h +++ b/deps/v8/include/v8config.h @@ -177,6 +177,9 @@ // V8_HAS_ATTRIBUTE_VISIBILITY - __attribute__((visibility)) supported // V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT - __attribute__((warn_unused_result)) // supported +// V8_HAS_BUILTIN_BSWAP16 - __builtin_bswap16() supported +// V8_HAS_BUILTIN_BSWAP32 - __builtin_bswap32() supported +// V8_HAS_BUILTIN_BSWAP64 - __builtin_bswap64() supported // V8_HAS_BUILTIN_CLZ - __builtin_clz() supported // V8_HAS_BUILTIN_CTZ - __builtin_ctz() supported // V8_HAS_BUILTIN_EXPECT - __builtin_expect() supported @@ -217,6 +220,9 @@ # define V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT \ (__has_attribute(warn_unused_result)) +# define V8_HAS_BUILTIN_BSWAP16 (__has_builtin(__builtin_bswap16)) +# define V8_HAS_BUILTIN_BSWAP32 (__has_builtin(__builtin_bswap32)) +# define V8_HAS_BUILTIN_BSWAP64 (__has_builtin(__builtin_bswap64)) # define V8_HAS_BUILTIN_CLZ (__has_builtin(__builtin_clz)) # define V8_HAS_BUILTIN_CTZ (__has_builtin(__builtin_ctz)) # define V8_HAS_BUILTIN_EXPECT (__has_builtin(__builtin_expect)) @@ -405,7 +411,7 @@ namespace v8 { template class AlignOfHelper { char c; T t; }; } // Annotate a function indicating the caller must examine the return value. // Use like: -// int foo() WARN_UNUSED_RESULT; +// int foo() V8_WARN_UNUSED_RESULT; #if V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT #define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else diff --git a/deps/v8/infra/config/cq.cfg b/deps/v8/infra/config/cq.cfg index cda76faf51b576..6159b3f1cdeca4 100644 --- a/deps/v8/infra/config/cq.cfg +++ b/deps/v8/infra/config/cq.cfg @@ -31,6 +31,7 @@ verifiers { triggered_by: "v8_linux64_asan_rel_ng" } builders { name: "v8_linux64_gcc_compile_dbg" } + builders { name: "v8_linux64_jumbo_compile_rel" } builders { name: "v8_linux64_rel_ng" } builders { name: "v8_linux64_rel_ng_triggered" @@ -84,10 +85,10 @@ verifiers { name: "v8_linux_verify_csa_rel_ng_triggered" triggered_by: "v8_linux_verify_csa_rel_ng" } - builders { name: "v8_mac_rel_ng" } + builders { name: "v8_mac64_rel_ng" } builders { - name: "v8_mac_rel_ng_triggered" - triggered_by: "v8_mac_rel_ng" + name: "v8_mac64_rel_ng_triggered" + triggered_by: "v8_mac64_rel_ng" } builders { name: "v8_node_linux64_rel" } builders { name: "v8_presubmit" } diff --git a/deps/v8/infra/mb/gn_isolate_map.pyl b/deps/v8/infra/mb/gn_isolate_map.pyl new file mode 100644 index 00000000000000..8f13079ea3d3b4 --- /dev/null +++ b/deps/v8/infra/mb/gn_isolate_map.pyl @@ -0,0 +1,74 @@ +# Copyright 2018 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# gn_isolate_map.pyl - A mapping of Ninja build target names to GN labels and +# test type classifications for the tests that are run on the bots. +# +# This file is based on testing/buildbot/gn_isolate_map.pyl for Chromium, but +# is covering V8 stand-alone tests instead. +# See https://cs.chromium.org/chromium/src/testing/buildbot/gn_isolate_map.pyl +# for more detailed documentation. + +{ + "All": { + "label": "//:All", + "type": "script", + }, + "benchmarks": { + "label": "//test/benchmarks:v8_benchmarks", + "type": "script", + }, + "bot_default": { + "label": "//test:v8_bot_default", + "type": "script", + }, + "check-static-initializers": { + "label": "//tools:v8_check_static_initializers", + "type": "script", + }, + "d8_default": { + "label": "//test:v8_d8_default", + "type": "script", + }, + "mjsunit": { + "label": "//test/mjsunit:v8_mjsunit", + "type": "script", + }, + "mozilla": { + "label": "//test/mozilla:v8_mozilla", + "type": "script", + }, + "optimize_for_size": { + "label": "//test:v8_optimize_for_size", + "type": "script", + }, + "perf": { + "label": "//test:v8_perf", + "type": "script", + }, + "jsfunfuzz": { + "label": "//tools/jsfunfuzz:v8_jsfunfuzz", + "type": "script", + }, + "run-gcmole": { + "label": "//tools/gcmole:v8_run_gcmole", + "type": "script", + }, + "run-num-fuzzer": { + "label": "//test:v8_run_num_fuzzer", + "type": "script", + }, + "test262": { + "label": "//test/test262:v8_test262", + "type": "script", + }, + "unittests": { + "label": "//test/unittests:unittests", + "type": "script", + }, + "webkit": { + "label": "//test/webkit:v8_webkit", + "type": "script", + }, +} \ No newline at end of file diff --git a/deps/v8/infra/mb/mb_config.pyl b/deps/v8/infra/mb/mb_config.pyl index 15ce744999bf5c..70a7ad5754e0cb 100644 --- a/deps/v8/infra/mb/mb_config.pyl +++ b/deps/v8/infra/mb/mb_config.pyl @@ -68,6 +68,11 @@ 'V8 Linux64 - custom snapshot - debug builder': 'debug_x64_custom', 'V8 Linux64 - internal snapshot': 'release_x64_internal', 'V8 Linux64 - verify csa': 'release_x64_verify_csa', + # Jumbo. + 'V8 Linux64 Jumbo': 'release_x64_jumbo', + 'V8 Linux64 Jumbo - debug': 'debug_x64_jumbo', + 'V8 Linux64 Jumbo - limited': 'release_x64_jumbo_limited', + 'V8 Linux64 Jumbo - limited - debug': 'debug_x64_jumbo_limited', # Windows. 'V8 Win32 - builder': 'release_x86_minimal_symbols', 'V8 Win32 - debug builder': 'debug_x86_minimal_symbols', @@ -79,11 +84,9 @@ 'V8 Win64 - debug': 'debug_x64_minimal_symbols', 'V8 Win64 - msvc': 'release_x64_msvc', # Mac. - 'V8 Mac': 'release_x86', - 'V8 Mac - debug': 'debug_x86', 'V8 Mac64': 'release_x64', 'V8 Mac64 - debug': 'debug_x64', - 'V8 Mac GC Stress': 'debug_x86', + 'V8 Mac64 GC Stress': 'debug_x64', 'V8 Mac64 ASAN': 'release_x64_asan_no_lsan', # Sanitizers. 'V8 Linux64 ASAN': 'release_x64_asan', @@ -97,7 +100,6 @@ # FYI. 'V8 Fuchsia': 'release_x64_fuchsia', 'V8 Fuchsia - debug': 'debug_x64_fuchsia', - 'V8 Linux - swarming staging': 'release_x64', 'V8 Linux64 - cfi': 'release_x64_cfi', 'V8 Linux64 UBSanVptr': 'release_x64_ubsan_vptr', 'V8 Linux - vtunejit': 'debug_x86_vtunejit', @@ -210,9 +212,12 @@ 'v8_linux64_rel_ng': 'release_x64_test_features_trybot', 'v8_linux64_verify_csa_rel_ng': 'release_x64_verify_csa', 'v8_linux64_asan_rel_ng': 'release_x64_asan_minimal_symbols', + 'v8_linux64_cfi_rel_ng': 'release_x64_cfi', 'v8_linux64_msan_rel': 'release_simulate_arm64_msan_minimal_symbols', 'v8_linux64_sanitizer_coverage_rel': 'release_x64_asan_minimal_symbols_coverage', + 'v8_linux64_jumbo_compile_rel': 'release_x64_jumbo_trybot', + 'v8_linux64_jumbo_limited_compile_rel': 'release_x64_jumbo_limited_trybot', 'v8_linux64_tsan_rel': 'release_x64_tsan_minimal_symbols', 'v8_linux64_tsan_concurrent_marking_rel_ng': 'release_x64_tsan_concurrent_marking_minimal_symbols', @@ -226,12 +231,12 @@ 'v8_win64_asan_rel_ng': 'release_x64_asan_no_lsan', 'v8_win64_msvc_compile_rel': 'release_x64_msvc', 'v8_win64_dbg': 'debug_x64_minimal_symbols', + 'v8_win64_msvc_rel_ng': 'release_x64_msvc', 'v8_win64_rel_ng': 'release_x64_trybot', - 'v8_mac_rel_ng': 'release_x86_trybot', - 'v8_mac_dbg': 'debug_x86_trybot', - 'v8_mac_gc_stress_dbg': 'debug_x86_trybot', - 'v8_mac64_rel': 'release_x64_trybot', - 'v8_mac64_dbg': 'debug_x64_minimal_symbols', + 'v8_mac64_gc_stress_dbg': 'debug_x64_trybot', + 'v8_mac64_rel_ng': 'release_x64_trybot', + 'v8_mac64_dbg': 'debug_x64', + 'v8_mac64_dbg_ng': 'debug_x64', 'v8_mac64_asan_rel': 'release_x64_asan_no_lsan', 'v8_linux_arm_rel_ng': 'release_simulate_arm_trybot', 'v8_linux_arm_dbg': 'debug_simulate_arm', @@ -321,160 +326,174 @@ # Debug configs for simulators. 'debug_simulate_arm': [ - 'debug_bot', 'simulate_arm', 'swarming'], + 'debug_bot', 'simulate_arm'], 'debug_simulate_arm_asan_edge': [ 'debug_bot', 'simulate_arm', 'asan', 'edge'], 'debug_simulate_arm64': [ - 'debug_bot', 'simulate_arm64', 'swarming'], + 'debug_bot', 'simulate_arm64'], 'debug_simulate_arm64_asan_edge': [ 'debug_bot', 'simulate_arm64', 'asan', 'lsan', 'edge'], 'debug_simulate_arm64_no_snap': [ 'debug', 'simulate_arm64', 'shared', 'goma', 'v8_optimized_debug', - 'swarming', 'v8_snapshot_none'], + 'v8_snapshot_none'], 'debug_simulate_mipsel_asan_edge': [ 'debug_bot', 'simulate_mipsel', 'asan', 'edge'], # Release configs for simulators. 'release_simulate_arm': [ - 'release_bot', 'simulate_arm', 'swarming'], + 'release_bot', 'simulate_arm'], 'release_simulate_arm_trybot': [ - 'release_trybot', 'simulate_arm', 'swarming'], + 'release_trybot', 'simulate_arm'], 'release_simulate_arm64': [ - 'release_bot', 'simulate_arm64', 'swarming'], + 'release_bot', 'simulate_arm64'], 'release_simulate_arm64_msan': [ - 'release_bot', 'simulate_arm64', 'msan', 'swarming'], + 'release_bot', 'simulate_arm64', 'msan'], 'release_simulate_arm64_msan_minimal_symbols': [ - 'release_bot', 'simulate_arm64', 'msan', 'minimal_symbols', 'swarming'], + 'release_bot', 'simulate_arm64', 'msan', 'minimal_symbols'], 'release_simulate_arm64_msan_edge': [ 'release_bot', 'simulate_arm64', 'edge', 'msan'], 'release_simulate_arm64_msan_no_origins_edge': [ 'release_bot', 'simulate_arm64', 'edge', 'msan_no_origins'], 'release_simulate_arm64_trybot': [ - 'release_trybot', 'simulate_arm64', 'swarming'], + 'release_trybot', 'simulate_arm64'], 'release_simulate_mipsel': [ - 'release_bot', 'simulate_mipsel', 'swarming'], + 'release_bot', 'simulate_mipsel'], 'release_simulate_mips64el': [ - 'release_bot', 'simulate_mips64el', 'swarming'], + 'release_bot', 'simulate_mips64el'], 'release_simulate_ppc': [ - 'release_bot', 'simulate_ppc', 'swarming'], + 'release_bot', 'simulate_ppc'], 'release_simulate_ppc64': [ - 'release_bot', 'simulate_ppc64', 'swarming'], + 'release_bot', 'simulate_ppc64'], 'release_simulate_s390': [ - 'release_bot', 'simulate_s390', 'swarming'], + 'release_bot', 'simulate_s390'], 'release_simulate_s390x': [ - 'release_bot', 'simulate_s390x', 'swarming'], + 'release_bot', 'simulate_s390x'], # Debug configs for arm. 'debug_arm': [ - 'debug_bot', 'arm', 'hard_float', 'swarming'], + 'debug_bot', 'arm', 'hard_float'], # Release configs for arm. 'release_arm': [ - 'release_bot', 'arm', 'hard_float', 'swarming'], + 'release_bot', 'arm', 'hard_float'], 'release_android_arm': [ - 'release_bot', 'arm', 'android', 'minimal_symbols', 'swarming'], + 'release_bot', 'arm', 'android', 'minimal_symbols'], 'release_android_arm64': [ - 'release_bot', 'arm64', 'android', 'minimal_symbols', 'swarming'], + 'release_bot', 'arm64', 'android', 'minimal_symbols'], # Release configs for x64. 'release_x64': [ - 'release_bot', 'x64', 'swarming'], + 'release_bot', 'x64'], 'release_x64_asan': [ - 'release_bot', 'x64', 'asan', 'lsan', 'swarming'], + 'release_bot', 'x64', 'asan', 'lsan'], 'release_x64_asan_minimal_symbols': [ - 'release_bot', 'x64', 'asan', 'lsan', 'minimal_symbols', 'swarming'], + 'release_bot', 'x64', 'asan', 'lsan', 'minimal_symbols'], 'release_x64_asan_minimal_symbols_coverage': [ - 'release_bot', 'x64', 'asan', 'bb', 'coverage', 'lsan', 'minimal_symbols', - 'swarming'], + 'release_bot', 'x64', 'asan', 'bb', 'coverage', 'lsan', 'minimal_symbols'], 'release_x64_asan_no_lsan': [ - 'release_bot', 'x64', 'asan', 'swarming'], + 'release_bot', 'x64', 'asan'], 'release_x64_asan_no_lsan_edge_verify_heap': [ - 'release_bot', 'x64', 'asan', 'edge', 'swarming', 'v8_verify_heap'], + 'release_bot', 'x64', 'asan', 'edge', 'v8_verify_heap'], 'release_x64_asan_no_lsan_verify_heap': [ - 'release_bot', 'x64', 'asan', 'swarming', 'v8_verify_heap'], + 'release_bot', 'x64', 'asan', 'v8_verify_heap'], 'release_x64_asan_no_lsan_verify_heap_dchecks': [ - 'release_bot', 'x64', 'asan', 'swarming', 'dcheck_always_on', + 'release_bot', 'x64', 'asan', 'dcheck_always_on', 'v8_enable_slow_dchecks', 'v8_verify_heap'], 'release_x64_asan_symbolized_edge_verify_heap': [ 'release_bot', 'x64', 'asan', 'edge', 'lsan', 'symbolized', 'v8_verify_heap'], 'release_x64_cfi': [ - 'release_bot', 'x64', 'cfi', 'swarming'], + 'release_bot', 'x64', 'cfi'], 'release_x64_cfi_clusterfuzz': [ 'release_bot', 'x64', 'cfi_clusterfuzz'], 'release_x64_msvc': [ - 'release_bot', 'x64', 'msvc', 'swarming'], + 'release_bot', 'x64', 'msvc'], 'release_x64_concurrent_marking': [ - 'release_bot', 'x64', 'v8_enable_concurrent_marking', 'swarming'], + 'release_bot', 'x64', 'v8_enable_concurrent_marking'], 'release_x64_correctness_fuzzer' : [ - 'release_bot', 'x64', 'v8_correctness_fuzzer', 'swarming'], + 'release_bot', 'x64', 'v8_correctness_fuzzer'], 'release_x64_fuchsia': [ - 'release_bot', 'x64', 'fuchsia', 'swarming'], + 'release_bot', 'x64', 'fuchsia'], 'release_x64_fuchsia_trybot': [ - 'release_trybot', 'x64', 'fuchsia', 'swarming'], + 'release_trybot', 'x64', 'fuchsia'], 'release_x64_gcc_coverage': [ 'release_bot', 'x64', 'coverage', 'gcc'], 'release_x64_internal': [ - 'release_bot', 'x64', 'swarming', 'v8_snapshot_internal'], + 'release_bot', 'x64', 'v8_enable_embedded_builtins', + 'v8_snapshot_internal'], + 'release_x64_jumbo': [ + 'release_bot', 'x64', 'jumbo'], + 'release_x64_jumbo_trybot': [ + 'release_trybot', 'x64', 'jumbo'], + 'release_x64_jumbo_limited': [ + 'release_bot', 'x64', 'jumbo_limited'], + 'release_x64_jumbo_limited_trybot': [ + 'release_trybot', 'x64', 'jumbo_limited'], 'release_x64_minimal_symbols': [ - 'release_bot', 'x64', 'minimal_symbols', 'swarming'], + 'release_bot', 'x64', 'minimal_symbols'], 'release_x64_no_snap': [ - 'release_bot', 'x64', 'swarming', 'v8_snapshot_none'], + 'release_bot', 'x64', 'v8_snapshot_none'], 'release_x64_trybot': [ - 'release_trybot', 'x64', 'swarming'], + 'release_trybot', 'x64'], 'release_x64_test_features_trybot': [ - 'release_trybot', 'x64', 'swarming', 'v8_enable_test_features'], + 'release_trybot', 'x64', 'v8_enable_test_features'], 'release_x64_tsan': [ - 'release_bot', 'x64', 'tsan', 'swarming'], + 'release_bot', 'x64', 'tsan'], 'release_x64_tsan_concurrent_marking': [ - 'release_bot', 'x64', 'v8_enable_concurrent_marking', 'tsan', 'swarming'], + 'release_bot', 'x64', 'v8_enable_concurrent_marking', 'tsan'], 'release_x64_tsan_concurrent_marking_minimal_symbols': [ 'release_bot', 'x64', 'v8_enable_concurrent_marking', 'tsan', - 'minimal_symbols', 'swarming'], + 'minimal_symbols'], 'release_x64_tsan_minimal_symbols': [ - 'release_bot', 'x64', 'tsan', 'minimal_symbols', 'swarming'], + 'release_bot', 'x64', 'tsan', 'minimal_symbols'], 'release_x64_ubsan_vptr': [ - 'release_bot', 'x64', 'ubsan_vptr', 'swarming'], + 'release_bot', 'x64', 'ubsan_vptr'], 'release_x64_ubsan_vptr_recover_edge': [ - 'release_bot', 'x64', 'edge', 'ubsan_vptr_recover', 'swarming'], + 'release_bot', 'x64', 'edge', 'ubsan_vptr_recover'], 'release_x64_ubsan_vptr_minimal_symbols': [ - 'release_bot', 'x64', 'ubsan_vptr', 'minimal_symbols', 'swarming'], + 'release_bot', 'x64', 'ubsan_vptr', 'minimal_symbols'], 'release_x64_verify_csa': [ - 'release_bot', 'x64', 'swarming', 'dcheck_always_on', - 'v8_enable_slow_dchecks', 'v8_verify_csa'], + 'release_bot', 'x64', 'dcheck_always_on', + 'v8_enable_slow_dchecks', 'v8_enable_embedded_builtins', 'v8_verify_csa'], # Debug configs for x64. 'debug_x64': [ - 'debug_bot', 'x64', 'swarming'], + 'debug_bot', 'x64'], 'debug_x64_asan_edge': [ 'debug_bot', 'x64', 'asan', 'lsan', 'edge'], 'debug_x64_asan_no_lsan_static_edge': [ 'debug', 'static', 'goma', 'v8_enable_slow_dchecks', 'v8_optimized_debug', - 'x64', 'asan', 'edge', 'swarming'], + 'x64', 'asan', 'edge'], 'debug_x64_custom': [ - 'debug_bot', 'x64', 'swarming', 'v8_snapshot_custom'], + 'debug_bot', 'x64', 'v8_snapshot_custom'], 'debug_x64_fuchsia': [ - 'debug_bot', 'x64', 'fuchsia', 'swarming'], + 'debug_bot', 'x64', 'fuchsia'], 'debug_x64_gcc': [ 'debug_bot', 'x64', 'gcc'], + 'debug_x64_jumbo': [ + 'debug_bot', 'x64', 'jumbo'], + 'debug_x64_jumbo_limited': [ + 'debug_bot', 'x64', 'jumbo_limited'], 'debug_x64_minimal_symbols': [ - 'debug_bot', 'x64', 'minimal_symbols', 'swarming'], + 'debug_bot', 'x64', 'minimal_symbols'], 'debug_x64_no_snap': [ - 'debug_bot', 'x64', 'swarming', 'v8_snapshot_none'], + 'debug_bot', 'x64', 'v8_snapshot_none'], + 'debug_x64_trybot': [ + 'debug_trybot', 'x64'], # Debug configs for x86. 'debug_x86': [ - 'debug_bot', 'x86', 'swarming'], + 'debug_bot', 'x86'], 'debug_x86_minimal_symbols': [ - 'debug_bot', 'x86', 'minimal_symbols', 'swarming'], + 'debug_bot', 'x86', 'minimal_symbols'], 'debug_x86_no_i18n': [ - 'debug_bot', 'x86', 'swarming', 'v8_no_i18n'], + 'debug_bot', 'x86', 'v8_no_i18n'], 'debug_x86_no_snap': [ - 'debug_bot', 'x86', 'swarming', 'v8_snapshot_none'], + 'debug_bot', 'x86', 'v8_snapshot_none'], 'debug_x86_no_snap_trybot': [ - 'debug_trybot', 'x86', 'swarming', 'v8_snapshot_none'], + 'debug_trybot', 'x86', 'v8_snapshot_none'], 'debug_x86_trybot': [ - 'debug_trybot', 'x86', 'swarming'], + 'debug_trybot', 'x86'], 'debug_x86_vtunejit': [ 'debug_bot', 'x86', 'v8_enable_vtunejit'], 'full_debug_x86': [ @@ -483,7 +502,7 @@ # Release configs for x86. 'release_x86': [ - 'release_bot', 'x86', 'swarming'], + 'release_bot', 'x86'], 'release_x86_disassembler': [ 'release_bot', 'x86', 'v8_enable_disassembler'], 'release_x86_gcc': [ @@ -491,30 +510,30 @@ 'release_x86_gcc_minimal_symbols': [ 'release_bot', 'x86', 'gcc', 'minimal_symbols'], 'release_x86_gcmole': [ - 'release_bot', 'x86', 'gcmole', 'swarming'], + 'release_bot', 'x86', 'gcmole'], 'release_x86_gcmole_trybot': [ - 'release_trybot', 'x86', 'gcmole', 'swarming'], + 'release_trybot', 'x86', 'gcmole'], 'release_x86_interpreted_regexp': [ 'release_bot', 'x86', 'v8_interpreted_regexp'], 'release_x86_minimal_symbols': [ - 'release_bot', 'x86', 'minimal_symbols', 'swarming'], + 'release_bot', 'x86', 'minimal_symbols'], 'release_x86_no_i18n_trybot': [ - 'release_trybot', 'x86', 'swarming', 'v8_no_i18n'], + 'release_trybot', 'x86', 'v8_no_i18n'], 'release_x86_no_snap': [ - 'release_bot', 'x86', 'swarming', 'v8_snapshot_none'], + 'release_bot', 'x86', 'v8_snapshot_none'], 'release_x86_no_snap_shared_minimal_symbols': [ - 'release', 'x86', 'goma', 'minimal_symbols', 'shared', 'swarming', + 'release', 'x86', 'goma', 'minimal_symbols', 'shared', 'v8_snapshot_none'], 'release_x86_no_snap_trybot': [ - 'release_trybot', 'x86', 'swarming', 'v8_snapshot_none'], + 'release_trybot', 'x86', 'v8_snapshot_none'], 'release_x86_predictable': [ 'release_bot', 'x86', 'v8_enable_verify_predictable'], 'release_x86_shared_verify_heap': [ - 'release', 'x86', 'goma', 'shared', 'swarming', 'v8_verify_heap'], + 'release', 'x86', 'goma', 'shared', 'v8_verify_heap'], 'release_x86_trybot': [ - 'release_trybot', 'x86', 'swarming'], + 'release_trybot', 'x86'], 'release_x86_verify_csa': [ - 'release_bot', 'x86', 'swarming', 'dcheck_always_on', + 'release_bot', 'x86', 'dcheck_always_on', 'v8_enable_slow_dchecks', 'v8_verify_csa'], # Release configs for mips. @@ -608,6 +627,14 @@ 'gn_args': 'arm_float_abi="hard"', }, + 'jumbo': { + 'gn_args': 'use_jumbo_build=true', + }, + + 'jumbo_limited': { + 'gn_args': 'use_jumbo_build=true jumbo_file_merge_limit=50', + }, + 'lsan': { 'mixins': ['v8_enable_test_features'], 'gn_args': 'is_lsan=true', @@ -699,10 +726,6 @@ 'gn_args': 'is_component_build=false', }, - 'swarming': { - 'gn_args': 'v8_test_isolation_mode="prepare"', - }, - # TODO(machenbach): Remove the symbolized config after the bots are gone. 'symbolized': { 'gn_args': 'v8_no_inline=true', @@ -744,6 +767,10 @@ 'gn_args': 'v8_enable_disassembler=true', }, + 'v8_enable_embedded_builtins': { + 'gn_args': 'v8_enable_embedded_builtins=true', + }, + 'v8_enable_slow_dchecks': { 'gn_args': 'v8_enable_slow_dchecks=true', }, diff --git a/deps/v8/src/DEPS b/deps/v8/src/DEPS index bbf47e61071faf..050f91d6d6d990 100644 --- a/deps/v8/src/DEPS +++ b/deps/v8/src/DEPS @@ -8,6 +8,8 @@ include_rules = [ "+src/compiler/code-assembler.h", "+src/compiler/wasm-compiler.h", "-src/heap", + "+src/heap/factory.h", + "+src/heap/factory-inl.h", "+src/heap/heap.h", "+src/heap/heap-inl.h", "-src/inspector", diff --git a/deps/v8/src/accessors.cc b/deps/v8/src/accessors.cc index eb892886857213..f292988b8e1e5d 100644 --- a/deps/v8/src/accessors.cc +++ b/deps/v8/src/accessors.cc @@ -8,8 +8,8 @@ #include "src/contexts.h" #include "src/deoptimizer.h" #include "src/execution.h" -#include "src/factory.h" #include "src/frames-inl.h" +#include "src/heap/factory.h" #include "src/isolate-inl.h" #include "src/messages.h" #include "src/property-details.h" @@ -28,6 +28,7 @@ Handle Accessors::MakeAccessor( info->set_is_special_data_property(true); info->set_is_sloppy(false); info->set_replace_on_access(false); + info->set_has_no_side_effect(false); name = factory->InternalizeName(name); info->set_name(*name); Handle get = v8::FromCData(isolate, getter); @@ -78,7 +79,7 @@ bool Accessors::IsJSObjectFieldAccessor(Handle map, Handle name, namespace { -MUST_USE_RESULT MaybeHandle ReplaceAccessorWithDataProperty( +V8_WARN_UNUSED_RESULT MaybeHandle ReplaceAccessorWithDataProperty( Isolate* isolate, Handle receiver, Handle holder, Handle name, Handle value) { LookupIterator it(receiver, name, holder, @@ -97,6 +98,9 @@ MUST_USE_RESULT MaybeHandle ReplaceAccessorWithDataProperty( } // namespace +// +// Accessors::ReconfigureToDataProperty +// void Accessors::ReconfigureToDataProperty( v8::Local key, v8::Local val, const v8::PropertyCallbackInfo& info) { @@ -118,6 +122,18 @@ void Accessors::ReconfigureToDataProperty( } } +void Accessors::ReconfigureToDataPropertyGetter( + v8::Local name, const v8::PropertyCallbackInfo& info) { + UNREACHABLE(); +} + +Handle Accessors::MakeReconfigureToDataPropertyInfo( + Isolate* isolate) { + Handle name = isolate->factory()->ReconfigureToDataProperty_string(); + return MakeAccessor(isolate, name, &ReconfigureToDataPropertyGetter, + &ReconfigureToDataProperty); +} + // // Accessors::ArgumentsIterator // @@ -299,7 +315,6 @@ Handle Accessors::MakeStringLengthInfo(Isolate* isolate) { &StringLengthGetter, nullptr); } - // // Accessors::ScriptColumnOffset // @@ -613,7 +628,7 @@ void Accessors::ScriptEvalFromFunctionNameGetter( if (script->has_eval_from_shared()) { Handle shared(script->eval_from_shared()); // Find the name of the function calling eval. - result = Handle(shared->name(), isolate); + result = Handle(shared->Name(), isolate); } info.GetReturnValue().Set(Utils::ToLocal(result)); } diff --git a/deps/v8/src/accessors.h b/deps/v8/src/accessors.h index 70e6a9200ec7a6..1911f92dbf93dd 100644 --- a/deps/v8/src/accessors.h +++ b/deps/v8/src/accessors.h @@ -33,6 +33,7 @@ class JavaScriptFrame; V(function_name, FunctionName) \ V(function_length, FunctionLength) \ V(function_prototype, FunctionPrototype) \ + V(reconfigure_to_data_property, ReconfigureToDataProperty) \ V(script_column_offset, ScriptColumnOffset) \ V(script_compilation_type, ScriptCompilationType) \ V(script_context_data, ScriptContextData) \ @@ -48,6 +49,15 @@ class JavaScriptFrame; V(script_source_mapping_url, ScriptSourceMappingUrl) \ V(string_length, StringLength) +#define SIDE_EFFECT_FREE_ACCESSOR_INFO_LIST(V) \ + V(ArrayLength) \ + V(BoundFunctionLength) \ + V(BoundFunctionName) \ + V(FunctionName) \ + V(FunctionLength) \ + V(FunctionPrototype) \ + V(StringLength) + #define ACCESSOR_SETTER_LIST(V) \ V(ArrayLengthSetter) \ V(ErrorStackSetter) \ @@ -73,6 +83,16 @@ class Accessors : public AllStatic { ACCESSOR_SETTER_LIST(ACCESSOR_SETTER_DECLARATION) #undef ACCESSOR_SETTER_DECLARATION + static constexpr int kAccessorInfoCount = +#define COUNT_ACCESSOR(...) +1 + ACCESSOR_INFO_LIST(COUNT_ACCESSOR); +#undef COUNT_ACCESSOR + + static constexpr int kAccessorSetterCount = +#define COUNT_ACCESSOR(...) +1 + ACCESSOR_SETTER_LIST(COUNT_ACCESSOR); +#undef COUNT_ACCESSOR + static void ModuleNamespaceEntryGetter( v8::Local name, const v8::PropertyCallbackInfo& info); diff --git a/deps/v8/src/allocation.cc b/deps/v8/src/allocation.cc index 5493b34789eb00..f63c2f292f5b00 100644 --- a/deps/v8/src/allocation.cc +++ b/deps/v8/src/allocation.cc @@ -69,7 +69,7 @@ const int kAllocationTries = 2; void* Malloced::New(size_t size) { void* result = AllocWithRetry(size); if (result == nullptr) { - V8::FatalProcessOutOfMemory("Malloced operator new"); + V8::FatalProcessOutOfMemory(nullptr, "Malloced operator new"); } return result; } @@ -115,7 +115,7 @@ void* AlignedAlloc(size_t size, size_t alignment) { if (!OnCriticalMemoryPressure(size + alignment)) break; } if (result == nullptr) { - V8::FatalProcessOutOfMemory("AlignedAlloc"); + V8::FatalProcessOutOfMemory(nullptr, "AlignedAlloc"); } return result; } diff --git a/deps/v8/src/allocation.h b/deps/v8/src/allocation.h index 9bb47c8f05d2a1..13dc3e508f3d3c 100644 --- a/deps/v8/src/allocation.h +++ b/deps/v8/src/allocation.h @@ -14,13 +14,16 @@ namespace v8 { namespace internal { +class Isolate; + // This file defines memory allocation functions. If a first attempt at an // allocation fails, these functions call back into the embedder, then attempt // the allocation a second time. The embedder callback must not reenter V8. // Called when allocation routines fail to allocate, even with a possible retry. // This function should not return, but should terminate the current processing. -V8_EXPORT_PRIVATE void FatalProcessOutOfMemory(const char* message); +[[noreturn]] V8_EXPORT_PRIVATE void FatalProcessOutOfMemory( + Isolate* isolate, const char* message); // Superclass for classes managed with new & delete. class V8_EXPORT_PRIVATE Malloced { @@ -38,13 +41,13 @@ T* NewArray(size_t size) { if (result == nullptr) { V8::GetCurrentPlatform()->OnCriticalMemoryPressure(); result = new (std::nothrow) T[size]; - if (result == nullptr) FatalProcessOutOfMemory("NewArray"); + if (result == nullptr) FatalProcessOutOfMemory(nullptr, "NewArray"); } return result; } -template ::type> +template ::value>::type> T* NewArray(size_t size, T default_val) { T* result = reinterpret_cast(NewArray(sizeof(T) * size)); for (size_t i = 0; i < size; ++i) result[i] = default_val; diff --git a/deps/v8/src/api-arguments-inl.h b/deps/v8/src/api-arguments-inl.h index b8336f97c4fbe2..1cf9662b94997b 100644 --- a/deps/v8/src/api-arguments-inl.h +++ b/deps/v8/src/api-arguments-inl.h @@ -13,56 +13,63 @@ namespace v8 { namespace internal { -#define FOR_EACH_CALLBACK(F) \ - F(Query, query, Object, v8::Integer) \ - F(Deleter, deleter, Object, v8::Boolean) - -#define PREPARE_CALLBACK_INFO(ISOLATE, F, RETURN_VALUE, API_RETURN_TYPE) \ - if (ISOLATE->needs_side_effect_check() && \ - !PerformSideEffectCheck(ISOLATE, FUNCTION_ADDR(F))) { \ - return RETURN_VALUE(); \ - } \ - VMState state(ISOLATE); \ - ExternalCallbackScope call_scope(ISOLATE, FUNCTION_ADDR(F)); \ +#define FOR_EACH_CALLBACK(F) \ + F(Query, query, Object, v8::Integer, interceptor) \ + F(Deleter, deleter, Object, v8::Boolean, Handle()) + +#define DCHECK_NAME_COMPATIBLE(interceptor, name) \ + DCHECK(interceptor->is_named()); \ + DCHECK(!name->IsPrivate()); \ + DCHECK_IMPLIES(name->IsSymbol(), interceptor->can_intercept_symbols()); + +#define PREPARE_CALLBACK_INFO(ISOLATE, F, RETURN_VALUE, API_RETURN_TYPE, \ + CALLBACK_INFO) \ + if (ISOLATE->debug_execution_mode() == DebugInfo::kSideEffects && \ + !ISOLATE->debug()->PerformSideEffectCheckForCallback(CALLBACK_INFO)) { \ + return RETURN_VALUE(); \ + } \ + VMState state(ISOLATE); \ + ExternalCallbackScope call_scope(ISOLATE, FUNCTION_ADDR(F)); \ PropertyCallbackInfo callback_info(begin()); -#define CREATE_NAMED_CALLBACK(Function, type, ReturnType, ApiReturnType) \ - Handle PropertyCallbackArguments::CallNamed##Function( \ +#define CREATE_NAMED_CALLBACK(FUNCTION, TYPE, RETURN_TYPE, API_RETURN_TYPE, \ + INFO_FOR_SIDE_EFFECT) \ + Handle PropertyCallbackArguments::CallNamed##FUNCTION( \ Handle interceptor, Handle name) { \ - DCHECK(interceptor->is_named()); \ - DCHECK(!name->IsPrivate()); \ - DCHECK_IMPLIES(name->IsSymbol(), interceptor->can_intercept_symbols()); \ + DCHECK_NAME_COMPATIBLE(interceptor, name); \ Isolate* isolate = this->isolate(); \ RuntimeCallTimerScope timer( \ - isolate, RuntimeCallCounterId::kNamed##Function##Callback); \ - DCHECK(!name->IsPrivate()); \ - GenericNamedProperty##Function##Callback f = \ - ToCData( \ - interceptor->type()); \ - PREPARE_CALLBACK_INFO(isolate, f, Handle, ApiReturnType); \ + isolate, RuntimeCallCounterId::kNamed##FUNCTION##Callback); \ + GenericNamedProperty##FUNCTION##Callback f = \ + ToCData( \ + interceptor->TYPE()); \ + PREPARE_CALLBACK_INFO(isolate, f, Handle, API_RETURN_TYPE, \ + INFO_FOR_SIDE_EFFECT); \ LOG(isolate, \ - ApiNamedPropertyAccess("interceptor-named-" #type, holder(), *name)); \ + ApiNamedPropertyAccess("interceptor-named-" #TYPE, holder(), *name)); \ f(v8::Utils::ToLocal(name), callback_info); \ - return GetReturnValue(isolate); \ + return GetReturnValue(isolate); \ } FOR_EACH_CALLBACK(CREATE_NAMED_CALLBACK) #undef CREATE_NAMED_CALLBACK -#define CREATE_INDEXED_CALLBACK(Function, type, ReturnType, ApiReturnType) \ - Handle PropertyCallbackArguments::CallIndexed##Function( \ - Handle interceptor, uint32_t index) { \ - DCHECK(!interceptor->is_named()); \ - Isolate* isolate = this->isolate(); \ - RuntimeCallTimerScope timer( \ - isolate, RuntimeCallCounterId::kIndexed##Function##Callback); \ - IndexedProperty##Function##Callback f = \ - ToCData(interceptor->type()); \ - PREPARE_CALLBACK_INFO(isolate, f, Handle, ApiReturnType); \ - LOG(isolate, ApiIndexedPropertyAccess("interceptor-indexed-" #type, \ - holder(), index)); \ - f(index, callback_info); \ - return GetReturnValue(isolate); \ +#define CREATE_INDEXED_CALLBACK(FUNCTION, TYPE, RETURN_TYPE, API_RETURN_TYPE, \ + INFO_FOR_SIDE_EFFECT) \ + Handle PropertyCallbackArguments::CallIndexed##FUNCTION( \ + Handle interceptor, uint32_t index) { \ + DCHECK(!interceptor->is_named()); \ + Isolate* isolate = this->isolate(); \ + RuntimeCallTimerScope timer( \ + isolate, RuntimeCallCounterId::kIndexed##FUNCTION##Callback); \ + IndexedProperty##FUNCTION##Callback f = \ + ToCData(interceptor->TYPE()); \ + PREPARE_CALLBACK_INFO(isolate, f, Handle, API_RETURN_TYPE, \ + INFO_FOR_SIDE_EFFECT); \ + LOG(isolate, ApiIndexedPropertyAccess("interceptor-indexed-" #TYPE, \ + holder(), index)); \ + f(index, callback_info); \ + return GetReturnValue(isolate); \ } FOR_EACH_CALLBACK(CREATE_INDEXED_CALLBACK) @@ -70,11 +77,44 @@ FOR_EACH_CALLBACK(CREATE_INDEXED_CALLBACK) #undef FOR_EACH_CALLBACK #undef CREATE_INDEXED_CALLBACK +Handle FunctionCallbackArguments::Call(CallHandlerInfo* handler) { + Isolate* isolate = this->isolate(); + LOG(isolate, ApiObjectAccess("call", holder())); + RuntimeCallTimerScope timer(isolate, RuntimeCallCounterId::kFunctionCallback); + v8::FunctionCallback f = + v8::ToCData(handler->callback()); + if (isolate->debug_execution_mode() == DebugInfo::kSideEffects && + !isolate->debug()->PerformSideEffectCheckForCallback(handle(handler))) { + return Handle(); + } + VMState state(isolate); + ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); + FunctionCallbackInfo info(begin(), argv_, argc_); + f(info); + return GetReturnValue(isolate); +} + +Handle PropertyCallbackArguments::CallNamedEnumerator( + Handle interceptor) { + DCHECK(interceptor->is_named()); + LOG(isolate(), ApiObjectAccess("interceptor-named-enumerator", holder())); + RuntimeCallTimerScope timer(isolate(), + RuntimeCallCounterId::kNamedEnumeratorCallback); + return CallPropertyEnumerator(interceptor); +} + +Handle PropertyCallbackArguments::CallIndexedEnumerator( + Handle interceptor) { + DCHECK(!interceptor->is_named()); + LOG(isolate(), ApiObjectAccess("interceptor-indexed-enumerator", holder())); + RuntimeCallTimerScope timer(isolate(), + RuntimeCallCounterId::kIndexedEnumeratorCallback); + return CallPropertyEnumerator(interceptor); +} + Handle PropertyCallbackArguments::CallNamedGetter( Handle interceptor, Handle name) { - DCHECK(interceptor->is_named()); - DCHECK_IMPLIES(name->IsSymbol(), interceptor->can_intercept_symbols()); - DCHECK(!name->IsPrivate()); + DCHECK_NAME_COMPATIBLE(interceptor, name); Isolate* isolate = this->isolate(); RuntimeCallTimerScope timer(isolate, RuntimeCallCounterId::kNamedGetterCallback); @@ -82,13 +122,12 @@ Handle PropertyCallbackArguments::CallNamedGetter( ApiNamedPropertyAccess("interceptor-named-getter", holder(), *name)); GenericNamedPropertyGetterCallback f = ToCData(interceptor->getter()); - return BasicCallNamedGetterCallback(f, name); + return BasicCallNamedGetterCallback(f, name, interceptor); } Handle PropertyCallbackArguments::CallNamedDescriptor( Handle interceptor, Handle name) { - DCHECK(interceptor->is_named()); - DCHECK_IMPLIES(name->IsSymbol(), interceptor->can_intercept_symbols()); + DCHECK_NAME_COMPATIBLE(interceptor, name); Isolate* isolate = this->isolate(); RuntimeCallTimerScope timer(isolate, RuntimeCallCounterId::kNamedDescriptorCallback); @@ -97,14 +136,15 @@ Handle PropertyCallbackArguments::CallNamedDescriptor( GenericNamedPropertyDescriptorCallback f = ToCData( interceptor->descriptor()); - return BasicCallNamedGetterCallback(f, name); + return BasicCallNamedGetterCallback(f, name, interceptor); } Handle PropertyCallbackArguments::BasicCallNamedGetterCallback( - GenericNamedPropertyGetterCallback f, Handle name) { + GenericNamedPropertyGetterCallback f, Handle name, + Handle info) { DCHECK(!name->IsPrivate()); Isolate* isolate = this->isolate(); - PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Value); + PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Value, info); f(v8::Utils::ToLocal(name), callback_info); return GetReturnValue(isolate); } @@ -112,20 +152,15 @@ Handle PropertyCallbackArguments::BasicCallNamedGetterCallback( Handle PropertyCallbackArguments::CallNamedSetter( Handle interceptor, Handle name, Handle value) { - DCHECK_IMPLIES(name->IsSymbol(), interceptor->can_intercept_symbols()); + DCHECK_NAME_COMPATIBLE(interceptor, name); GenericNamedPropertySetterCallback f = ToCData(interceptor->setter()); - return CallNamedSetterCallback(f, name, value); -} - -Handle PropertyCallbackArguments::CallNamedSetterCallback( - GenericNamedPropertySetterCallback f, Handle name, - Handle value) { - DCHECK(!name->IsPrivate()); Isolate* isolate = this->isolate(); RuntimeCallTimerScope timer(isolate, RuntimeCallCounterId::kNamedSetterCallback); - PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Value); + Handle side_effect_check_not_supported; + PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Value, + side_effect_check_not_supported); LOG(isolate, ApiNamedPropertyAccess("interceptor-named-set", holder(), *name)); f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), callback_info); @@ -135,15 +170,15 @@ Handle PropertyCallbackArguments::CallNamedSetterCallback( Handle PropertyCallbackArguments::CallNamedDefiner( Handle interceptor, Handle name, const v8::PropertyDescriptor& desc) { - DCHECK(interceptor->is_named()); - DCHECK(!name->IsPrivate()); - DCHECK_IMPLIES(name->IsSymbol(), interceptor->can_intercept_symbols()); + DCHECK_NAME_COMPATIBLE(interceptor, name); Isolate* isolate = this->isolate(); RuntimeCallTimerScope timer(isolate, RuntimeCallCounterId::kNamedDefinerCallback); GenericNamedPropertyDefinerCallback f = ToCData(interceptor->definer()); - PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Value); + Handle side_effect_check_not_supported; + PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Value, + side_effect_check_not_supported); LOG(isolate, ApiNamedPropertyAccess("interceptor-named-define", holder(), *name)); f(v8::Utils::ToLocal(name), desc, callback_info); @@ -158,7 +193,9 @@ Handle PropertyCallbackArguments::CallIndexedSetter( RuntimeCallCounterId::kIndexedSetterCallback); IndexedPropertySetterCallback f = ToCData(interceptor->setter()); - PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Value); + Handle side_effect_check_not_supported; + PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Value, + side_effect_check_not_supported); LOG(isolate, ApiIndexedPropertyAccess("interceptor-indexed-set", holder(), index)); f(index, v8::Utils::ToLocal(value), callback_info); @@ -174,7 +211,9 @@ Handle PropertyCallbackArguments::CallIndexedDefiner( RuntimeCallCounterId::kIndexedDefinerCallback); IndexedPropertyDefinerCallback f = ToCData(interceptor->definer()); - PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Value); + Handle side_effect_check_not_supported; + PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Value, + side_effect_check_not_supported); LOG(isolate, ApiIndexedPropertyAccess("interceptor-indexed-define", holder(), index)); f(index, desc, callback_info); @@ -191,7 +230,7 @@ Handle PropertyCallbackArguments::CallIndexedGetter( ApiIndexedPropertyAccess("interceptor-indexed-getter", holder(), index)); IndexedPropertyGetterCallback f = ToCData(interceptor->getter()); - return BasicCallIndexedGetterCallback(f, index); + return BasicCallIndexedGetterCallback(f, index, interceptor); } Handle PropertyCallbackArguments::CallIndexedDescriptor( @@ -204,13 +243,13 @@ Handle PropertyCallbackArguments::CallIndexedDescriptor( holder(), index)); IndexedPropertyDescriptorCallback f = ToCData(interceptor->descriptor()); - return BasicCallIndexedGetterCallback(f, index); + return BasicCallIndexedGetterCallback(f, index, interceptor); } Handle PropertyCallbackArguments::BasicCallIndexedGetterCallback( - IndexedPropertyGetterCallback f, uint32_t index) { + IndexedPropertyGetterCallback f, uint32_t index, Handle info) { Isolate* isolate = this->isolate(); - PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Value); + PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Value, info); f(index, callback_info); return GetReturnValue(isolate); } @@ -222,7 +261,7 @@ Handle PropertyCallbackArguments::CallPropertyEnumerator( v8::ToCData(interceptor->enumerator()); // TODO(cbruni): assert same type for indexed and named callback. Isolate* isolate = this->isolate(); - PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Array); + PREPARE_CALLBACK_INFO(isolate, f, Handle, v8::Array, interceptor); f(callback_info); return GetReturnValue(isolate); } @@ -238,10 +277,10 @@ Handle PropertyCallbackArguments::CallAccessorGetter( LOG(isolate, ApiNamedPropertyAccess("accessor-getter", holder(), *name)); AccessorNameGetterCallback f = ToCData(info->getter()); - return BasicCallNamedGetterCallback(f, name); + return BasicCallNamedGetterCallback(f, name, info); } -void PropertyCallbackArguments::CallAccessorSetter( +Handle PropertyCallbackArguments::CallAccessorSetter( Handle accessor_info, Handle name, Handle value) { Isolate* isolate = this->isolate(); @@ -249,9 +288,12 @@ void PropertyCallbackArguments::CallAccessorSetter( RuntimeCallCounterId::kAccessorSetterCallback); AccessorNameSetterCallback f = ToCData(accessor_info->setter()); - PREPARE_CALLBACK_INFO(isolate, f, void, void); + Handle side_effect_check_not_supported; + PREPARE_CALLBACK_INFO(isolate, f, Handle, void, + side_effect_check_not_supported); LOG(isolate, ApiNamedPropertyAccess("accessor-setter", holder(), *name)); f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), callback_info); + return GetReturnValue(isolate); } #undef PREPARE_CALLBACK_INFO diff --git a/deps/v8/src/api-arguments.cc b/deps/v8/src/api-arguments.cc deleted file mode 100644 index 502b8cbdca2dc4..00000000000000 --- a/deps/v8/src/api-arguments.cc +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2016 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. - -#include "src/api-arguments.h" -#include "src/api-arguments-inl.h" - -#include "src/debug/debug.h" -#include "src/objects-inl.h" -#include "src/tracing/trace-event.h" -#include "src/vm-state-inl.h" - -namespace v8 { -namespace internal { - -Handle FunctionCallbackArguments::Call(CallHandlerInfo* handler) { - Isolate* isolate = this->isolate(); - LOG(isolate, ApiObjectAccess("call", holder())); - RuntimeCallTimerScope timer(isolate, RuntimeCallCounterId::kFunctionCallback); - v8::FunctionCallback f = - v8::ToCData(handler->callback()); - if (isolate->needs_side_effect_check() && - !isolate->debug()->PerformSideEffectCheckForCallback(FUNCTION_ADDR(f))) { - return Handle(); - } - VMState state(isolate); - ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); - FunctionCallbackInfo info(begin(), argv_, argc_); - f(info); - return GetReturnValue(isolate); -} - -Handle PropertyCallbackArguments::CallNamedEnumerator( - Handle interceptor) { - DCHECK(interceptor->is_named()); - LOG(isolate(), ApiObjectAccess("interceptor-named-enumerator", holder())); - RuntimeCallTimerScope timer(isolate(), - RuntimeCallCounterId::kNamedEnumeratorCallback); - return CallPropertyEnumerator(interceptor); -} - -Handle PropertyCallbackArguments::CallIndexedEnumerator( - Handle interceptor) { - DCHECK(!interceptor->is_named()); - LOG(isolate(), ApiObjectAccess("interceptor-indexed-enumerator", holder())); - RuntimeCallTimerScope timer(isolate(), - RuntimeCallCounterId::kIndexedEnumeratorCallback); - return CallPropertyEnumerator(interceptor); -} - -bool PropertyCallbackArguments::PerformSideEffectCheck(Isolate* isolate, - Address function) { - return isolate->debug()->PerformSideEffectCheckForCallback(function); -} - -} // namespace internal -} // namespace v8 diff --git a/deps/v8/src/api-arguments.h b/deps/v8/src/api-arguments.h index 413a72a3ae4b03..0abbcdcafa091d 100644 --- a/deps/v8/src/api-arguments.h +++ b/deps/v8/src/api-arguments.h @@ -6,6 +6,7 @@ #define V8_API_ARGUMENTS_H_ #include "src/api.h" +#include "src/debug/debug.h" #include "src/isolate.h" #include "src/visitors.h" @@ -15,34 +16,30 @@ namespace internal { // Custom arguments replicate a small segment of stack that can be // accessed through an Arguments object the same way the actual stack // can. -template class CustomArgumentsBase : public Relocatable { - public: - virtual inline void IterateInstance(RootVisitor* v) { - v->VisitRootPointers(Root::kRelocatable, nullptr, values_, - values_ + kArrayLength); - } - protected: - inline Object** begin() { return values_; } explicit inline CustomArgumentsBase(Isolate* isolate) : Relocatable(isolate) {} - Object* values_[kArrayLength]; }; template -class CustomArguments : public CustomArgumentsBase { +class CustomArguments : public CustomArgumentsBase { public: static const int kReturnValueOffset = T::kReturnValueIndex; - typedef CustomArgumentsBase Super; ~CustomArguments() { this->begin()[kReturnValueOffset] = reinterpret_cast(kHandleZapValue); } + virtual inline void IterateInstance(RootVisitor* v) { + v->VisitRootPointers(Root::kRelocatable, nullptr, values_, + values_ + T::kArgsLength); + } + protected: - explicit inline CustomArguments(Isolate* isolate) : Super(isolate) {} + explicit inline CustomArguments(Isolate* isolate) + : CustomArgumentsBase(isolate) {} template Handle GetReturnValue(Isolate* isolate); @@ -50,6 +47,9 @@ class CustomArguments : public CustomArgumentsBase { inline Isolate* isolate() { return reinterpret_cast(this->begin()[T::kIsolateIndex]); } + + inline Object** begin() { return values_; } + Object* values_[T::kArgsLength]; }; template @@ -103,8 +103,9 @@ class PropertyCallbackArguments // ------------------------------------------------------------------------- // Accessor Callbacks // Also used for AccessorSetterCallback. - inline void CallAccessorSetter(Handle info, Handle name, - Handle value); + inline Handle CallAccessorSetter(Handle info, + Handle name, + Handle value); // Also used for AccessorGetterCallback, AccessorNameGetterCallback. inline Handle CallAccessorGetter(Handle info, Handle name); @@ -118,9 +119,6 @@ class PropertyCallbackArguments inline Handle CallNamedSetter(Handle interceptor, Handle name, Handle value); - inline Handle CallNamedSetterCallback( - GenericNamedPropertySetterCallback callback, Handle name, - Handle value); inline Handle CallNamedDefiner(Handle interceptor, Handle name, const v8::PropertyDescriptor& desc); @@ -128,7 +126,8 @@ class PropertyCallbackArguments Handle name); inline Handle CallNamedDescriptor(Handle interceptor, Handle name); - Handle CallNamedEnumerator(Handle interceptor); + inline Handle CallNamedEnumerator( + Handle interceptor); // ------------------------------------------------------------------------- // Indexed Interceptor Callbacks @@ -145,7 +144,8 @@ class PropertyCallbackArguments uint32_t index); inline Handle CallIndexedDescriptor( Handle interceptor, uint32_t index); - Handle CallIndexedEnumerator(Handle interceptor); + inline Handle CallIndexedEnumerator( + Handle interceptor); private: /* @@ -160,16 +160,15 @@ class PropertyCallbackArguments Handle interceptor); inline Handle BasicCallIndexedGetterCallback( - IndexedPropertyGetterCallback f, uint32_t index); + IndexedPropertyGetterCallback f, uint32_t index, Handle info); inline Handle BasicCallNamedGetterCallback( - GenericNamedPropertyGetterCallback f, Handle name); + GenericNamedPropertyGetterCallback f, Handle name, + Handle info); inline JSObject* holder() { return JSObject::cast(this->begin()[T::kHolderIndex]); } - bool PerformSideEffectCheck(Isolate* isolate, Address function); - // Don't copy PropertyCallbackArguments, because they would both have the // same prev_ pointer. DISALLOW_COPY_AND_ASSIGN(PropertyCallbackArguments); @@ -216,7 +215,7 @@ class FunctionCallbackArguments * and used if it's been set to anything inside the callback. * New style callbacks always use the return value. */ - Handle Call(CallHandlerInfo* handler); + inline Handle Call(CallHandlerInfo* handler); private: inline JSObject* holder() { diff --git a/deps/v8/src/api-natives.cc b/deps/v8/src/api-natives.cc index 488b99fd2532db..981f592f5a08ed 100644 --- a/deps/v8/src/api-natives.cc +++ b/deps/v8/src/api-natives.cc @@ -626,7 +626,7 @@ Handle ApiNatives::CreateApiFunction( FunctionTemplateInfo::GetOrCreateSharedFunctionInfo(isolate, obj, maybe_name); // To simplify things, API functions always have shared name. - DCHECK(shared->has_shared_name()); + DCHECK(shared->HasSharedName()); Handle result = isolate->factory()->NewFunctionFromSharedFunctionInfo( diff --git a/deps/v8/src/api-natives.h b/deps/v8/src/api-natives.h index 398f198ae5bd2a..f73e7cee7ea28f 100644 --- a/deps/v8/src/api-natives.h +++ b/deps/v8/src/api-natives.h @@ -21,15 +21,15 @@ class ApiNatives { public: static const int kInitialFunctionCacheSize = 256; - MUST_USE_RESULT static MaybeHandle InstantiateFunction( + V8_WARN_UNUSED_RESULT static MaybeHandle InstantiateFunction( Handle data, MaybeHandle maybe_name = MaybeHandle()); - MUST_USE_RESULT static MaybeHandle InstantiateObject( + V8_WARN_UNUSED_RESULT static MaybeHandle InstantiateObject( Handle data, Handle new_target = Handle()); - MUST_USE_RESULT static MaybeHandle InstantiateRemoteObject( + V8_WARN_UNUSED_RESULT static MaybeHandle InstantiateRemoteObject( Handle data); enum ApiInstanceType { @@ -41,7 +41,7 @@ class ApiNatives { static Handle CreateApiFunction( Isolate* isolate, Handle obj, Handle prototype, ApiInstanceType instance_type, - MaybeHandle maybe_name = MaybeHandle()); + MaybeHandle name = MaybeHandle()); static void AddDataProperty(Isolate* isolate, Handle info, Handle name, Handle value, diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index f5be62058a0f94..8b177d041d447f 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -69,6 +69,7 @@ #include "src/snapshot/natives.h" #include "src/snapshot/snapshot.h" #include "src/startup-data-util.h" +#include "src/string-hasher.h" #include "src/tracing/trace-event.h" #include "src/trap-handler/trap-handler.h" #include "src/unicode-cache-inl.h" @@ -307,19 +308,22 @@ static ScriptOrigin GetScriptOriginForScript(i::Isolate* isolate, // --- E x c e p t i o n B e h a v i o r --- - -void i::FatalProcessOutOfMemory(const char* location) { - i::V8::FatalProcessOutOfMemory(location, false); +void i::FatalProcessOutOfMemory(i::Isolate* isolate, const char* location) { + i::V8::FatalProcessOutOfMemory(isolate, location, false); } // When V8 cannot allocate memory FatalProcessOutOfMemory is called. The default // OOM error handler is called and execution is stopped. -void i::V8::FatalProcessOutOfMemory(const char* location, bool is_heap_oom) { - i::Isolate* isolate = i::Isolate::Current(); +void i::V8::FatalProcessOutOfMemory(i::Isolate* isolate, const char* location, + bool is_heap_oom) { char last_few_messages[Heap::kTraceRingBufferSize + 1]; char js_stacktrace[Heap::kStacktraceBufferSize + 1]; i::HeapStats heap_stats; + if (isolate == nullptr) { + isolate = Isolate::Current(); + } + if (isolate == nullptr) { // On a background thread -> we cannot retrieve memory information from the // Isolate. Write easy-to-recognize values on the stack. @@ -329,7 +333,7 @@ void i::V8::FatalProcessOutOfMemory(const char* location, bool is_heap_oom) { // Note that the embedder's oom handler won't be called in this case. We // just crash. FATAL("API fatal error handler returned after process out of memory"); - return; + UNREACHABLE(); } memset(last_few_messages, 0, Heap::kTraceRingBufferSize + 1); @@ -393,7 +397,7 @@ void i::V8::FatalProcessOutOfMemory(const char* location, bool is_heap_oom) { PrintF("\n<--- Last few GCs --->\n%s\n", first_newline); PrintF("\n<--- JS stacktrace --->\n%s\n", js_stacktrace); } - Utils::ReportOOMFailure(location, is_heap_oom); + Utils::ReportOOMFailure(isolate, location, is_heap_oom); // If the fatal error handler returns, we stop execution. FATAL("API fatal error handler returned after process out of memory"); } @@ -415,8 +419,8 @@ void Utils::ReportApiFailure(const char* location, const char* message) { isolate->SignalFatalError(); } -void Utils::ReportOOMFailure(const char* location, bool is_heap_oom) { - i::Isolate* isolate = i::Isolate::Current(); +void Utils::ReportOOMFailure(i::Isolate* isolate, const char* location, + bool is_heap_oom) { OOMErrorCallback oom_callback = isolate->oom_behavior(); if (oom_callback == nullptr) { // TODO(wfh): Remove this fallback once Blink is setting OOM handler. See @@ -704,7 +708,7 @@ StartupData SnapshotCreator::CreateBlob( // context even after we have disposed of the context. isolate->heap()->CollectAllAvailableGarbage( i::GarbageCollectionReason::kSnapshotCreator); - isolate->heap()->CompactWeakFixedArrays(); + isolate->heap()->CompactFixedArraysOfWeakCells(); i::DisallowHeapAllocation no_gc_from_here_on; @@ -728,15 +732,33 @@ StartupData SnapshotCreator::CreateBlob( i::SerializedHandleChecker handle_checker(isolate, &contexts); CHECK(handle_checker.CheckGlobalAndEternalHandles()); - // Complete in-object slack tracking for all functions. i::HeapIterator heap_iterator(isolate->heap()); while (i::HeapObject* current_obj = heap_iterator.next()) { - if (!current_obj->IsJSFunction()) continue; - i::JSFunction* fun = i::JSFunction::cast(current_obj); - fun->CompleteInobjectSlackTrackingIfActive(); + if (current_obj->IsJSFunction()) { + i::JSFunction* fun = i::JSFunction::cast(current_obj); + + // Complete in-object slack tracking for all functions. + fun->CompleteInobjectSlackTrackingIfActive(); + + // Also, clear out feedback vectors. + fun->feedback_cell()->set_value(isolate->heap()->undefined_value()); + } + + // Clear out re-compilable data from all shared function infos. Any + // JSFunctions using these SFIs will have their code pointers reset by the + // partial serializer. + if (current_obj->IsSharedFunctionInfo() && + function_code_handling == FunctionCodeHandling::kClear) { + i::SharedFunctionInfo* shared = i::SharedFunctionInfo::cast(current_obj); + if (shared->CanFlushCompiled()) { + shared->FlushCompiled(); + } + DCHECK(shared->HasCodeObject() || shared->HasBuiltinId() || + shared->IsApiFunction()); + } } - i::StartupSerializer startup_serializer(isolate, function_code_handling); + i::StartupSerializer startup_serializer(isolate); startup_serializer.SerializeStrongReferences(); // Serialize each context with a new partial serializer. @@ -1221,13 +1243,18 @@ static i::Handle EmbedderDataFor(Context* context, if (!Utils::ApiCheck(can_grow, location, "Index too large")) { return i::Handle(); } - int new_size = i::Max(index, data->length() << 1) + 1; + int new_size = index + 1; int grow_by = new_size - data->length(); data = isolate->factory()->CopyFixedArrayAndGrow(data, grow_by); env->set_embedder_data(*data); return data; } +uint32_t Context::GetNumberOfEmbedderDataFields() { + i::Handle context = Utils::OpenHandle(this); + CHECK(context->IsNativeContext()); + return static_cast(context->embedder_data()->length()); +} v8::Local Context::SlowGetEmbedderData(int index) { const char* location = "v8::Context::GetEmbedderData()"; @@ -1375,7 +1402,8 @@ void FunctionTemplate::Inherit(v8::Local value) { static Local FunctionTemplateNew( i::Isolate* isolate, FunctionCallback callback, v8::Local data, v8::Local signature, int length, bool do_not_cache, - v8::Local cached_property_name = v8::Local()) { + v8::Local cached_property_name = v8::Local(), + SideEffectType side_effect_type = SideEffectType::kHasSideEffect) { i::Handle struct_obj = isolate->factory()->NewStruct(i::FUNCTION_TEMPLATE_INFO_TYPE, i::TENURED); i::Handle obj = @@ -1388,7 +1416,7 @@ static Local FunctionTemplateNew( } obj->set_serial_number(i::Smi::FromInt(next_serial_number)); if (callback != 0) { - Utils::ToLocal(obj)->SetCallHandler(callback, data); + Utils::ToLocal(obj)->SetCallHandler(callback, data, side_effect_type); } obj->set_length(length); obj->set_undetectable(false); @@ -1413,8 +1441,8 @@ Local FunctionTemplate::New( // function templates when the isolate is created for serialization. LOG_API(i_isolate, FunctionTemplate, New); ENTER_V8_NO_SCRIPT_NO_EXCEPTION(i_isolate); - auto templ = - FunctionTemplateNew(i_isolate, callback, data, signature, length, false); + auto templ = FunctionTemplateNew(i_isolate, callback, data, signature, length, + false, Local(), side_effect_type); if (behavior == ConstructorBehavior::kThrow) templ->RemovePrototype(); return templ; } @@ -1442,7 +1470,7 @@ Local FunctionTemplate::NewWithCache( LOG_API(i_isolate, FunctionTemplate, NewWithCache); ENTER_V8_NO_SCRIPT_NO_EXCEPTION(i_isolate); return FunctionTemplateNew(i_isolate, callback, data, signature, length, - false, cache_property); + false, cache_property, side_effect_type); } Local Signature::New(Isolate* isolate, @@ -1470,10 +1498,8 @@ void FunctionTemplate::SetCallHandler(FunctionCallback callback, i::Isolate* isolate = info->GetIsolate(); ENTER_V8_NO_SCRIPT_NO_EXCEPTION(isolate); i::HandleScope scope(isolate); - i::Handle struct_obj = - isolate->factory()->NewStruct(i::TUPLE3_TYPE, i::TENURED); - i::Handle obj = - i::Handle::cast(struct_obj); + i::Handle obj = isolate->factory()->NewCallHandlerInfo( + side_effect_type == SideEffectType::kHasNoSideEffect); SET_FIELD_WRAPPED(obj, set_callback, callback); SET_FIELD_WRAPPED(obj, set_js_callback, obj->redirected_callback()); if (data.IsEmpty()) { @@ -1781,6 +1807,9 @@ static i::Handle CreateInterceptorInfo( static_cast(PropertyHandlerFlags::kAllCanRead)); obj->set_non_masking(static_cast(flags) & static_cast(PropertyHandlerFlags::kNonMasking)); + obj->set_has_no_side_effect( + static_cast(flags) & + static_cast(PropertyHandlerFlags::kHasNoSideEffect)); if (data.IsEmpty()) { data = v8::Undefined(reinterpret_cast(isolate)); @@ -1940,7 +1969,6 @@ void ObjectTemplate::SetHandler( cons->set_indexed_property_handler(*obj); } - void ObjectTemplate::SetCallAsFunctionHandler(FunctionCallback callback, Local data) { i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); @@ -1948,10 +1976,7 @@ void ObjectTemplate::SetCallAsFunctionHandler(FunctionCallback callback, i::HandleScope scope(isolate); auto cons = EnsureConstructor(isolate, this); EnsureNotInstantiated(cons, "v8::ObjectTemplate::SetCallAsFunctionHandler"); - i::Handle struct_obj = - isolate->factory()->NewStruct(i::TUPLE3_TYPE, i::TENURED); - i::Handle obj = - i::Handle::cast(struct_obj); + i::Handle obj = isolate->factory()->NewCallHandlerInfo(); SET_FIELD_WRAPPED(obj, set_callback, callback); SET_FIELD_WRAPPED(obj, set_js_callback, obj->redirected_callback()); if (data.IsEmpty()) { @@ -2374,22 +2399,14 @@ MaybeLocal ScriptCompiler::CompileUnboundInternal( source->host_defined_options); i::MaybeHandle maybe_function_info = i::Compiler::GetSharedFunctionInfoForScript( - str, script_details, source->resource_options, nullptr, &script_data, + str, script_details, source->resource_options, nullptr, script_data, options, no_cache_reason, i::NOT_NATIVES_CODE); - has_pending_exception = !maybe_function_info.ToHandle(&result); - if (has_pending_exception && script_data != nullptr) { - // This case won't happen during normal operation; we have compiled - // successfully and produced cached data, and but the second compilation - // of the same source code fails. - delete script_data; - script_data = nullptr; - } - RETURN_ON_FAILED_EXECUTION(UnboundScript); - if (options == kConsumeCodeCache) { source->cached_data->rejected = script_data->rejected(); } delete script_data; + has_pending_exception = !maybe_function_info.ToHandle(&result); + RETURN_ON_FAILED_EXECUTION(UnboundScript); RETURN_ESCAPED(ToApiHandle(result)); } @@ -2483,6 +2500,10 @@ MaybeLocal ScriptCompiler::CompileFunctionInContext( Function); TRACE_EVENT_CALL_STATS_SCOPED(isolate, "v8", "V8.ScriptCompiler"); + DCHECK(options == CompileOptions::kConsumeCodeCache || + options == CompileOptions::kEagerCompile || + options == CompileOptions::kNoCompileOptions); + i::Handle context = Utils::OpenHandle(*v8_context); i::Handle outer_info(context->closure()->shared(), isolate); @@ -2511,25 +2532,30 @@ MaybeLocal ScriptCompiler::CompileFunctionInContext( extension); } - i::Handle name_obj; - int line_offset = 0; - int column_offset = 0; - if (!source->resource_name.IsEmpty()) { - name_obj = Utils::OpenHandle(*(source->resource_name)); - } - if (!source->resource_line_offset.IsEmpty()) { - line_offset = static_cast(source->resource_line_offset->Value()); - } - if (!source->resource_column_offset.IsEmpty()) { - column_offset = static_cast(source->resource_column_offset->Value()); + i::Compiler::ScriptDetails script_details = GetScriptDetails( + isolate, source->resource_name, source->resource_line_offset, + source->resource_column_offset, source->source_map_url, + source->host_defined_options); + + i::ScriptData* script_data = nullptr; + if (options == kConsumeCodeCache) { + DCHECK(source->cached_data); + // ScriptData takes care of pointer-aligning the data. + script_data = new i::ScriptData(source->cached_data->data, + source->cached_data->length); } i::Handle result; has_pending_exception = !i::Compiler::GetWrappedFunction( Utils::OpenHandle(*source->source_string), arguments_list, context, - line_offset, column_offset, name_obj, source->resource_options) + script_details, source->resource_options, script_data, options, + no_cache_reason) .ToHandle(&result); + if (options == kConsumeCodeCache) { + source->cached_data->rejected = script_data->rejected(); + } + delete script_data; RETURN_ON_FAILED_EXECUTION(Function); RETURN_ESCAPED(Utils::CallableToLocal(result)); } @@ -2603,37 +2629,18 @@ ScriptCompiler::CachedData* ScriptCompiler::CreateCodeCache( i::Handle shared = i::Handle::cast( Utils::OpenHandle(*unbound_script)); - i::Isolate* isolate = shared->GetIsolate(); - TRACE_EVENT_CALL_STATS_SCOPED(isolate, "v8", "V8.Execute"); - base::ElapsedTimer timer; - if (i::FLAG_profile_deserialization) { - timer.Start(); - } - i::HistogramTimerScope histogram_timer( - isolate->counters()->compile_serialize()); - i::RuntimeCallTimerScope runtimeTimer( - isolate, i::RuntimeCallCounterId::kCompileSerialize); - TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"), "V8.CompileSerialize"); - + i::Handle source_str = Utils::OpenHandle(*source); DCHECK(shared->is_toplevel()); - i::Handle script(i::Script::cast(shared->script())); - // TODO(7110): Enable serialization of Asm modules once the AsmWasmData is - // context independent. - if (script->ContainsAsmModule()) return nullptr; - if (isolate->debug()->is_loaded()) return nullptr; - - i::ScriptData* script_data = - i::CodeSerializer::Serialize(isolate, shared, Utils::OpenHandle(*source)); - CachedData* result = new CachedData( - script_data->data(), script_data->length(), CachedData::BufferOwned); - script_data->ReleaseDataOwnership(); - delete script_data; + return i::CodeSerializer::Serialize(shared, source_str); +} - if (i::FLAG_profile_deserialization) { - i::PrintF("[Serializing took %0.3f ms]\n", - timer.Elapsed().InMillisecondsF()); - } - return result; +ScriptCompiler::CachedData* ScriptCompiler::CreateCodeCacheForFunction( + Local function, Local source) { + i::Handle shared( + i::Handle::cast(Utils::OpenHandle(*function))->shared()); + i::Handle source_str = Utils::OpenHandle(*source); + CHECK(shared->is_wrapped()); + return i::CodeSerializer::Serialize(shared, source_str); } MaybeLocal + + @@ -68,13 +70,13 @@ +

V8 Heap Statistics

-

V8 Heap Statistics

Visualize object statistics that have been gathered using

  • --trace-gc-object-stats on V8
  • @@ -85,6 +87,10 @@

    V8 Heap Statistics

    v8.gc_stats.
+

+ Note that you only get a data point on major GCs. You can enforce this by + using the --gc-global flag. +

Note that the visualizer needs to run on a web server due to HTML imports requiring this.finalizeGC(gc)); + this.sortInstanceTypePeakMemory(); } getLabel() { let label = `${this.address}: gc=#${Object.keys(this.gcs).length}`; - const peakSizeMB = Math.round(this.peakMemory / 1024 / 1024 * 100) / 100; - label += ` max=${peakSizeMB}MB` + label += ` peak=${formatBytes(this.peakMemory)}` return label; } finalizeGC(gc_data) { this.data_sets.forEach(key => this.finalizeDataSet(gc_data[key])); - if ('live' in gc_data) { - this.peakMemory = Math.max(this.peakMemory, gc_data['live'].overall); + if (!('live' in gc_data)) return; + let liveData = gc_data.live; + this.peakMemory = Math.max(this.peakMemory, liveData.overall); + let data = liveData.instance_type_data; + for (let name in data) { + let prev = this.instanceTypePeakMemory[name] || 0; + this.instanceTypePeakMemory[name] = Math.max(prev, data[name].overall); } } finalizeDataSet(data_set) { // Create a ranked instance type array that sorts instance types by // memory size (overall). - data_set.ranked_instance_types = - [...data_set.non_empty_instance_types].sort(function(a, b) { - if (data_set.instance_type_data[a].overall > - data_set.instance_type_data[b].overall) { - return 1; - } else if ( - data_set.instance_type_data[a].overall < - data_set.instance_type_data[b].overall) { - return -1; - } - return 0; + let data = data_set.instance_type_data; + let ranked_instance_types = + [...data_set.non_empty_instance_types].sort((a, b) => { + return data[a].overall - data[b].overall; }); + // Reassemble the instance_type list sorted by size. + let sorted_data = Object.create(null); + let max = 0; + ranked_instance_types.forEach((name) => { + let entry = sorted_data[name] = data[name]; + max = Math.max(max, entry.overall); + }); + data_set.instance_type_data = data; + data_set.singleInstancePeakMemory = max; Object.entries(data_set.instance_type_data).forEach(([name, entry]) => { this.checkHistogram( @@ -74,4 +85,21 @@ class Isolate { `${type}: sum('${histogram}') > overall (${sum} > ${overall})`); } } + + sortInstanceTypePeakMemory() { + let entries = Object.entries(this.instanceTypePeakMemory); + entries.sort((a, b) => {return b[1] - a[1]}); + this.instanceTypePeakMemory = Object.create(null); + let max = 0; + for (let [key, value] of entries) { + this.instanceTypePeakMemory[key] = value; + max = Math.max(max, value); + } + this.singleInstanceTypePeakMemory = max; + } + + getInstanceTypePeakMemory(type) { + if (!(type in this.instanceTypePeakMemory)) return 0; + return this.instanceTypePeakMemory[type]; + } } diff --git a/deps/v8/tools/heap-stats/trace-file-reader.html b/deps/v8/tools/heap-stats/trace-file-reader.html index 73de98ab03f70e..649d32bb40655c 100644 --- a/deps/v8/tools/heap-stats/trace-file-reader.html +++ b/deps/v8/tools/heap-stats/trace-file-reader.html @@ -11,6 +11,16 @@ border: solid 1px #000000; border-radius: 5px; cursor: pointer; + transition: all 0.5s ease-in-out; +} + +#fileReader.done { + height: 20px; + line-height: 20px; +} + +#fileReader:hover { + background-color: #e0edfe ; } .loading #fileReader { @@ -21,11 +31,12 @@ display: none; } + #loader { display: none; } -.loading #loader{ +.loading #loader { display: block; position: fixed; top: 0px; @@ -51,7 +62,7 @@ @keyframes spin { 0% { transform: rotate(0deg); - }; + }; 100% { transform: rotate(360deg); }; @@ -59,7 +70,7 @@

-
+
Drag and drop a trace file into this area, or click to choose from disk. diff --git a/deps/v8/tools/heap-stats/trace-file-reader.js b/deps/v8/tools/heap-stats/trace-file-reader.js index ef563a43cb35ed..4ad1269835b095 100644 --- a/deps/v8/tools/heap-stats/trace-file-reader.js +++ b/deps/v8/tools/heap-stats/trace-file-reader.js @@ -17,6 +17,7 @@ class TraceFileReader extends HTMLElement { this.addEventListener('dragover', e => this.handleDragOver(e)); this.addEventListener('drop', e => this.handleChange(e)); this.$('#file').addEventListener('change', e => this.handleChange(e)); + this.$('#fileReader').addEventListener('keydown', e => this.handleKeyEvent(e)); } $(id) { @@ -31,6 +32,10 @@ class TraceFileReader extends HTMLElement { this.$('#label').innerText = text; } + handleKeyEvent(event) { + if (event.key == "Enter") this.handleClick(event); + } + handleClick(event) { this.$('#file').click(); } @@ -46,13 +51,16 @@ class TraceFileReader extends HTMLElement { event.preventDefault(); } - connectedCallback() {} + connectedCallback() { + this.$('#fileReader').focus(); + } readFile(file) { if (!file) { this.updateLabel('Failed to load file.'); return; } + this.$('#fileReader').blur(); this.section.className = 'loading'; const reader = new FileReader(); @@ -63,15 +71,17 @@ class TraceFileReader extends HTMLElement { const textResult = pako.inflate(e.target.result, {to: 'string'}); this.processRawText(file, textResult); this.section.className = 'success'; + this.$('#fileReader').classList.add('done'); } catch (err) { console.error(err); this.section.className = 'failure'; } }; - reader.readAsArrayBuffer(file); + // Delay the loading a bit to allow for CSS animations to happen. + setTimeout(() => reader.readAsArrayBuffer(file), 10); } else { reader.onload = (e) => this.processRawText(file, e.target.result); - reader.readAsText(file); + setTimeout(() => reader.readAsText(file), 10); } } @@ -96,10 +106,12 @@ class TraceFileReader extends HTMLElement { data_object.gcs[entry.id] = {non_empty_instance_types: new Set()}; } if ('time' in entry) { - if (data_object.end === null || data_object.end < entry.time) + if (data_object.end === null || data_object.end < entry.time) { data_object.end = entry.time; - if (data_object.start === null || data_object.start > entry.time) + } + if (data_object.start === null || data_object.start > entry.time) { data_object.start = entry.time; + } } } diff --git a/deps/v8/tools/ic-processor.js b/deps/v8/tools/ic-processor.js index 93f40b38a08634..9a78d16943f019 100644 --- a/deps/v8/tools/ic-processor.js +++ b/deps/v8/tools/ic-processor.js @@ -56,6 +56,9 @@ function IcProcessor() { 'KeyedStoreIC': { parsers : propertyICParser, processor: this.processPropertyIC.bind(this, "KeyedStoreIC") }, + 'StoreInArrayLiteralIC': { + parsers : propertyICParser, + processor: this.processPropertyIC.bind(this, "StoreInArrayLiteralIC") }, }); this.deserializedEntriesNames_ = []; this.profile_ = new Profile(); @@ -64,6 +67,7 @@ function IcProcessor() { this.StoreIC = 0; this.KeyedLoadIC = 0; this.KeyedStoreIC = 0; + this.StoreInArrayLiteralIC = 0; } inherits(IcProcessor, LogReader); @@ -104,6 +108,7 @@ IcProcessor.prototype.processLogFile = function(fileName) { print("Store: " + this.StoreIC); print("KeyedLoad: " + this.KeyedLoadIC); print("KeyedStore: " + this.KeyedStoreIC); + print("StoreInArrayLiteral: " + this.StoreInArrayLiteralIC); }; IcProcessor.prototype.addEntry = function(entry) { diff --git a/deps/v8/tools/isolate_driver.py b/deps/v8/tools/isolate_driver.py deleted file mode 100644 index 32077e236f5be1..00000000000000 --- a/deps/v8/tools/isolate_driver.py +++ /dev/null @@ -1,340 +0,0 @@ -#!/usr/bin/env python -# Copyright 2015 the V8 project authors. All rights reserved. -# Copyright 2014 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Adaptor script called through gni/isolate.gni. - -Creates a wrapping .isolate which 'includes' the original one, that can be -consumed by tools/swarming_client/isolate.py. Path variables are determined -based on the current working directory. The relative_cwd in the .isolated file -is determined based on the .isolate file that declare the 'command' variable to -be used so the wrapping .isolate doesn't affect this value. - -This script loads build.ninja and processes it to determine all the executables -referenced by the isolated target. It adds them in the wrapping .isolate file. - -WARNING: The target to use for build.ninja analysis is the base name of the -.isolate file plus '_run'. For example, 'foo_test.isolate' would have the target -'foo_test_run' analysed. -""" - -import errno -import glob -import json -import logging -import os -import posixpath -import StringIO -import subprocess -import sys -import time - -TOOLS_DIR = os.path.dirname(os.path.abspath(__file__)) -SWARMING_CLIENT_DIR = os.path.join(TOOLS_DIR, 'swarming_client') -SRC_DIR = os.path.dirname(TOOLS_DIR) - -sys.path.insert(0, SWARMING_CLIENT_DIR) - -import isolate_format - - -def load_ninja_recursively(build_dir, ninja_path, build_steps): - """Crudely extracts all the subninja and build referenced in ninja_path. - - In particular, it ignores rule and variable declarations. The goal is to be - performant (well, as much as python can be performant) which is currently in - the <200ms range for a complete chromium tree. As such the code is laid out - for performance instead of readability. - """ - logging.debug('Loading %s', ninja_path) - try: - with open(os.path.join(build_dir, ninja_path), 'rb') as f: - line = None - merge_line = '' - subninja = [] - for line in f: - line = line.rstrip() - if not line: - continue - - if line[-1] == '$': - # The next line needs to be merged in. - merge_line += line[:-1] - continue - - if merge_line: - line = merge_line + line - merge_line = '' - - statement = line[:line.find(' ')] - if statement == 'build': - # Save the dependency list as a raw string. Only the lines needed will - # be processed with raw_build_to_deps(). This saves a good 70ms of - # processing time. - build_target, dependencies = line[6:].split(': ', 1) - # Interestingly, trying to be smart and only saving the build steps - # with the intended extensions ('', '.stamp', '.so') slows down - # parsing even if 90% of the build rules can be skipped. - # On Windows, a single step may generate two target, so split items - # accordingly. It has only been seen for .exe/.exe.pdb combos. - for i in build_target.strip().split(): - build_steps[i] = dependencies - elif statement == 'subninja': - subninja.append(line[9:]) - except IOError: - print >> sys.stderr, 'Failed to open %s' % ninja_path - raise - - total = 1 - for rel_path in subninja: - try: - # Load each of the files referenced. - # TODO(maruel): Skip the files known to not be needed. It saves an aweful - # lot of processing time. - total += load_ninja_recursively(build_dir, rel_path, build_steps) - except IOError: - print >> sys.stderr, '... as referenced by %s' % ninja_path - raise - return total - - -def load_ninja(build_dir): - """Loads the tree of .ninja files in build_dir.""" - build_steps = {} - total = load_ninja_recursively(build_dir, 'build.ninja', build_steps) - logging.info('Loaded %d ninja files, %d build steps', total, len(build_steps)) - return build_steps - - -def using_blacklist(item): - """Returns True if an item should be analyzed. - - Ignores many rules that are assumed to not depend on a dynamic library. If - the assumption doesn't hold true anymore for a file format, remove it from - this list. This is simply an optimization. - """ - # *.json is ignored below, *.isolated.gen.json is an exception, it is produced - # by isolate_driver.py in 'test_isolation_mode==prepare'. - if item.endswith('.isolated.gen.json'): - return True - IGNORED = ( - '.a', '.cc', '.css', '.dat', '.def', '.frag', '.h', '.html', '.isolate', - '.js', '.json', '.manifest', '.o', '.obj', '.pak', '.png', '.pdb', '.py', - '.strings', '.test', '.txt', '.vert', - ) - # ninja files use native path format. - ext = os.path.splitext(item)[1] - if ext in IGNORED: - return False - # Special case Windows, keep .dll.lib but discard .lib. - if item.endswith('.dll.lib'): - return True - if ext == '.lib': - return False - return item not in ('', '|', '||') - - -def raw_build_to_deps(item): - """Converts a raw ninja build statement into the list of interesting - dependencies. - """ - # TODO(maruel): Use a whitelist instead? .stamp, .so.TOC, .dylib.TOC, - # .dll.lib, .exe and empty. - # The first item is the build rule, e.g. 'link', 'cxx', 'phony', etc. - return filter(using_blacklist, item.split(' ')[1:]) - - -def collect_deps(target, build_steps, dependencies_added, rules_seen): - """Recursively adds all the interesting dependencies for |target| - into |dependencies_added|. - """ - if rules_seen is None: - rules_seen = set() - if target in rules_seen: - # TODO(maruel): Figure out how it happens. - logging.warning('Circular dependency for %s!', target) - return - rules_seen.add(target) - try: - dependencies = raw_build_to_deps(build_steps[target]) - except KeyError: - logging.info('Failed to find a build step to generate: %s', target) - return - logging.debug('collect_deps(%s) -> %s', target, dependencies) - for dependency in dependencies: - dependencies_added.add(dependency) - collect_deps(dependency, build_steps, dependencies_added, rules_seen) - - -def post_process_deps(build_dir, dependencies): - """Processes the dependency list with OS specific rules.""" - def filter_item(i): - if i.endswith('.so.TOC'): - # Remove only the suffix .TOC, not the .so! - return i[:-4] - if i.endswith('.dylib.TOC'): - # Remove only the suffix .TOC, not the .dylib! - return i[:-4] - if i.endswith('.dll.lib'): - # Remove only the suffix .lib, not the .dll! - return i[:-4] - return i - - def is_exe(i): - # This script is only for adding new binaries that are created as part of - # the component build. - ext = os.path.splitext(i)[1] - # On POSIX, executables have no extension. - if ext not in ('', '.dll', '.dylib', '.exe', '.nexe', '.so'): - return False - if os.path.isabs(i): - # In some rare case, there's dependency set explicitly on files outside - # the checkout. - return False - - # Check for execute access and strip directories. This gets rid of all the - # phony rules. - p = os.path.join(build_dir, i) - return os.access(p, os.X_OK) and not os.path.isdir(p) - - return filter(is_exe, map(filter_item, dependencies)) - - -def create_wrapper(args, isolate_index, isolated_index): - """Creates a wrapper .isolate that add dynamic libs. - - The original .isolate is not modified. - """ - cwd = os.getcwd() - isolate = args[isolate_index] - # The code assumes the .isolate file is always specified path-less in cwd. Fix - # if this assumption doesn't hold true. - assert os.path.basename(isolate) == isolate, isolate - - # This will look like ../out/Debug. This is based against cwd. Note that this - # must equal the value provided as PRODUCT_DIR. - build_dir = os.path.dirname(args[isolated_index]) - - # This will look like chrome/unit_tests.isolate. It is based against SRC_DIR. - # It's used to calculate temp_isolate. - src_isolate = os.path.relpath(os.path.join(cwd, isolate), SRC_DIR) - - # The wrapping .isolate. This will look like - # ../out/Debug/gen/chrome/unit_tests.isolate. - temp_isolate = os.path.join(build_dir, 'gen', src_isolate) - temp_isolate_dir = os.path.dirname(temp_isolate) - - # Relative path between the new and old .isolate file. - isolate_relpath = os.path.relpath( - '.', temp_isolate_dir).replace(os.path.sep, '/') - - # It's a big assumption here that the name of the isolate file matches the - # primary target '_run'. Fix accordingly if this doesn't hold true, e.g. - # complain to maruel@. - target = isolate[:-len('.isolate')] + '_run' - build_steps = load_ninja(build_dir) - binary_deps = set() - collect_deps(target, build_steps, binary_deps, None) - binary_deps = post_process_deps(build_dir, binary_deps) - logging.debug( - 'Binary dependencies:%s', ''.join('\n ' + i for i in binary_deps)) - - # Now do actual wrapping .isolate. - isolate_dict = { - 'includes': [ - posixpath.join(isolate_relpath, isolate), - ], - 'variables': { - # Will look like ['<(PRODUCT_DIR)/lib/flibuser_prefs.so']. - 'files': sorted( - '<(PRODUCT_DIR)/%s' % i.replace(os.path.sep, '/') - for i in binary_deps), - }, - } - # Some .isolate files have the same temp directory and the build system may - # run this script in parallel so make directories safely here. - try: - os.makedirs(temp_isolate_dir) - except OSError as e: - if e.errno != errno.EEXIST: - raise - comment = ( - '# Warning: this file was AUTOGENERATED.\n' - '# DO NO EDIT.\n') - out = StringIO.StringIO() - isolate_format.print_all(comment, isolate_dict, out) - isolate_content = out.getvalue() - with open(temp_isolate, 'wb') as f: - f.write(isolate_content) - logging.info('Added %d dynamic libs', len(binary_deps)) - logging.debug('%s', isolate_content) - args[isolate_index] = temp_isolate - - -def prepare_isolate_call(args, output): - """Gathers all information required to run isolate.py later. - - Dumps it as JSON to |output| file. - """ - with open(output, 'wb') as f: - json.dump({ - 'args': args, - 'dir': os.getcwd(), - 'version': 1, - }, f, indent=2, sort_keys=True) - - -def rebase_directories(args, abs_base): - """Rebases all paths to be relative to abs_base.""" - def replace(index): - args[index] = os.path.relpath(os.path.abspath(args[index]), abs_base) - for i, arg in enumerate(args): - if arg in ['--isolate', '--isolated']: - replace(i + 1) - if arg == '--path-variable': - # Path variables have a triple form: --path-variable NAME . - replace(i + 2) - - -def main(): - logging.basicConfig(level=logging.ERROR, format='%(levelname)7s %(message)s') - args = sys.argv[1:] - mode = args[0] if args else None - isolate = None - isolated = None - for i, arg in enumerate(args): - if arg == '--isolate': - isolate = i + 1 - if arg == '--isolated': - isolated = i + 1 - if isolate is None or isolated is None or not mode: - print >> sys.stderr, 'Internal failure' - return 1 - - # Make sure all paths are relative to the isolate file. This is an - # expectation of the go binaries. In gn, this script is not called - # relative to the isolate file, but relative to the product dir. - new_base = os.path.abspath(os.path.dirname(args[isolate])) - rebase_directories(args, new_base) - assert args[isolate] == os.path.basename(args[isolate]) - os.chdir(new_base) - - create_wrapper(args, isolate, isolated) - - # In 'prepare' mode just collect all required information for postponed - # isolated.py invocation later, store it in *.isolated.gen.json file. - if mode == 'prepare': - prepare_isolate_call(args[1:], args[isolated] + '.gen.json') - return 0 - - swarming_client = os.path.join(SRC_DIR, 'tools', 'swarming_client') - sys.stdout.flush() - result = subprocess.call( - [sys.executable, os.path.join(swarming_client, 'isolate.py')] + args) - return result - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/deps/v8/tools/jsfunfuzz/BUILD.gn b/deps/v8/tools/jsfunfuzz/BUILD.gn new file mode 100644 index 00000000000000..3c40460f8db743 --- /dev/null +++ b/deps/v8/tools/jsfunfuzz/BUILD.gn @@ -0,0 +1,19 @@ +# Copyright 2018 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("../../gni/v8.gni") + +group("v8_jsfunfuzz") { + testonly = true + + data_deps = [ + "../..:d8", + ] + + data = [ + # Grab current directory. This avoids adding logic for checking the + # existence of the jsfunfuzz subdirectory. + "./", + ] +} diff --git a/deps/v8/tools/jsfunfuzz/jsfunfuzz.isolate b/deps/v8/tools/jsfunfuzz/jsfunfuzz.isolate deleted file mode 100644 index 56cb4a733f3052..00000000000000 --- a/deps/v8/tools/jsfunfuzz/jsfunfuzz.isolate +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright 2016 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. -{ - 'variables': { - 'command': [ - 'fuzz-harness.sh', - ], - 'files': [ - # Grab current directory. This avoids adding logic for checking the - # existence of the jsfunfuzz subdirectory. - './', - ], - }, - 'includes': [ - '../../src/d8.isolate', - ], -} diff --git a/deps/v8/tools/mb/mb.py b/deps/v8/tools/mb/mb.py index b97ce455c2513f..b2ae0c763f6a15 100755 --- a/deps/v8/tools/mb/mb.py +++ b/deps/v8/tools/mb/mb.py @@ -233,10 +233,6 @@ def AddCommonOptions(subp): self.args = parser.parse_args(argv) - # TODO(machenbach): This prepares passing swarming targets to isolate on the - # infra side. - self.args.swarming_targets_file = None - def DumpInputFiles(self): def DumpContentsOfFilePassedTo(arg_name, path): @@ -393,7 +389,7 @@ def _DefaultDimensions(self): elif self.platform.startswith('linux'): os_dim = ('os', 'Ubuntu-14.04') elif self.platform == 'win32': - os_dim = ('os', 'Windows-10-14393') + os_dim = ('os', 'Windows-10') else: raise MBErr('unrecognized platform string "%s"' % self.platform) diff --git a/deps/v8/tools/mb/mb_unittest.py b/deps/v8/tools/mb/mb_unittest.py index 0413457eab2999..dbd599645d6752 100755 --- a/deps/v8/tools/mb/mb_unittest.py +++ b/deps/v8/tools/mb/mb_unittest.py @@ -360,8 +360,6 @@ def test_gen_fails(self): mbw.Call = lambda cmd, env=None, buffer_output=True: (1, '', '') self.check(['gen', '-c', 'debug_goma', '//out/Default'], mbw=mbw, ret=1) - # TODO(machenbach): Comment back in after swarming file parameter is used. - """ def test_gen_swarming(self): files = { '/tmp/swarming_targets': 'base_unittests\n', @@ -549,7 +547,6 @@ def run_stub(cmd, **_kwargs): 'base_unittests'], mbw=mbw, ret=0) self.check(['run', '-s', '-c', 'debug_goma', '-d', 'os', 'Win7', '//out/Default', 'base_unittests'], mbw=mbw, ret=0) - """ # pylint: disable=pointless-string-statement def test_lookup(self): self.check(['lookup', '-c', 'debug_goma'], ret=0) diff --git a/deps/v8/tools/node/fetch_deps.py b/deps/v8/tools/node/fetch_deps.py index 09a4e6cb97c8aa..945dbb7677f4f3 100755 --- a/deps/v8/tools/node/fetch_deps.py +++ b/deps/v8/tools/node/fetch_deps.py @@ -22,10 +22,10 @@ "managed" : False, "custom_deps" : { # These deps are already part of Node.js. - "v8/base/trace_event/common" : None, - "v8/testing/gtest" : None, - "v8/third_party/jinja2" : None, - "v8/third_party/markupsafe" : None, + "v8/base/trace_event/common" : None, + "v8/third_party/googletest/src" : None, + "v8/third_party/jinja2" : None, + "v8/third_party/markupsafe" : None, # These deps are unnecessary for building. "v8/test/benchmarks/data" : None, "v8/testing/gmock" : None, @@ -36,7 +36,6 @@ "v8/third_party/catapult" : None, "v8/third_party/colorama/src" : None, "v8/third_party/instrumented_libraries" : None, - "v8/tools/gyp" : None, "v8/tools/luci-go" : None, "v8/tools/swarming_client" : None, }, @@ -72,10 +71,11 @@ def FetchDeps(v8_path): env = os.environ.copy() # gclient needs to have depot_tools in the PATH. env["PATH"] = depot_tools + os.pathsep + env["PATH"] + gclient = os.path.join(depot_tools, "gclient.py") spec = "solutions = %s" % GCLIENT_SOLUTION - subprocess.check_call(["gclient", "sync", "--spec", spec], - cwd=os.path.join(v8_path, os.path.pardir), - env=env) + subprocess.check_call([sys.executable, gclient, "sync", "--spec", spec], + cwd=os.path.join(v8_path, os.path.pardir), + env=env) except: raise finally: diff --git a/deps/v8/tools/node/node_common.py b/deps/v8/tools/node/node_common.py index f7ca3a6a79c59b..72fbd9641aa44b 100755 --- a/deps/v8/tools/node/node_common.py +++ b/deps/v8/tools/node/node_common.py @@ -15,9 +15,8 @@ def EnsureDepotTools(v8_path, fetch_if_not_exist): def _Get(v8_path): depot_tools = os.path.join(v8_path, "_depot_tools") try: - gclient_path = os.path.join(depot_tools, "gclient") - gclient_check = subprocess.check_output([gclient_path, "--version"]) - if "gclient.py" in gclient_check: + gclient_path = os.path.join(depot_tools, "gclient.py") + if os.path.isfile(gclient_path): return depot_tools except: pass diff --git a/deps/v8/tools/node/test_update_node.py b/deps/v8/tools/node/test_update_node.py index 1a29b4ea619976..785517b8c85900 100755 --- a/deps/v8/tools/node/test_update_node.py +++ b/deps/v8/tools/node/test_update_node.py @@ -18,12 +18,16 @@ # Expectations. EXPECTED_GITIGNORE = """ -/testing/gtest/* -!/testing/gtest/include -/testing/gtest/include/* -!/testing/gtest/include/gtest -/testing/gtest/include/gtest/* -!/testing/gtest/include/gtest/gtest_prod.h +/third_party/googletest/* +!/third_party/googletest/src +/third_party/googletest/src/* +!/third_party/googletest/src/googletest +/third_party/googletest/src/googletest/* +!/third_party/googletest/src/googletest/include +/third_party/googletest/src/googletest/include/* +!/third_party/googletest/src/googletest/include/gtest +/third_party/googletest/src/googletest/include/gtest/* +!/third_party/googletest/src/googletest/include/gtest/gtest_prod.h !/third_party/jinja2 !/third_party/markupsafe /unrelated @@ -34,6 +38,7 @@ rename deps/v8/baz/{delete_me => v8_new} (100%) delete mode 100644 deps/v8/include/v8-version.h rename deps/v8/{delete_me => new/v8_new} (100%) + create mode 100644 deps/v8/third_party/googletest/src/googletest/include/gtest/gtest_prod.h create mode 100644 deps/v8/third_party/jinja2/jinja2 create mode 100644 deps/v8/third_party/markupsafe/markupsafe create mode 100644 deps/v8/v8_new @@ -43,9 +48,9 @@ 'v8_new', 'new/v8_new', 'baz/v8_new', - 'testing/gtest/gtest_new', - 'testing/gtest/new/gtest_new', - 'testing/gtest/baz/gtest_new', + '/third_party/googletest/src/googletest/include/gtest/gtest_new', + '/third_party/googletest/src/googletest/include/gtest/new/gtest_new', + '/third_party/googletest/src/googletest/include/gtest/baz/gtest_new', 'third_party/jinja2/jinja2', 'third_party/markupsafe/markupsafe' ] diff --git a/deps/v8/tools/node/testdata/v8/.gitignore b/deps/v8/tools/node/testdata/v8/.gitignore index 855286229f8dea..cc2f1ca20223bd 100644 --- a/deps/v8/tools/node/testdata/v8/.gitignore +++ b/deps/v8/tools/node/testdata/v8/.gitignore @@ -1,4 +1,3 @@ /unrelated -/testing/gtest /third_party/jinja2 -/third_party/markupsafe \ No newline at end of file +/third_party/markupsafe diff --git a/deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_foo b/deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_foo new file mode 100644 index 00000000000000..eb1ae458f8ee6e --- /dev/null +++ b/deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_foo @@ -0,0 +1 @@ +... diff --git a/deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_new b/deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_new new file mode 100644 index 00000000000000..eb1ae458f8ee6e --- /dev/null +++ b/deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_new @@ -0,0 +1 @@ +... diff --git a/deps/v8/tools/node/testdata/v8/testing/gtest/gtest_bar b/deps/v8/tools/node/testdata/v8/testing/gtest/gtest_bar new file mode 100644 index 00000000000000..eb1ae458f8ee6e --- /dev/null +++ b/deps/v8/tools/node/testdata/v8/testing/gtest/gtest_bar @@ -0,0 +1 @@ +... diff --git a/deps/v8/tools/node/testdata/v8/testing/gtest/gtest_new b/deps/v8/tools/node/testdata/v8/testing/gtest/gtest_new new file mode 100644 index 00000000000000..eb1ae458f8ee6e --- /dev/null +++ b/deps/v8/tools/node/testdata/v8/testing/gtest/gtest_new @@ -0,0 +1 @@ +... diff --git a/deps/v8/tools/node/testdata/v8/testing/gtest/new/gtest_new b/deps/v8/tools/node/testdata/v8/testing/gtest/new/gtest_new new file mode 100644 index 00000000000000..eb1ae458f8ee6e --- /dev/null +++ b/deps/v8/tools/node/testdata/v8/testing/gtest/new/gtest_new @@ -0,0 +1 @@ +... diff --git a/deps/v8/tools/node/update_node.py b/deps/v8/tools/node/update_node.py index 5d7e4daff4eabf..759e9d5aac72e2 100755 --- a/deps/v8/tools/node/update_node.py +++ b/deps/v8/tools/node/update_node.py @@ -34,23 +34,28 @@ TARGET_SUBDIR = os.path.join("deps", "v8") SUB_REPOSITORIES = [ ["base", "trace_event", "common"], - ["testing", "gtest"], + ["third_party", "googletest", "src"], ["third_party", "jinja2"], ["third_party", "markupsafe"] ] DELETE_FROM_GITIGNORE = [ "/base", - "/testing/gtest", + "/third_party/googletest/src", "/third_party/jinja2", "/third_party/markupsafe" ] # Node.js requires only a single header file from gtest to build V8. # Both jinja2 and markupsafe are required to generate part of the inspector. -ADD_TO_GITIGNORE = [ "/testing/gtest/*", - "!/testing/gtest/include", - "/testing/gtest/include/*", - "!/testing/gtest/include/gtest", - "/testing/gtest/include/gtest/*", - "!/testing/gtest/include/gtest/gtest_prod.h", +ADD_TO_GITIGNORE = [ "/third_party/googletest/*", + "!/third_party/googletest/BUILD.gn", + "!/third_party/googletest/src", + "/third_party/googletest/src/*", + "!/third_party/googletest/src/googletest", + "/third_party/googletest/src/googletest/*", + "!/third_party/googletest/src/googletest/include", + "/third_party/googletest/src/googletest/include/*", + "!/third_party/googletest/src/googletest/include/gtest", + "/third_party/googletest/src/googletest/include/gtest/*", + "!/third_party/googletest/src/googletest/include/gtest/gtest_prod.h", "!/third_party/jinja2", "!/third_party/markupsafe" ] diff --git a/deps/v8/tools/predictable_wrapper.py b/deps/v8/tools/predictable_wrapper.py index cf7bf00b3f6fab..c357c13b41b8bd 100644 --- a/deps/v8/tools/predictable_wrapper.py +++ b/deps/v8/tools/predictable_wrapper.py @@ -19,6 +19,7 @@ from testrunner.local import command MAX_TRIES = 3 +TIMEOUT = 120 def main(args): def allocation_str(stdout): @@ -27,7 +28,7 @@ def allocation_str(stdout): return line return None - cmd = command.Command(args[0], args[1:]) + cmd = command.Command(args[0], args[1:], timeout=TIMEOUT) previous_allocations = None for run in range(1, MAX_TRIES + 1): diff --git a/deps/v8/tools/presubmit.py b/deps/v8/tools/presubmit.py index 917b6e2383094e..29469be7589dc5 100755 --- a/deps/v8/tools/presubmit.py +++ b/deps/v8/tools/presubmit.py @@ -60,7 +60,9 @@ -build/header_guard -build/include_what_you_use -readability/fn_size +-readability/multiline_comment -runtime/references +-whitespace/comments """.split() LINT_OUTPUT_PATTERN = re.compile(r'^.+[:(]\d+[:)]|^Done processing') diff --git a/deps/v8/tools/release/auto_roll.py b/deps/v8/tools/release/auto_roll.py index b27675e60c86aa..ea83bfcd36dc8e 100755 --- a/deps/v8/tools/release/auto_roll.py +++ b/deps/v8/tools/release/auto_roll.py @@ -20,7 +20,7 @@ https://v8-roll.appspot.com/ This only works with a Google account. -CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel""") +CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;luci.chromium.try:android_optional_gpu_tests_rel""") class Preparation(Step): MESSAGE = "Preparation." @@ -40,7 +40,7 @@ def RunStep(self): self["last_roll"] = self._options.last_roll if not self["last_roll"]: # Interpret the DEPS file to retrieve the v8 revision. - # TODO(machenbach): This should be part or the roll-deps api of + # TODO(machenbach): This should be part or the setdep api of # depot_tools. Var = lambda var: '%s' exec(FileToText(os.path.join(self._options.chromium, "DEPS"))) @@ -140,7 +140,7 @@ def RunStep(self): self['json_output']['monitoring_state'] = 'upload' cwd = self._options.chromium # Patch DEPS file. - if self.Command("roll-dep-svn", "v8 %s" % + if self.Command("gclient", "setdep -r src/v8@%s" % self["roll"], cwd=cwd) is None: self.Die("Failed to create deps for %s" % self["roll"]) diff --git a/deps/v8/tools/release/test_scripts.py b/deps/v8/tools/release/test_scripts.py index 759012d83348ca..25aa803daf23ae 100755 --- a/deps/v8/tools/release/test_scripts.py +++ b/deps/v8/tools/release/test_scripts.py @@ -1037,7 +1037,7 @@ def CheckVersionCommit(): https://v8-roll.appspot.com/ This only works with a Google account. -CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel +CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;luci.chromium.try:android_optional_gpu_tests_rel TBR=reviewer@chromium.org""" @@ -1113,7 +1113,8 @@ def WriteDeps(): Cmd("git pull", "", cwd=chrome_dir), Cmd("git fetch origin", ""), Cmd("git new-branch work-branch", "", cwd=chrome_dir), - Cmd("roll-dep-svn v8 roll_hsh", "rolled", cb=WriteDeps, cwd=chrome_dir), + Cmd("gclient setdep -r src/v8@roll_hsh", "", cb=WriteDeps, + cwd=chrome_dir), Cmd(("git commit -am \"%s\" " "--author \"author@chromium.org \"" % self.ROLL_COMMIT_MSG), diff --git a/deps/v8/tools/release/testdata/v8/third_party/googletest/src/googletest/include/gtest/baz/gtest_new b/deps/v8/tools/release/testdata/v8/third_party/googletest/src/googletest/include/gtest/baz/gtest_new new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/deps/v8/tools/release/testdata/v8/third_party/googletest/src/googletest/include/gtest/gtest_new b/deps/v8/tools/release/testdata/v8/third_party/googletest/src/googletest/include/gtest/gtest_new new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/deps/v8/tools/release/testdata/v8/third_party/googletest/src/googletest/include/gtest/gtest_prod.h b/deps/v8/tools/release/testdata/v8/third_party/googletest/src/googletest/include/gtest/gtest_prod.h new file mode 100644 index 00000000000000..847c8bc75ed4fd --- /dev/null +++ b/deps/v8/tools/release/testdata/v8/third_party/googletest/src/googletest/include/gtest/gtest_prod.h @@ -0,0 +1 @@ +gtest_prod diff --git a/deps/v8/tools/release/testdata/v8/third_party/googletest/src/googletest/include/gtest/new/gtest_new b/deps/v8/tools/release/testdata/v8/third_party/googletest/src/googletest/include/gtest/new/gtest_new new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/deps/v8/tools/run-num-fuzzer.isolate b/deps/v8/tools/run-num-fuzzer.isolate deleted file mode 100644 index e9acbd4cb08455..00000000000000 --- a/deps/v8/tools/run-num-fuzzer.isolate +++ /dev/null @@ -1,20 +0,0 @@ -# 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. -{ - 'variables': { - 'command': [ - 'run-num-fuzzer.py', - ], - 'files': [ - 'run-num-fuzzer.py', - ], - }, - 'includes': [ - 'testrunner/testrunner.isolate', - '../src/d8.isolate', - '../test/benchmarks/benchmarks.isolate', - '../test/mjsunit/mjsunit.isolate', - '../test/webkit/webkit.isolate', - ], -} diff --git a/deps/v8/tools/run_perf.py b/deps/v8/tools/run_perf.py index e19f6a056bb022..2bd4372453d367 100755 --- a/deps/v8/tools/run_perf.py +++ b/deps/v8/tools/run_perf.py @@ -793,6 +793,12 @@ def _PushExecutable(self, shell_dir, target_dir, binary): target_dir, skip_if_missing=True, ) + self._PushFile( + shell_dir, + "snapshot_blob_trusted.bin", + target_dir, + skip_if_missing=True, + ) self._PushFile( shell_dir, "icudtl.dat", diff --git a/deps/v8/tools/testrunner/base_runner.py b/deps/v8/tools/testrunner/base_runner.py index 7721360e2a01a5..cfea1527d4af37 100644 --- a/deps/v8/tools/testrunner/base_runner.py +++ b/deps/v8/tools/testrunner/base_runner.py @@ -599,6 +599,10 @@ def _get_statusfile_variables(self, options): self.build_config.mips_arch_variant == "r6" and self.build_config.mips_use_msa) + mips_arch_variant = ( + self.build_config.arch in ['mipsel', 'mips', 'mips64', 'mips64el'] and + self.build_config.mips_arch_variant) + # TODO(all): Combine "simulator" and "simulator_run". # TODO(machenbach): In GN we can derive simulator run from # target_arch != v8_target_arch in the dumped build config. @@ -613,6 +617,7 @@ def _get_statusfile_variables(self, options): "gc_stress": False, "gcov_coverage": self.build_config.gcov_coverage, "isolates": options.isolates, + "mips_arch_variant": mips_arch_variant, "mode": self.mode_options.status_mode, "msan": self.build_config.msan, "no_harness": options.no_harness, diff --git a/deps/v8/tools/testrunner/local/statusfile.py b/deps/v8/tools/testrunner/local/statusfile.py index e3adaa298a60d0..ecfbf008a23997 100644 --- a/deps/v8/tools/testrunner/local/statusfile.py +++ b/deps/v8/tools/testrunner/local/statusfile.py @@ -59,7 +59,7 @@ "android_arm", "android_arm64", "android_ia32", "android_x64", "arm", "arm64", "ia32", "mips", "mipsel", "mips64", "mips64el", "x64", "ppc", "ppc64", "s390", "s390x", "macos", "windows", - "linux", "aix"]: + "linux", "aix", "r1", "r2", "r3", "r5", "r6"]: VARIABLES[var] = var # Allow using variants as keywords. diff --git a/deps/v8/tools/testrunner/local/variants.py b/deps/v8/tools/testrunner/local/variants.py index 25de235da1e645..1c29f1d1955ecf 100644 --- a/deps/v8/tools/testrunner/local/variants.py +++ b/deps/v8/tools/testrunner/local/variants.py @@ -17,13 +17,12 @@ "nooptimization": [["--noopt"]], "slow_path": [["--force-slow-path"]], "stress": [["--stress-opt", "--always-opt"]], - "stress_background_compile": [["--background-compile", "--stress-background-compile"]], + "stress_background_compile": [["--stress-background-compile"]], "stress_incremental_marking": [["--stress-incremental-marking"]], # Trigger stress sampling allocation profiler with sample interval = 2^14 "stress_sampling": [["--stress-sampling-allocation-profiler=16384"]], "trusted": [["--no-untrusted-code-mitigations"]], "wasm_traps": [["--wasm-trap-handler", "--invoke-weak-callbacks"]], - "wasm_no_native": [["--no-wasm-jit-to-native"]], } SLOW_VARIANTS = set([ diff --git a/deps/v8/tools/testrunner/standard_runner.py b/deps/v8/tools/testrunner/standard_runner.py index d3d2bd53a6fbe1..bea00476f4e63a 100755 --- a/deps/v8/tools/testrunner/standard_runner.py +++ b/deps/v8/tools/testrunner/standard_runner.py @@ -44,7 +44,7 @@ # Shortcut for the two above ("more" first - it has the longer running tests). "exhaustive": MORE_VARIANTS + VARIANTS, # Additional variants, run on a subset of bots. - "extra": ["future", "liftoff", "trusted", "wasm_no_native"], + "extra": ["future", "liftoff", "trusted"], } GC_STRESS_FLAGS = ["--gc-interval=500", "--stress-compaction", diff --git a/deps/v8/tools/testrunner/testrunner.isolate b/deps/v8/tools/testrunner/testrunner.isolate deleted file mode 100644 index 56667c20215b51..00000000000000 --- a/deps/v8/tools/testrunner/testrunner.isolate +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2015 the V8 project authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. -{ - 'variables': { - 'command': [ - '../run-tests.py', - ], - 'files': [ - '<(PRODUCT_DIR)/v8_build_config.json', - '../run-tests.py', - './' - ], - }, - 'conditions': [ - ['coverage==1 and sanitizer_coverage=="bb,trace-pc-guard"', { - 'variables': { - 'files': [ - '../sanitizers/sancov_merger.py', - '../../third_party/llvm/projects/compiler-rt/lib/sanitizer_common/scripts/sancov.py', - ], - }, - }], - ], -} diff --git a/deps/v8/tools/toolchain/BUILD.gn b/deps/v8/tools/toolchain/BUILD.gn index b2462054c4efad..b252c5eed5392c 100644 --- a/deps/v8/tools/toolchain/BUILD.gn +++ b/deps/v8/tools/toolchain/BUILD.gn @@ -15,9 +15,79 @@ gcc_toolchain("mips-bundled") { ar = "${toolprefix}ar" ld = cxx + # Flag that sets endianness + extra_ldflags = "-EB" + extra_cppflags = "-EB" + toolchain_args = { current_cpu = "mips" current_os = "linux" is_clang = false } } + +gcc_toolchain("mips64-bundled") { + toolprefix = rebase_path("//tools/mips_toolchain/bin/mips-mti-linux-gnu-", + root_build_dir) + cc = "${toolprefix}gcc" + cxx = "${toolprefix}g++" + + readelf = "${toolprefix}readelf" + nm = "${toolprefix}nm" + ar = "${toolprefix}ar" + ld = cxx + + # Flag that sets endianness and ABI + extra_ldflags = "-EB -mabi=64" + extra_cppflags = "-EB -mabi=64" + + toolchain_args = { + current_cpu = "mips64" + current_os = "linux" + is_clang = false + } +} + +gcc_toolchain("mipsel-bundled") { + toolprefix = rebase_path("//tools/mips_toolchain/bin/mips-mti-linux-gnu-", + root_build_dir) + cc = "${toolprefix}gcc" + cxx = "${toolprefix}g++" + + readelf = "${toolprefix}readelf" + nm = "${toolprefix}nm" + ar = "${toolprefix}ar" + ld = cxx + + # Flag that sets endianness + extra_ldflags = "-EL" + extra_cppflags = "-EL" + + toolchain_args = { + current_cpu = "mipsel" + current_os = "linux" + is_clang = false + } +} + +gcc_toolchain("mips64el-bundled") { + toolprefix = rebase_path("//tools/mips_toolchain/bin/mips-mti-linux-gnu-", + root_build_dir) + cc = "${toolprefix}gcc" + cxx = "${toolprefix}g++" + + readelf = "${toolprefix}readelf" + nm = "${toolprefix}nm" + ar = "${toolprefix}ar" + ld = cxx + + # Flag that sets endianness and ABI + extra_ldflags = "-EL -mabi=64" + extra_cppflags = "-EL -mabi=64" + + toolchain_args = { + current_cpu = "mips64el" + current_os = "linux" + is_clang = false + } +} diff --git a/deps/v8/tools/v8heapconst.py b/deps/v8/tools/v8heapconst.py index 5659cdd03c8814..1e57ce64a9e297 100644 --- a/deps/v8/tools/v8heapconst.py +++ b/deps/v8/tools/v8heapconst.py @@ -52,50 +52,67 @@ 148: "FIXED_BIGINT64_ARRAY_TYPE", 149: "FIXED_BIGUINT64_ARRAY_TYPE", 150: "FIXED_DOUBLE_ARRAY_TYPE", - 151: "FILLER_TYPE", - 152: "ACCESS_CHECK_INFO_TYPE", - 153: "ACCESSOR_INFO_TYPE", - 154: "ACCESSOR_PAIR_TYPE", - 155: "ALIASED_ARGUMENTS_ENTRY_TYPE", - 156: "ALLOCATION_MEMENTO_TYPE", - 157: "ALLOCATION_SITE_TYPE", - 158: "ASYNC_GENERATOR_REQUEST_TYPE", - 159: "CONTEXT_EXTENSION_TYPE", - 160: "DEBUG_INFO_TYPE", - 161: "FUNCTION_TEMPLATE_INFO_TYPE", - 162: "INTERCEPTOR_INFO_TYPE", - 163: "MODULE_INFO_ENTRY_TYPE", - 164: "MODULE_TYPE", - 165: "OBJECT_TEMPLATE_INFO_TYPE", - 166: "PROMISE_CAPABILITY_TYPE", - 167: "PROMISE_REACTION_TYPE", - 168: "PROTOTYPE_INFO_TYPE", - 169: "SCRIPT_TYPE", - 170: "STACK_FRAME_INFO_TYPE", - 171: "TUPLE2_TYPE", - 172: "TUPLE3_TYPE", - 173: "CALLABLE_TASK_TYPE", - 174: "CALLBACK_TASK_TYPE", - 175: "PROMISE_FULFILL_REACTION_JOB_TASK_TYPE", - 176: "PROMISE_REJECT_REACTION_JOB_TASK_TYPE", - 177: "PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE", - 178: "FIXED_ARRAY_TYPE", - 179: "DESCRIPTOR_ARRAY_TYPE", - 180: "HASH_TABLE_TYPE", - 181: "SCOPE_INFO_TYPE", - 182: "TRANSITION_ARRAY_TYPE", - 183: "CELL_TYPE", - 184: "CODE_DATA_CONTAINER_TYPE", - 185: "FEEDBACK_CELL_TYPE", - 186: "FEEDBACK_VECTOR_TYPE", - 187: "LOAD_HANDLER_TYPE", - 188: "PROPERTY_ARRAY_TYPE", - 189: "PROPERTY_CELL_TYPE", - 190: "SHARED_FUNCTION_INFO_TYPE", - 191: "SMALL_ORDERED_HASH_MAP_TYPE", - 192: "SMALL_ORDERED_HASH_SET_TYPE", - 193: "STORE_HANDLER_TYPE", - 194: "WEAK_CELL_TYPE", + 151: "FEEDBACK_METADATA_TYPE", + 152: "FILLER_TYPE", + 153: "ACCESS_CHECK_INFO_TYPE", + 154: "ACCESSOR_INFO_TYPE", + 155: "ACCESSOR_PAIR_TYPE", + 156: "ALIASED_ARGUMENTS_ENTRY_TYPE", + 157: "ALLOCATION_MEMENTO_TYPE", + 158: "ALLOCATION_SITE_TYPE", + 159: "ASYNC_GENERATOR_REQUEST_TYPE", + 160: "CONTEXT_EXTENSION_TYPE", + 161: "DEBUG_INFO_TYPE", + 162: "FUNCTION_TEMPLATE_INFO_TYPE", + 163: "INTERCEPTOR_INFO_TYPE", + 164: "INTERPRETER_DATA_TYPE", + 165: "MODULE_INFO_ENTRY_TYPE", + 166: "MODULE_TYPE", + 167: "OBJECT_TEMPLATE_INFO_TYPE", + 168: "PROMISE_CAPABILITY_TYPE", + 169: "PROMISE_REACTION_TYPE", + 170: "PROTOTYPE_INFO_TYPE", + 171: "SCRIPT_TYPE", + 172: "STACK_FRAME_INFO_TYPE", + 173: "TUPLE2_TYPE", + 174: "TUPLE3_TYPE", + 175: "WASM_COMPILED_MODULE_TYPE", + 176: "WASM_DEBUG_INFO_TYPE", + 177: "WASM_SHARED_MODULE_DATA_TYPE", + 178: "CALLABLE_TASK_TYPE", + 179: "CALLBACK_TASK_TYPE", + 180: "PROMISE_FULFILL_REACTION_JOB_TASK_TYPE", + 181: "PROMISE_REJECT_REACTION_JOB_TASK_TYPE", + 182: "PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE", + 183: "FIXED_ARRAY_TYPE", + 184: "BOILERPLATE_DESCRIPTION_TYPE", + 185: "DESCRIPTOR_ARRAY_TYPE", + 186: "HASH_TABLE_TYPE", + 187: "SCOPE_INFO_TYPE", + 188: "TRANSITION_ARRAY_TYPE", + 189: "BLOCK_CONTEXT_TYPE", + 190: "CATCH_CONTEXT_TYPE", + 191: "DEBUG_EVALUATE_CONTEXT_TYPE", + 192: "EVAL_CONTEXT_TYPE", + 193: "FUNCTION_CONTEXT_TYPE", + 194: "MODULE_CONTEXT_TYPE", + 195: "NATIVE_CONTEXT_TYPE", + 196: "SCRIPT_CONTEXT_TYPE", + 197: "WITH_CONTEXT_TYPE", + 198: "CALL_HANDLER_INFO_TYPE", + 199: "CELL_TYPE", + 200: "CODE_DATA_CONTAINER_TYPE", + 201: "FEEDBACK_CELL_TYPE", + 202: "FEEDBACK_VECTOR_TYPE", + 203: "LOAD_HANDLER_TYPE", + 204: "PROPERTY_ARRAY_TYPE", + 205: "PROPERTY_CELL_TYPE", + 206: "SHARED_FUNCTION_INFO_TYPE", + 207: "SMALL_ORDERED_HASH_MAP_TYPE", + 208: "SMALL_ORDERED_HASH_SET_TYPE", + 209: "STORE_HANDLER_TYPE", + 210: "WEAK_CELL_TYPE", + 211: "WEAK_FIXED_ARRAY_TYPE", 1024: "JS_PROXY_TYPE", 1025: "JS_GLOBAL_OBJECT_TYPE", 1026: "JS_GLOBAL_PROXY_TYPE", @@ -106,201 +123,173 @@ 1057: "JS_OBJECT_TYPE", 1058: "JS_ARGUMENTS_TYPE", 1059: "JS_ARRAY_BUFFER_TYPE", - 1060: "JS_ARRAY_TYPE", - 1061: "JS_ASYNC_FROM_SYNC_ITERATOR_TYPE", - 1062: "JS_ASYNC_GENERATOR_OBJECT_TYPE", - 1063: "JS_CONTEXT_EXTENSION_OBJECT_TYPE", - 1064: "JS_DATE_TYPE", - 1065: "JS_ERROR_TYPE", - 1066: "JS_GENERATOR_OBJECT_TYPE", - 1067: "JS_MAP_TYPE", - 1068: "JS_MAP_KEY_ITERATOR_TYPE", - 1069: "JS_MAP_KEY_VALUE_ITERATOR_TYPE", - 1070: "JS_MAP_VALUE_ITERATOR_TYPE", - 1071: "JS_MESSAGE_OBJECT_TYPE", - 1072: "JS_PROMISE_TYPE", - 1073: "JS_REGEXP_TYPE", - 1074: "JS_SET_TYPE", - 1075: "JS_SET_KEY_VALUE_ITERATOR_TYPE", - 1076: "JS_SET_VALUE_ITERATOR_TYPE", - 1077: "JS_STRING_ITERATOR_TYPE", - 1078: "JS_WEAK_MAP_TYPE", - 1079: "JS_WEAK_SET_TYPE", - 1080: "JS_TYPED_ARRAY_TYPE", - 1081: "JS_DATA_VIEW_TYPE", - 1082: "JS_TYPED_ARRAY_KEY_ITERATOR_TYPE", - 1083: "JS_FAST_ARRAY_KEY_ITERATOR_TYPE", - 1084: "JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE", - 1085: "JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1086: "JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1087: "JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1088: "JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1089: "JS_UINT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1090: "JS_INT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1091: "JS_FLOAT32_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1092: "JS_FLOAT64_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1093: "JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1094: "JS_BIGUINT64_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1095: "JS_BIGINT64_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1096: "JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1097: "JS_FAST_HOLEY_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1098: "JS_FAST_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1099: "JS_FAST_HOLEY_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1100: "JS_FAST_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1101: "JS_FAST_HOLEY_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1102: "JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE", - 1103: "JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE", - 1104: "JS_INT8_ARRAY_VALUE_ITERATOR_TYPE", - 1105: "JS_UINT16_ARRAY_VALUE_ITERATOR_TYPE", - 1106: "JS_INT16_ARRAY_VALUE_ITERATOR_TYPE", - 1107: "JS_UINT32_ARRAY_VALUE_ITERATOR_TYPE", - 1108: "JS_INT32_ARRAY_VALUE_ITERATOR_TYPE", - 1109: "JS_FLOAT32_ARRAY_VALUE_ITERATOR_TYPE", - 1110: "JS_FLOAT64_ARRAY_VALUE_ITERATOR_TYPE", - 1111: "JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE", - 1112: "JS_BIGUINT64_ARRAY_VALUE_ITERATOR_TYPE", - 1113: "JS_BIGINT64_ARRAY_VALUE_ITERATOR_TYPE", - 1114: "JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE", - 1115: "JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE", - 1116: "JS_FAST_ARRAY_VALUE_ITERATOR_TYPE", - 1117: "JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE", - 1118: "JS_FAST_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE", - 1119: "JS_FAST_HOLEY_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE", - 1120: "JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE", - 1121: "WASM_INSTANCE_TYPE", - 1122: "WASM_MEMORY_TYPE", - 1123: "WASM_MODULE_TYPE", - 1124: "WASM_TABLE_TYPE", - 1125: "JS_BOUND_FUNCTION_TYPE", - 1126: "JS_FUNCTION_TYPE", + 1060: "JS_ARRAY_ITERATOR_TYPE", + 1061: "JS_ARRAY_TYPE", + 1062: "JS_ASYNC_FROM_SYNC_ITERATOR_TYPE", + 1063: "JS_ASYNC_GENERATOR_OBJECT_TYPE", + 1064: "JS_CONTEXT_EXTENSION_OBJECT_TYPE", + 1065: "JS_DATE_TYPE", + 1066: "JS_ERROR_TYPE", + 1067: "JS_GENERATOR_OBJECT_TYPE", + 1068: "JS_MAP_TYPE", + 1069: "JS_MAP_KEY_ITERATOR_TYPE", + 1070: "JS_MAP_KEY_VALUE_ITERATOR_TYPE", + 1071: "JS_MAP_VALUE_ITERATOR_TYPE", + 1072: "JS_MESSAGE_OBJECT_TYPE", + 1073: "JS_PROMISE_TYPE", + 1074: "JS_REGEXP_TYPE", + 1075: "JS_REGEXP_STRING_ITERATOR_TYPE", + 1076: "JS_SET_TYPE", + 1077: "JS_SET_KEY_VALUE_ITERATOR_TYPE", + 1078: "JS_SET_VALUE_ITERATOR_TYPE", + 1079: "JS_STRING_ITERATOR_TYPE", + 1080: "JS_WEAK_MAP_TYPE", + 1081: "JS_WEAK_SET_TYPE", + 1082: "JS_TYPED_ARRAY_TYPE", + 1083: "JS_DATA_VIEW_TYPE", + 1084: "WASM_GLOBAL_TYPE", + 1085: "WASM_INSTANCE_TYPE", + 1086: "WASM_MEMORY_TYPE", + 1087: "WASM_MODULE_TYPE", + 1088: "WASM_TABLE_TYPE", + 1089: "JS_BOUND_FUNCTION_TYPE", + 1090: "JS_FUNCTION_TYPE", } # List of known V8 maps. KNOWN_MAPS = { - 0x02201: (138, "FreeSpaceMap"), - 0x02251: (132, "MetaMap"), - 0x022a1: (131, "NullMap"), - 0x022f1: (179, "DescriptorArrayMap"), - 0x02341: (178, "FixedArrayMap"), - 0x02391: (151, "OnePointerFillerMap"), - 0x023e1: (151, "TwoPointerFillerMap"), - 0x02431: (131, "UninitializedMap"), - 0x02481: (8, "OneByteInternalizedStringMap"), - 0x024d1: (131, "UndefinedMap"), - 0x02521: (129, "HeapNumberMap"), - 0x02571: (131, "TheHoleMap"), - 0x025c1: (131, "BooleanMap"), - 0x02611: (136, "ByteArrayMap"), - 0x02661: (178, "FixedCOWArrayMap"), - 0x026b1: (180, "HashTableMap"), - 0x02701: (128, "SymbolMap"), - 0x02751: (72, "OneByteStringMap"), - 0x027a1: (181, "ScopeInfoMap"), - 0x027f1: (190, "SharedFunctionInfoMap"), - 0x02841: (133, "CodeMap"), - 0x02891: (178, "FunctionContextMap"), - 0x028e1: (183, "CellMap"), - 0x02931: (194, "WeakCellMap"), - 0x02981: (189, "GlobalPropertyCellMap"), - 0x029d1: (135, "ForeignMap"), - 0x02a21: (182, "TransitionArrayMap"), - 0x02a71: (186, "FeedbackVectorMap"), - 0x02ac1: (131, "ArgumentsMarkerMap"), - 0x02b11: (131, "ExceptionMap"), - 0x02b61: (131, "TerminationExceptionMap"), - 0x02bb1: (131, "OptimizedOutMap"), - 0x02c01: (131, "StaleRegisterMap"), - 0x02c51: (178, "NativeContextMap"), - 0x02ca1: (178, "ModuleContextMap"), - 0x02cf1: (178, "EvalContextMap"), - 0x02d41: (178, "ScriptContextMap"), - 0x02d91: (178, "BlockContextMap"), - 0x02de1: (178, "CatchContextMap"), - 0x02e31: (178, "WithContextMap"), - 0x02e81: (178, "DebugEvaluateContextMap"), - 0x02ed1: (178, "ScriptContextTableMap"), - 0x02f21: (178, "ArrayListMap"), - 0x02f71: (150, "FixedDoubleArrayMap"), - 0x02fc1: (134, "MutableHeapNumberMap"), - 0x03011: (180, "OrderedHashMapMap"), - 0x03061: (180, "OrderedHashSetMap"), - 0x030b1: (180, "NameDictionaryMap"), - 0x03101: (180, "GlobalDictionaryMap"), - 0x03151: (180, "NumberDictionaryMap"), - 0x031a1: (180, "SimpleNumberDictionaryMap"), - 0x031f1: (180, "StringTableMap"), - 0x03241: (180, "WeakHashTableMap"), - 0x03291: (178, "SloppyArgumentsElementsMap"), - 0x032e1: (191, "SmallOrderedHashMapMap"), - 0x03331: (192, "SmallOrderedHashSetMap"), - 0x03381: (184, "CodeDataContainerMap"), - 0x033d1: (1071, "JSMessageObjectMap"), - 0x03421: (1057, "ExternalMap"), - 0x03471: (137, "BytecodeArrayMap"), - 0x034c1: (178, "ModuleInfoMap"), - 0x03511: (185, "NoClosuresCellMap"), - 0x03561: (185, "OneClosureCellMap"), - 0x035b1: (185, "ManyClosuresCellMap"), - 0x03601: (188, "PropertyArrayMap"), - 0x03651: (130, "BigIntMap"), - 0x036a1: (106, "NativeSourceStringMap"), - 0x036f1: (64, "StringMap"), - 0x03741: (73, "ConsOneByteStringMap"), - 0x03791: (65, "ConsStringMap"), - 0x037e1: (77, "ThinOneByteStringMap"), - 0x03831: (69, "ThinStringMap"), - 0x03881: (67, "SlicedStringMap"), - 0x038d1: (75, "SlicedOneByteStringMap"), - 0x03921: (66, "ExternalStringMap"), - 0x03971: (82, "ExternalStringWithOneByteDataMap"), - 0x039c1: (74, "ExternalOneByteStringMap"), - 0x03a11: (98, "ShortExternalStringMap"), - 0x03a61: (114, "ShortExternalStringWithOneByteDataMap"), - 0x03ab1: (0, "InternalizedStringMap"), - 0x03b01: (2, "ExternalInternalizedStringMap"), - 0x03b51: (18, "ExternalInternalizedStringWithOneByteDataMap"), - 0x03ba1: (10, "ExternalOneByteInternalizedStringMap"), - 0x03bf1: (34, "ShortExternalInternalizedStringMap"), - 0x03c41: (50, "ShortExternalInternalizedStringWithOneByteDataMap"), - 0x03c91: (42, "ShortExternalOneByteInternalizedStringMap"), - 0x03ce1: (106, "ShortExternalOneByteStringMap"), - 0x03d31: (140, "FixedUint8ArrayMap"), - 0x03d81: (139, "FixedInt8ArrayMap"), - 0x03dd1: (142, "FixedUint16ArrayMap"), - 0x03e21: (141, "FixedInt16ArrayMap"), - 0x03e71: (144, "FixedUint32ArrayMap"), - 0x03ec1: (143, "FixedInt32ArrayMap"), - 0x03f11: (145, "FixedFloat32ArrayMap"), - 0x03f61: (146, "FixedFloat64ArrayMap"), - 0x03fb1: (147, "FixedUint8ClampedArrayMap"), - 0x04001: (149, "FixedBigUint64ArrayMap"), - 0x04051: (148, "FixedBigInt64ArrayMap"), - 0x040a1: (171, "Tuple2Map"), - 0x040f1: (169, "ScriptMap"), - 0x04141: (162, "InterceptorInfoMap"), - 0x04191: (153, "AccessorInfoMap"), - 0x041e1: (152, "AccessCheckInfoMap"), - 0x04231: (154, "AccessorPairMap"), - 0x04281: (155, "AliasedArgumentsEntryMap"), - 0x042d1: (156, "AllocationMementoMap"), - 0x04321: (157, "AllocationSiteMap"), - 0x04371: (158, "AsyncGeneratorRequestMap"), - 0x043c1: (159, "ContextExtensionMap"), - 0x04411: (160, "DebugInfoMap"), - 0x04461: (161, "FunctionTemplateInfoMap"), - 0x044b1: (163, "ModuleInfoEntryMap"), - 0x04501: (164, "ModuleMap"), - 0x04551: (165, "ObjectTemplateInfoMap"), - 0x045a1: (166, "PromiseCapabilityMap"), - 0x045f1: (167, "PromiseReactionMap"), - 0x04641: (168, "PrototypeInfoMap"), - 0x04691: (170, "StackFrameInfoMap"), - 0x046e1: (172, "Tuple3Map"), - 0x04731: (173, "CallableTaskMap"), - 0x04781: (174, "CallbackTaskMap"), - 0x047d1: (175, "PromiseFulfillReactionJobTaskMap"), - 0x04821: (176, "PromiseRejectReactionJobTaskMap"), - 0x04871: (177, "PromiseResolveThenableJobTaskMap"), + ("MAP_SPACE", 0x02201): (138, "FreeSpaceMap"), + ("MAP_SPACE", 0x02259): (132, "MetaMap"), + ("MAP_SPACE", 0x022b1): (131, "NullMap"), + ("MAP_SPACE", 0x02309): (185, "DescriptorArrayMap"), + ("MAP_SPACE", 0x02361): (183, "FixedArrayMap"), + ("MAP_SPACE", 0x023b9): (152, "OnePointerFillerMap"), + ("MAP_SPACE", 0x02411): (152, "TwoPointerFillerMap"), + ("MAP_SPACE", 0x02469): (131, "UninitializedMap"), + ("MAP_SPACE", 0x024c1): (8, "OneByteInternalizedStringMap"), + ("MAP_SPACE", 0x02519): (131, "UndefinedMap"), + ("MAP_SPACE", 0x02571): (129, "HeapNumberMap"), + ("MAP_SPACE", 0x025c9): (131, "TheHoleMap"), + ("MAP_SPACE", 0x02621): (131, "BooleanMap"), + ("MAP_SPACE", 0x02679): (136, "ByteArrayMap"), + ("MAP_SPACE", 0x026d1): (183, "FixedCOWArrayMap"), + ("MAP_SPACE", 0x02729): (186, "HashTableMap"), + ("MAP_SPACE", 0x02781): (128, "SymbolMap"), + ("MAP_SPACE", 0x027d9): (72, "OneByteStringMap"), + ("MAP_SPACE", 0x02831): (187, "ScopeInfoMap"), + ("MAP_SPACE", 0x02889): (206, "SharedFunctionInfoMap"), + ("MAP_SPACE", 0x028e1): (133, "CodeMap"), + ("MAP_SPACE", 0x02939): (193, "FunctionContextMap"), + ("MAP_SPACE", 0x02991): (199, "CellMap"), + ("MAP_SPACE", 0x029e9): (210, "WeakCellMap"), + ("MAP_SPACE", 0x02a41): (205, "GlobalPropertyCellMap"), + ("MAP_SPACE", 0x02a99): (135, "ForeignMap"), + ("MAP_SPACE", 0x02af1): (188, "TransitionArrayMap"), + ("MAP_SPACE", 0x02b49): (202, "FeedbackVectorMap"), + ("MAP_SPACE", 0x02ba1): (131, "ArgumentsMarkerMap"), + ("MAP_SPACE", 0x02bf9): (131, "ExceptionMap"), + ("MAP_SPACE", 0x02c51): (131, "TerminationExceptionMap"), + ("MAP_SPACE", 0x02ca9): (131, "OptimizedOutMap"), + ("MAP_SPACE", 0x02d01): (131, "StaleRegisterMap"), + ("MAP_SPACE", 0x02d59): (195, "NativeContextMap"), + ("MAP_SPACE", 0x02db1): (194, "ModuleContextMap"), + ("MAP_SPACE", 0x02e09): (192, "EvalContextMap"), + ("MAP_SPACE", 0x02e61): (196, "ScriptContextMap"), + ("MAP_SPACE", 0x02eb9): (189, "BlockContextMap"), + ("MAP_SPACE", 0x02f11): (190, "CatchContextMap"), + ("MAP_SPACE", 0x02f69): (197, "WithContextMap"), + ("MAP_SPACE", 0x02fc1): (191, "DebugEvaluateContextMap"), + ("MAP_SPACE", 0x03019): (183, "ScriptContextTableMap"), + ("MAP_SPACE", 0x03071): (151, "FeedbackMetadataArrayMap"), + ("MAP_SPACE", 0x030c9): (183, "ArrayListMap"), + ("MAP_SPACE", 0x03121): (130, "BigIntMap"), + ("MAP_SPACE", 0x03179): (184, "BoilerplateDescriptionMap"), + ("MAP_SPACE", 0x031d1): (137, "BytecodeArrayMap"), + ("MAP_SPACE", 0x03229): (200, "CodeDataContainerMap"), + ("MAP_SPACE", 0x03281): (1057, "ExternalMap"), + ("MAP_SPACE", 0x032d9): (150, "FixedDoubleArrayMap"), + ("MAP_SPACE", 0x03331): (186, "GlobalDictionaryMap"), + ("MAP_SPACE", 0x03389): (201, "ManyClosuresCellMap"), + ("MAP_SPACE", 0x033e1): (1072, "JSMessageObjectMap"), + ("MAP_SPACE", 0x03439): (183, "ModuleInfoMap"), + ("MAP_SPACE", 0x03491): (134, "MutableHeapNumberMap"), + ("MAP_SPACE", 0x034e9): (186, "NameDictionaryMap"), + ("MAP_SPACE", 0x03541): (201, "NoClosuresCellMap"), + ("MAP_SPACE", 0x03599): (186, "NumberDictionaryMap"), + ("MAP_SPACE", 0x035f1): (201, "OneClosureCellMap"), + ("MAP_SPACE", 0x03649): (186, "OrderedHashMapMap"), + ("MAP_SPACE", 0x036a1): (186, "OrderedHashSetMap"), + ("MAP_SPACE", 0x036f9): (204, "PropertyArrayMap"), + ("MAP_SPACE", 0x03751): (198, "SideEffectCallHandlerInfoMap"), + ("MAP_SPACE", 0x037a9): (198, "SideEffectFreeCallHandlerInfoMap"), + ("MAP_SPACE", 0x03801): (186, "SimpleNumberDictionaryMap"), + ("MAP_SPACE", 0x03859): (183, "SloppyArgumentsElementsMap"), + ("MAP_SPACE", 0x038b1): (207, "SmallOrderedHashMapMap"), + ("MAP_SPACE", 0x03909): (208, "SmallOrderedHashSetMap"), + ("MAP_SPACE", 0x03961): (186, "StringTableMap"), + ("MAP_SPACE", 0x039b9): (211, "WeakFixedArrayMap"), + ("MAP_SPACE", 0x03a11): (106, "NativeSourceStringMap"), + ("MAP_SPACE", 0x03a69): (64, "StringMap"), + ("MAP_SPACE", 0x03ac1): (73, "ConsOneByteStringMap"), + ("MAP_SPACE", 0x03b19): (65, "ConsStringMap"), + ("MAP_SPACE", 0x03b71): (77, "ThinOneByteStringMap"), + ("MAP_SPACE", 0x03bc9): (69, "ThinStringMap"), + ("MAP_SPACE", 0x03c21): (67, "SlicedStringMap"), + ("MAP_SPACE", 0x03c79): (75, "SlicedOneByteStringMap"), + ("MAP_SPACE", 0x03cd1): (66, "ExternalStringMap"), + ("MAP_SPACE", 0x03d29): (82, "ExternalStringWithOneByteDataMap"), + ("MAP_SPACE", 0x03d81): (74, "ExternalOneByteStringMap"), + ("MAP_SPACE", 0x03dd9): (98, "ShortExternalStringMap"), + ("MAP_SPACE", 0x03e31): (114, "ShortExternalStringWithOneByteDataMap"), + ("MAP_SPACE", 0x03e89): (0, "InternalizedStringMap"), + ("MAP_SPACE", 0x03ee1): (2, "ExternalInternalizedStringMap"), + ("MAP_SPACE", 0x03f39): (18, "ExternalInternalizedStringWithOneByteDataMap"), + ("MAP_SPACE", 0x03f91): (10, "ExternalOneByteInternalizedStringMap"), + ("MAP_SPACE", 0x03fe9): (34, "ShortExternalInternalizedStringMap"), + ("MAP_SPACE", 0x04041): (50, "ShortExternalInternalizedStringWithOneByteDataMap"), + ("MAP_SPACE", 0x04099): (42, "ShortExternalOneByteInternalizedStringMap"), + ("MAP_SPACE", 0x040f1): (106, "ShortExternalOneByteStringMap"), + ("MAP_SPACE", 0x04149): (140, "FixedUint8ArrayMap"), + ("MAP_SPACE", 0x041a1): (139, "FixedInt8ArrayMap"), + ("MAP_SPACE", 0x041f9): (142, "FixedUint16ArrayMap"), + ("MAP_SPACE", 0x04251): (141, "FixedInt16ArrayMap"), + ("MAP_SPACE", 0x042a9): (144, "FixedUint32ArrayMap"), + ("MAP_SPACE", 0x04301): (143, "FixedInt32ArrayMap"), + ("MAP_SPACE", 0x04359): (145, "FixedFloat32ArrayMap"), + ("MAP_SPACE", 0x043b1): (146, "FixedFloat64ArrayMap"), + ("MAP_SPACE", 0x04409): (147, "FixedUint8ClampedArrayMap"), + ("MAP_SPACE", 0x04461): (149, "FixedBigUint64ArrayMap"), + ("MAP_SPACE", 0x044b9): (148, "FixedBigInt64ArrayMap"), + ("MAP_SPACE", 0x04511): (173, "Tuple2Map"), + ("MAP_SPACE", 0x04569): (171, "ScriptMap"), + ("MAP_SPACE", 0x045c1): (163, "InterceptorInfoMap"), + ("MAP_SPACE", 0x04619): (154, "AccessorInfoMap"), + ("MAP_SPACE", 0x04671): (153, "AccessCheckInfoMap"), + ("MAP_SPACE", 0x046c9): (155, "AccessorPairMap"), + ("MAP_SPACE", 0x04721): (156, "AliasedArgumentsEntryMap"), + ("MAP_SPACE", 0x04779): (157, "AllocationMementoMap"), + ("MAP_SPACE", 0x047d1): (158, "AllocationSiteMap"), + ("MAP_SPACE", 0x04829): (159, "AsyncGeneratorRequestMap"), + ("MAP_SPACE", 0x04881): (160, "ContextExtensionMap"), + ("MAP_SPACE", 0x048d9): (161, "DebugInfoMap"), + ("MAP_SPACE", 0x04931): (162, "FunctionTemplateInfoMap"), + ("MAP_SPACE", 0x04989): (164, "InterpreterDataMap"), + ("MAP_SPACE", 0x049e1): (165, "ModuleInfoEntryMap"), + ("MAP_SPACE", 0x04a39): (166, "ModuleMap"), + ("MAP_SPACE", 0x04a91): (167, "ObjectTemplateInfoMap"), + ("MAP_SPACE", 0x04ae9): (168, "PromiseCapabilityMap"), + ("MAP_SPACE", 0x04b41): (169, "PromiseReactionMap"), + ("MAP_SPACE", 0x04b99): (170, "PrototypeInfoMap"), + ("MAP_SPACE", 0x04bf1): (172, "StackFrameInfoMap"), + ("MAP_SPACE", 0x04c49): (174, "Tuple3Map"), + ("MAP_SPACE", 0x04ca1): (175, "WasmCompiledModuleMap"), + ("MAP_SPACE", 0x04cf9): (176, "WasmDebugInfoMap"), + ("MAP_SPACE", 0x04d51): (177, "WasmSharedModuleDataMap"), + ("MAP_SPACE", 0x04da9): (178, "CallableTaskMap"), + ("MAP_SPACE", 0x04e01): (179, "CallbackTaskMap"), + ("MAP_SPACE", 0x04e59): (180, "PromiseFulfillReactionJobTaskMap"), + ("MAP_SPACE", 0x04eb1): (181, "PromiseRejectReactionJobTaskMap"), + ("MAP_SPACE", 0x04f09): (182, "PromiseResolveThenableJobTaskMap"), } # List of known V8 objects. @@ -322,34 +311,35 @@ ("OLD_SPACE", 0x02519): "TerminationException", ("OLD_SPACE", 0x02579): "OptimizedOut", ("OLD_SPACE", 0x025d1): "StaleRegister", - ("OLD_SPACE", 0x02651): "EmptyByteArray", - ("OLD_SPACE", 0x02661): "EmptyFixedUint8Array", - ("OLD_SPACE", 0x02681): "EmptyFixedInt8Array", - ("OLD_SPACE", 0x026a1): "EmptyFixedUint16Array", - ("OLD_SPACE", 0x026c1): "EmptyFixedInt16Array", - ("OLD_SPACE", 0x026e1): "EmptyFixedUint32Array", - ("OLD_SPACE", 0x02701): "EmptyFixedInt32Array", - ("OLD_SPACE", 0x02721): "EmptyFixedFloat32Array", - ("OLD_SPACE", 0x02741): "EmptyFixedFloat64Array", - ("OLD_SPACE", 0x02761): "EmptyFixedUint8ClampedArray", - ("OLD_SPACE", 0x027c1): "EmptyScript", - ("OLD_SPACE", 0x02849): "ManyClosuresCell", - ("OLD_SPACE", 0x02859): "EmptySloppyArgumentsElements", - ("OLD_SPACE", 0x02879): "EmptySlowElementDictionary", - ("OLD_SPACE", 0x028c1): "EmptyOrderedHashMap", - ("OLD_SPACE", 0x028e9): "EmptyOrderedHashSet", - ("OLD_SPACE", 0x02911): "EmptyPropertyCell", - ("OLD_SPACE", 0x02939): "EmptyWeakCell", - ("OLD_SPACE", 0x029a9): "NoElementsProtector", - ("OLD_SPACE", 0x029d1): "IsConcatSpreadableProtector", - ("OLD_SPACE", 0x029e1): "SpeciesProtector", - ("OLD_SPACE", 0x02a09): "StringLengthProtector", - ("OLD_SPACE", 0x02a19): "FastArrayIterationProtector", - ("OLD_SPACE", 0x02a29): "ArrayIteratorProtector", - ("OLD_SPACE", 0x02a51): "ArrayBufferNeuteringProtector", - ("OLD_SPACE", 0x02ac9): "InfinityValue", - ("OLD_SPACE", 0x02ad9): "MinusZeroValue", - ("OLD_SPACE", 0x02ae9): "MinusInfinityValue", + ("OLD_SPACE", 0x02661): "EmptyByteArray", + ("OLD_SPACE", 0x02681): "EmptyFixedUint8Array", + ("OLD_SPACE", 0x026a1): "EmptyFixedInt8Array", + ("OLD_SPACE", 0x026c1): "EmptyFixedUint16Array", + ("OLD_SPACE", 0x026e1): "EmptyFixedInt16Array", + ("OLD_SPACE", 0x02701): "EmptyFixedUint32Array", + ("OLD_SPACE", 0x02721): "EmptyFixedInt32Array", + ("OLD_SPACE", 0x02741): "EmptyFixedFloat32Array", + ("OLD_SPACE", 0x02761): "EmptyFixedFloat64Array", + ("OLD_SPACE", 0x02781): "EmptyFixedUint8ClampedArray", + ("OLD_SPACE", 0x027e1): "EmptyScript", + ("OLD_SPACE", 0x02879): "ManyClosuresCell", + ("OLD_SPACE", 0x02889): "EmptySloppyArgumentsElements", + ("OLD_SPACE", 0x028a9): "EmptySlowElementDictionary", + ("OLD_SPACE", 0x028f1): "EmptyOrderedHashMap", + ("OLD_SPACE", 0x02919): "EmptyOrderedHashSet", + ("OLD_SPACE", 0x02951): "EmptyPropertyCell", + ("OLD_SPACE", 0x02979): "EmptyWeakCell", + ("OLD_SPACE", 0x029e9): "NoElementsProtector", + ("OLD_SPACE", 0x02a11): "IsConcatSpreadableProtector", + ("OLD_SPACE", 0x02a21): "ArraySpeciesProtector", + ("OLD_SPACE", 0x02a49): "TypedArraySpeciesProtector", + ("OLD_SPACE", 0x02a71): "PromiseSpeciesProtector", + ("OLD_SPACE", 0x02a99): "StringLengthProtector", + ("OLD_SPACE", 0x02aa9): "ArrayIteratorProtector", + ("OLD_SPACE", 0x02ad1): "ArrayBufferNeuteringProtector", + ("OLD_SPACE", 0x02b59): "InfinityValue", + ("OLD_SPACE", 0x02b69): "MinusZeroValue", + ("OLD_SPACE", 0x02b79): "MinusInfinityValue", } # List of known V8 Frame Markers. @@ -360,7 +350,6 @@ "OPTIMIZED", "WASM_COMPILED", "WASM_TO_JS", - "WASM_TO_WASM", "JS_TO_WASM", "WASM_INTERPRETER_ENTRY", "C_WASM_ENTRY", @@ -368,6 +357,7 @@ "STUB", "BUILTIN_CONTINUATION", "JAVA_SCRIPT_BUILTIN_CONTINUATION", + "JAVA_SCRIPT_BUILTIN_CONTINUATION_WITH_CATCH", "INTERNAL", "CONSTRUCT", "ARGUMENTS_ADAPTOR", diff --git a/deps/v8/tools/valgrind/asan/dummy b/deps/v8/tools/valgrind/asan/dummy new file mode 100644 index 00000000000000..0e89814954ce81 --- /dev/null +++ b/deps/v8/tools/valgrind/asan/dummy @@ -0,0 +1,2 @@ +# src/base has some more tools in this folder, which we don't use. But we need +# to have the folder so that the data deps we inherit doesn't error out. \ No newline at end of file diff --git a/deps/v8/tools/whitespace.txt b/deps/v8/tools/whitespace.txt index 2367b2ccc89323..ed5e51f96a63e8 100644 --- a/deps/v8/tools/whitespace.txt +++ b/deps/v8/tools/whitespace.txt @@ -7,6 +7,6 @@ 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....................... . .