From 272f4945cc7d80f0961f16ca3427c7cefe2a9aee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Wed, 7 Jun 2017 11:17:43 +0200 Subject: [PATCH] deps: update V8 to 5.9.211.35 PR-URL: https://github.com/nodejs/node/pull/13515 Reviewed-By: James M Snell Reviewed-By: Anna Henningsen --- deps/v8/.gitignore | 46 +- deps/v8/.gn | 6 +- deps/v8/AUTHORS | 3 +- deps/v8/BUILD.gn | 439 +- deps/v8/ChangeLog | 1145 +++++ deps/v8/DEPS | 20 +- deps/v8/OWNERS | 1 - deps/v8/PRESUBMIT.py | 28 + deps/v8/gni/isolate.gni | 7 - deps/v8/gni/v8.gni | 6 +- deps/v8/gypfiles/all.gyp | 12 +- deps/v8/gypfiles/features.gypi | 3 + deps/v8/gypfiles/isolate.gypi | 1 - deps/v8/gypfiles/standalone.gypi | 27 +- deps/v8/gypfiles/toolchain.gypi | 3 +- deps/v8/include/libplatform/libplatform.h | 3 + deps/v8/include/v8-platform.h | 8 + deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8.h | 500 ++- deps/v8/infra/config/cq.cfg | 6 +- deps/v8/infra/mb/mb_config.pyl | 69 +- deps/v8/src/DEPS | 3 + deps/v8/src/OWNERS | 1 + deps/v8/src/api-natives.cc | 52 +- deps/v8/src/api.cc | 654 +-- deps/v8/src/api.h | 15 +- deps/v8/src/arm/assembler-arm-inl.h | 67 +- deps/v8/src/arm/assembler-arm.cc | 576 ++- deps/v8/src/arm/assembler-arm.h | 503 +-- deps/v8/src/arm/code-stubs-arm.cc | 406 +- deps/v8/src/arm/code-stubs-arm.h | 4 +- deps/v8/src/arm/codegen-arm.cc | 16 +- deps/v8/src/arm/deoptimizer-arm.cc | 40 +- deps/v8/src/arm/disasm-arm.cc | 230 +- deps/v8/src/arm/interface-descriptors-arm.cc | 57 +- deps/v8/src/arm/macro-assembler-arm.cc | 225 +- deps/v8/src/arm/macro-assembler-arm.h | 104 +- deps/v8/src/arm/simulator-arm.cc | 1202 +++--- deps/v8/src/arm/simulator-arm.h | 8 +- deps/v8/src/arm64/assembler-arm64-inl.h | 55 +- deps/v8/src/arm64/assembler-arm64.cc | 63 +- deps/v8/src/arm64/assembler-arm64.h | 182 +- deps/v8/src/arm64/code-stubs-arm64.cc | 487 +-- deps/v8/src/arm64/code-stubs-arm64.h | 40 +- deps/v8/src/arm64/codegen-arm64.cc | 2 + deps/v8/src/arm64/constants-arm64.h | 11 +- deps/v8/src/arm64/deoptimizer-arm64.cc | 53 +- deps/v8/src/arm64/disasm-arm64.cc | 11 +- deps/v8/src/arm64/eh-frame-arm64.cc | 1 + deps/v8/src/arm64/instructions-arm64.cc | 21 +- deps/v8/src/arm64/instructions-arm64.h | 10 +- deps/v8/src/arm64/instrument-arm64.cc | 60 +- .../src/arm64/interface-descriptors-arm64.cc | 56 +- deps/v8/src/arm64/macro-assembler-arm64-inl.h | 27 +- deps/v8/src/arm64/macro-assembler-arm64.cc | 182 +- deps/v8/src/arm64/macro-assembler-arm64.h | 93 +- deps/v8/src/arm64/simulator-arm64.cc | 314 +- deps/v8/src/arm64/simulator-arm64.h | 91 + deps/v8/src/asmjs/asm-js.cc | 138 +- deps/v8/src/asmjs/asm-names.h | 110 + deps/v8/src/asmjs/asm-parser.cc | 2449 +++++++++++ deps/v8/src/asmjs/asm-parser.h | 316 ++ deps/v8/src/asmjs/asm-scanner.cc | 431 ++ deps/v8/src/asmjs/asm-scanner.h | 165 + deps/v8/src/asmjs/asm-wasm-builder.cc | 12 +- deps/v8/src/assembler.cc | 130 +- deps/v8/src/assembler.h | 81 +- deps/v8/src/ast/ast-expression-rewriter.cc | 9 +- deps/v8/src/ast/ast-numbering.cc | 75 +- deps/v8/src/ast/ast-numbering.h | 30 +- deps/v8/src/ast/ast-traversal-visitor.h | 9 +- deps/v8/src/ast/ast-types.cc | 4 +- deps/v8/src/ast/ast-value-factory.cc | 86 +- deps/v8/src/ast/ast-value-factory.h | 211 +- deps/v8/src/ast/ast.cc | 68 +- deps/v8/src/ast/ast.h | 175 +- deps/v8/src/ast/context-slot-cache.h | 2 +- deps/v8/src/ast/modules.h | 3 +- deps/v8/src/ast/prettyprinter.cc | 73 +- deps/v8/src/ast/scopes.cc | 264 +- deps/v8/src/ast/scopes.h | 77 +- deps/v8/src/ast/variables.h | 6 + deps/v8/src/background-parsing-task.cc | 9 +- deps/v8/src/bailout-reason.h | 12 +- deps/v8/src/base/cpu.cc | 3 + deps/v8/src/base/cpu.h | 2 + deps/v8/src/base/debug/stack_trace.h | 2 +- deps/v8/src/base/iterator.h | 7 +- deps/v8/src/base/logging.cc | 16 +- deps/v8/src/base/logging.h | 3 + deps/v8/src/base/platform/mutex.cc | 2 +- deps/v8/src/base/platform/platform-aix.cc | 15 +- deps/v8/src/base/platform/platform-cygwin.cc | 13 +- deps/v8/src/base/platform/platform-freebsd.cc | 23 +- deps/v8/src/base/platform/platform-linux.cc | 19 +- deps/v8/src/base/platform/platform-macos.cc | 22 +- deps/v8/src/base/platform/platform-openbsd.cc | 23 +- deps/v8/src/base/platform/platform-posix.cc | 35 +- deps/v8/src/base/platform/platform-posix.h | 28 + deps/v8/src/base/platform/platform-qnx.cc | 23 +- deps/v8/src/base/platform/platform-solaris.cc | 15 +- deps/v8/src/base/platform/platform-win32.cc | 70 +- deps/v8/src/base/platform/platform.h | 14 +- deps/v8/src/base/timezone-cache.h | 38 + deps/v8/src/bootstrapper.cc | 678 +-- deps/v8/src/bootstrapper.h | 25 +- deps/v8/src/builtins/arm/builtins-arm.cc | 211 +- deps/v8/src/builtins/arm64/builtins-arm64.cc | 206 +- ...arguments.cc => builtins-arguments-gen.cc} | 47 +- ...s-arguments.h => builtins-arguments-gen.h} | 0 deps/v8/src/builtins/builtins-array-gen.cc | 2173 ++++++++++ deps/v8/src/builtins/builtins-array.cc | 1608 ------- deps/v8/src/builtins/builtins-arraybuffer.cc | 262 +- ...tion.cc => builtins-async-function-gen.cc} | 47 +- ...uiltins-async.cc => builtins-async-gen.cc} | 69 +- ...{builtins-async.h => builtins-async-gen.h} | 12 +- .../builtins/builtins-async-generator-gen.cc | 569 +++ ...ator.cc => builtins-async-iterator-gen.cc} | 134 +- deps/v8/src/builtins/builtins-boolean-gen.cc | 37 + deps/v8/src/builtins/builtins-boolean.cc | 30 - deps/v8/src/builtins/builtins-call-gen.cc | 95 + deps/v8/src/builtins/builtins-call.cc | 83 +- deps/v8/src/builtins/builtins-callsite.cc | 1 + ...tructor.cc => builtins-constructor-gen.cc} | 237 +- .../src/builtins/builtins-constructor-gen.h | 53 + deps/v8/src/builtins/builtins-constructor.h | 59 +- .../src/builtins/builtins-conversion-gen.cc | 399 ++ deps/v8/src/builtins/builtins-conversion.cc | 507 --- deps/v8/src/builtins/builtins-dataview.cc | 4 +- deps/v8/src/builtins/builtins-date-gen.cc | 258 ++ deps/v8/src/builtins/builtins-date.cc | 276 -- deps/v8/src/builtins/builtins-definitions.h | 1036 +++++ deps/v8/src/builtins/builtins-descriptors.h | 52 + deps/v8/src/builtins/builtins-forin-gen.cc | 206 + deps/v8/src/builtins/builtins-forin-gen.h | 34 + deps/v8/src/builtins/builtins-function-gen.cc | 180 + deps/v8/src/builtins/builtins-function.cc | 210 +- ...generator.cc => builtins-generator-gen.cc} | 47 +- deps/v8/src/builtins/builtins-global-gen.cc | 108 + deps/v8/src/builtins/builtins-global.cc | 108 - ...ins-handler.cc => builtins-handler-gen.cc} | 109 +- .../{builtins-ic.cc => builtins-ic-gen.cc} | 13 +- deps/v8/src/builtins/builtins-internal-gen.cc | 168 + deps/v8/src/builtins/builtins-internal.cc | 273 -- .../src/builtins/builtins-interpreter-gen.cc | 77 + deps/v8/src/builtins/builtins-interpreter.cc | 84 +- deps/v8/src/builtins/builtins-intl.cc | 108 + deps/v8/src/builtins/builtins-math-gen.cc | 538 +++ deps/v8/src/builtins/builtins-math.cc | 437 -- deps/v8/src/builtins/builtins-number-gen.cc | 1452 +++++++ deps/v8/src/builtins/builtins-number.cc | 1390 ------- deps/v8/src/builtins/builtins-object-gen.cc | 404 ++ deps/v8/src/builtins/builtins-object.cc | 449 -- deps/v8/src/builtins/builtins-object.h | 26 - ...ins-promise.cc => builtins-promise-gen.cc} | 449 +- ...ltins-promise.h => builtins-promise-gen.h} | 4 +- deps/v8/src/builtins/builtins-regexp-gen.cc | 2869 +++++++++++++ ...uiltins-regexp.h => builtins-regexp-gen.h} | 41 +- deps/v8/src/builtins/builtins-regexp.cc | 2698 +----------- .../builtins-sharedarraybuffer-gen.cc | 521 +++ .../builtins/builtins-sharedarraybuffer.cc | 377 +- deps/v8/src/builtins/builtins-string-gen.cc | 1659 ++++++++ deps/v8/src/builtins/builtins-string.cc | 1619 +------- deps/v8/src/builtins/builtins-symbol-gen.cc | 47 + deps/v8/src/builtins/builtins-symbol.cc | 46 - .../src/builtins/builtins-typedarray-gen.cc | 743 ++++ deps/v8/src/builtins/builtins-typedarray.cc | 418 +- deps/v8/src/builtins/builtins-utils-gen.h | 57 + deps/v8/src/builtins/builtins-utils.h | 29 - ...{builtins-wasm.cc => builtins-wasm-gen.cc} | 2 +- deps/v8/src/builtins/builtins.cc | 245 +- deps/v8/src/builtins/builtins.h | 882 +--- deps/v8/src/builtins/ia32/builtins-ia32.cc | 241 +- deps/v8/src/builtins/mips/builtins-mips.cc | 216 +- .../v8/src/builtins/mips64/builtins-mips64.cc | 211 +- deps/v8/src/builtins/ppc/builtins-ppc.cc | 220 +- deps/v8/src/builtins/s390/builtins-s390.cc | 222 +- .../src/builtins/setup-builtins-internal.cc | 202 + deps/v8/src/builtins/x64/builtins-x64.cc | 216 +- deps/v8/src/builtins/x87/builtins-x87.cc | 237 +- deps/v8/src/callable.h | 33 + deps/v8/src/code-events.h | 10 +- deps/v8/src/code-factory.cc | 147 +- deps/v8/src/code-factory.h | 54 +- deps/v8/src/code-stub-assembler.cc | 2298 +++++----- deps/v8/src/code-stub-assembler.h | 147 +- deps/v8/src/code-stubs-hydrogen.cc | 1 + deps/v8/src/code-stubs-utils.h | 49 + deps/v8/src/code-stubs.cc | 1935 ++------- deps/v8/src/code-stubs.h | 165 +- deps/v8/src/compilation-cache.cc | 13 +- deps/v8/src/compilation-cache.h | 2 +- deps/v8/src/compilation-dependencies.cc | 2 +- deps/v8/src/compilation-dependencies.h | 2 +- deps/v8/src/compilation-info.cc | 4 +- deps/v8/src/compilation-info.h | 2 +- .../compiler-dispatcher-job.cc | 122 +- .../compiler-dispatcher-job.h | 25 +- .../compiler-dispatcher.cc | 330 +- .../compiler-dispatcher/compiler-dispatcher.h | 45 +- deps/v8/src/compiler.cc | 375 +- deps/v8/src/compiler.h | 15 +- deps/v8/src/compiler/OWNERS | 7 +- deps/v8/src/compiler/access-builder.cc | 10 + deps/v8/src/compiler/access-builder.h | 4 + deps/v8/src/compiler/access-info.cc | 14 +- deps/v8/src/compiler/access-info.h | 5 +- .../v8/src/compiler/arm/code-generator-arm.cc | 627 ++- .../src/compiler/arm/instruction-codes-arm.h | 206 +- .../compiler/arm/instruction-scheduler-arm.cc | 206 +- .../compiler/arm/instruction-selector-arm.cc | 515 ++- .../compiler/arm64/code-generator-arm64.cc | 167 +- .../arm64/instruction-selector-arm64.cc | 151 +- .../arm64/unwinding-info-writer-arm64.cc | 2 + deps/v8/src/compiler/ast-graph-builder.cc | 39 +- .../compiler/ast-loop-assignment-analyzer.cc | 8 +- deps/v8/src/compiler/branch-elimination.cc | 3 +- deps/v8/src/compiler/branch-elimination.h | 2 +- .../v8/src/compiler/bytecode-graph-builder.cc | 688 ++- deps/v8/src/compiler/bytecode-graph-builder.h | 72 +- deps/v8/src/compiler/c-linkage.cc | 2 +- deps/v8/src/compiler/code-assembler.cc | 201 +- deps/v8/src/compiler/code-assembler.h | 73 +- deps/v8/src/compiler/code-generator-impl.h | 9 - deps/v8/src/compiler/code-generator.cc | 19 +- deps/v8/src/compiler/code-generator.h | 2 + deps/v8/src/compiler/common-operator.cc | 25 +- deps/v8/src/compiler/common-operator.h | 8 +- deps/v8/src/compiler/control-equivalence.cc | 16 +- deps/v8/src/compiler/control-equivalence.h | 46 +- .../src/compiler/effect-control-linearizer.cc | 288 +- .../src/compiler/effect-control-linearizer.h | 6 +- .../src/compiler/escape-analysis-reducer.cc | 136 + .../v8/src/compiler/escape-analysis-reducer.h | 4 + deps/v8/src/compiler/escape-analysis.cc | 78 + deps/v8/src/compiler/escape-analysis.h | 2 + deps/v8/src/compiler/gap-resolver.cc | 7 +- deps/v8/src/compiler/graph-assembler.cc | 8 +- deps/v8/src/compiler/graph-assembler.h | 3 + deps/v8/src/compiler/graph-replay.cc | 92 - deps/v8/src/compiler/graph-replay.h | 40 - deps/v8/src/compiler/graph.h | 53 - .../src/compiler/ia32/code-generator-ia32.cc | 190 +- .../compiler/ia32/instruction-codes-ia32.h | 10 +- .../ia32/instruction-scheduler-ia32.cc | 12 +- .../ia32/instruction-selector-ia32.cc | 226 +- deps/v8/src/compiler/instruction-codes.h | 35 + deps/v8/src/compiler/instruction-scheduler.cc | 37 + deps/v8/src/compiler/instruction-selector.cc | 822 ++-- deps/v8/src/compiler/instruction-selector.h | 5 +- deps/v8/src/compiler/instruction.h | 74 +- deps/v8/src/compiler/int64-lowering.cc | 61 +- deps/v8/src/compiler/int64-lowering.h | 6 +- deps/v8/src/compiler/js-builtin-reducer.cc | 332 +- deps/v8/src/compiler/js-builtin-reducer.h | 3 +- deps/v8/src/compiler/js-call-reducer.cc | 110 +- deps/v8/src/compiler/js-call-reducer.h | 15 +- .../src/compiler/js-context-specialization.cc | 17 + .../src/compiler/js-context-specialization.h | 11 +- deps/v8/src/compiler/js-create-lowering.cc | 109 +- deps/v8/src/compiler/js-generic-lowering.cc | 215 +- deps/v8/src/compiler/js-inlining-heuristic.cc | 26 +- deps/v8/src/compiler/js-inlining.cc | 89 +- deps/v8/src/compiler/js-intrinsic-lowering.cc | 41 +- deps/v8/src/compiler/js-intrinsic-lowering.h | 4 + .../js-native-context-specialization.cc | 287 +- .../js-native-context-specialization.h | 21 +- deps/v8/src/compiler/js-operator.cc | 112 +- deps/v8/src/compiler/js-operator.h | 94 +- deps/v8/src/compiler/js-type-hint-lowering.cc | 215 +- deps/v8/src/compiler/js-type-hint-lowering.h | 56 +- deps/v8/src/compiler/js-typed-lowering.cc | 293 +- deps/v8/src/compiler/js-typed-lowering.h | 7 +- deps/v8/src/compiler/linkage.cc | 2 +- deps/v8/src/compiler/load-elimination.cc | 57 +- .../src/compiler/loop-variable-optimizer.cc | 5 +- .../v8/src/compiler/machine-graph-verifier.cc | 50 +- deps/v8/src/compiler/machine-operator.cc | 607 +-- deps/v8/src/compiler/machine-operator.h | 347 +- .../src/compiler/mips/code-generator-mips.cc | 212 +- .../compiler/mips/instruction-codes-mips.h | 24 +- .../mips/instruction-selector-mips.cc | 152 +- .../compiler/mips64/code-generator-mips64.cc | 184 +- .../mips64/instruction-codes-mips64.h | 24 +- .../mips64/instruction-selector-mips64.cc | 158 +- deps/v8/src/compiler/node-matchers.h | 3 + deps/v8/src/compiler/node-properties.cc | 7 +- deps/v8/src/compiler/node-properties.h | 5 +- deps/v8/src/compiler/opcodes.h | 396 +- deps/v8/src/compiler/operation-typer.cc | 44 +- deps/v8/src/compiler/operation-typer.h | 7 +- deps/v8/src/compiler/operator-properties.cc | 2 - deps/v8/src/compiler/osr.cc | 3 - deps/v8/src/compiler/pipeline.cc | 82 +- .../v8/src/compiler/ppc/code-generator-ppc.cc | 69 +- .../compiler/ppc/instruction-selector-ppc.cc | 60 + deps/v8/src/compiler/raw-machine-assembler.cc | 40 +- deps/v8/src/compiler/raw-machine-assembler.h | 41 + deps/v8/src/compiler/register-allocator.cc | 7 +- deps/v8/src/compiler/representation-change.cc | 93 +- deps/v8/src/compiler/representation-change.h | 82 +- .../src/compiler/s390/code-generator-s390.cc | 962 +++-- .../compiler/s390/instruction-codes-s390.h | 2 + .../s390/instruction-scheduler-s390.cc | 2 + .../s390/instruction-selector-s390.cc | 1446 ++++--- deps/v8/src/compiler/schedule.cc | 25 +- deps/v8/src/compiler/schedule.h | 12 +- deps/v8/src/compiler/scheduler.cc | 64 +- deps/v8/src/compiler/scheduler.h | 10 +- deps/v8/src/compiler/simd-scalar-lowering.cc | 423 +- deps/v8/src/compiler/simd-scalar-lowering.h | 40 +- deps/v8/src/compiler/simplified-lowering.cc | 269 +- deps/v8/src/compiler/simplified-operator.cc | 206 +- deps/v8/src/compiler/simplified-operator.h | 41 +- .../v8/src/compiler/tail-call-optimization.cc | 90 +- deps/v8/src/compiler/typed-optimization.cc | 29 +- deps/v8/src/compiler/typed-optimization.h | 2 + deps/v8/src/compiler/typer.cc | 128 +- deps/v8/src/compiler/types.cc | 4 +- deps/v8/src/compiler/types.h | 4 +- deps/v8/src/compiler/verifier.cc | 92 +- deps/v8/src/compiler/wasm-compiler.cc | 1363 +++--- deps/v8/src/compiler/wasm-compiler.h | 57 +- deps/v8/src/compiler/wasm-linkage.cc | 2 +- .../v8/src/compiler/x64/code-generator-x64.cc | 282 +- .../src/compiler/x64/instruction-codes-x64.h | 25 +- .../compiler/x64/instruction-scheduler-x64.cc | 27 +- .../compiler/x64/instruction-selector-x64.cc | 282 +- .../v8/src/compiler/x87/code-generator-x87.cc | 1 + .../compiler/x87/instruction-selector-x87.cc | 8 + deps/v8/src/context-measure.cc | 78 - deps/v8/src/context-measure.h | 49 - deps/v8/src/contexts-inl.h | 1 + deps/v8/src/contexts.h | 117 +- deps/v8/src/counters.cc | 242 +- deps/v8/src/counters.h | 227 +- deps/v8/src/crankshaft/arm/lithium-arm.cc | 11 +- deps/v8/src/crankshaft/arm/lithium-arm.h | 5 +- .../src/crankshaft/arm/lithium-codegen-arm.cc | 22 +- .../src/crankshaft/arm/lithium-codegen-arm.h | 9 +- .../arm/lithium-gap-resolver-arm.cc | 4 +- .../crankshaft/arm64/delayed-masm-arm64-inl.h | 17 + .../crankshaft/arm64/delayed-masm-arm64.cc | 2 + .../src/crankshaft/arm64/delayed-masm-arm64.h | 19 +- deps/v8/src/crankshaft/arm64/lithium-arm64.cc | 17 +- deps/v8/src/crankshaft/arm64/lithium-arm64.h | 5 +- .../crankshaft/arm64/lithium-codegen-arm64.cc | 12 +- .../arm64/lithium-gap-resolver-arm64.cc | 14 +- .../arm64/lithium-gap-resolver-arm64.h | 12 +- .../src/crankshaft/hydrogen-alias-analysis.h | 2 +- deps/v8/src/crankshaft/hydrogen-gvn.cc | 28 +- .../src/crankshaft/hydrogen-instructions.cc | 2 - .../v8/src/crankshaft/hydrogen-instructions.h | 5 +- deps/v8/src/crankshaft/hydrogen.cc | 373 +- deps/v8/src/crankshaft/hydrogen.h | 12 +- .../crankshaft/ia32/lithium-codegen-ia32.cc | 20 +- .../crankshaft/ia32/lithium-codegen-ia32.h | 9 +- deps/v8/src/crankshaft/ia32/lithium-ia32.cc | 13 +- deps/v8/src/crankshaft/ia32/lithium-ia32.h | 4 +- deps/v8/src/crankshaft/lithium-codegen.cc | 4 +- .../crankshaft/mips/lithium-codegen-mips.cc | 58 +- .../crankshaft/mips/lithium-codegen-mips.h | 9 +- .../mips/lithium-gap-resolver-mips.cc | 13 +- deps/v8/src/crankshaft/mips/lithium-mips.cc | 12 +- deps/v8/src/crankshaft/mips/lithium-mips.h | 4 +- .../mips64/lithium-codegen-mips64.cc | 18 +- .../mips64/lithium-codegen-mips64.h | 9 +- .../src/crankshaft/mips64/lithium-mips64.cc | 12 +- .../v8/src/crankshaft/mips64/lithium-mips64.h | 4 +- .../src/crankshaft/ppc/lithium-codegen-ppc.cc | 7 +- deps/v8/src/crankshaft/ppc/lithium-ppc.cc | 2 - deps/v8/src/crankshaft/ppc/lithium-ppc.h | 1 - .../crankshaft/s390/lithium-codegen-s390.cc | 32 +- deps/v8/src/crankshaft/typing.cc | 7 +- .../src/crankshaft/x64/lithium-codegen-x64.cc | 20 +- .../src/crankshaft/x64/lithium-codegen-x64.h | 9 +- deps/v8/src/crankshaft/x64/lithium-x64.cc | 14 +- deps/v8/src/crankshaft/x64/lithium-x64.h | 4 +- .../src/crankshaft/x87/lithium-codegen-x87.cc | 20 +- .../src/crankshaft/x87/lithium-codegen-x87.h | 9 +- deps/v8/src/crankshaft/x87/lithium-x87.cc | 13 +- deps/v8/src/crankshaft/x87/lithium-x87.h | 4 +- deps/v8/src/d8.cc | 230 +- deps/v8/src/d8.h | 11 +- deps/v8/src/date.cc | 20 +- deps/v8/src/date.h | 24 +- deps/v8/src/debug/arm/debug-arm.cc | 32 +- deps/v8/src/debug/arm64/debug-arm64.cc | 7 +- deps/v8/src/debug/debug-coverage.cc | 178 +- deps/v8/src/debug/debug-coverage.h | 24 +- deps/v8/src/debug/debug-evaluate.cc | 222 +- deps/v8/src/debug/debug-interface.h | 79 +- deps/v8/src/debug/debug-scopes.cc | 5 +- deps/v8/src/debug/debug.cc | 208 +- deps/v8/src/debug/debug.h | 31 +- deps/v8/src/debug/interface-types.h | 19 + deps/v8/src/debug/liveedit.cc | 2 - deps/v8/src/debug/mirrors.js | 15 +- deps/v8/src/deoptimizer.cc | 356 +- deps/v8/src/deoptimizer.h | 41 +- deps/v8/src/disassembler.cc | 12 +- deps/v8/src/elements-kind.h | 7 +- deps/v8/src/elements.cc | 463 ++- deps/v8/src/elements.h | 18 +- deps/v8/src/execution.cc | 2 +- .../v8/src/extensions/statistics-extension.cc | 2 +- deps/v8/src/external-reference-table.cc | 22 +- deps/v8/src/external-reference-table.h | 4 +- deps/v8/src/factory.cc | 135 +- deps/v8/src/factory.h | 43 +- deps/v8/src/feedback-vector-inl.h | 17 +- deps/v8/src/feedback-vector.cc | 375 +- deps/v8/src/feedback-vector.h | 112 +- deps/v8/src/ffi/ffi-compiler.cc | 6 +- deps/v8/src/field-index-inl.h | 3 +- deps/v8/src/find-and-replace-pattern.h | 4 +- deps/v8/src/flag-definitions.h | 132 +- deps/v8/src/flags.h | 2 +- deps/v8/src/frames.cc | 44 +- deps/v8/src/frames.h | 10 +- .../src/full-codegen/arm/full-codegen-arm.cc | 15 +- .../full-codegen/arm64/full-codegen-arm64.cc | 14 +- deps/v8/src/full-codegen/full-codegen.cc | 44 +- deps/v8/src/full-codegen/full-codegen.h | 3 +- .../full-codegen/ia32/full-codegen-ia32.cc | 12 +- .../full-codegen/mips/full-codegen-mips.cc | 12 +- .../mips64/full-codegen-mips64.cc | 12 +- .../src/full-codegen/ppc/full-codegen-ppc.cc | 12 +- .../full-codegen/s390/full-codegen-s390.cc | 13 +- .../src/full-codegen/x64/full-codegen-x64.cc | 12 +- .../src/full-codegen/x87/full-codegen-x87.cc | 12 +- deps/v8/src/global-handles.cc | 54 +- deps/v8/src/global-handles.h | 45 +- deps/v8/src/globals.h | 123 +- deps/v8/src/handles-inl.h | 2 + deps/v8/src/handles.cc | 3 + deps/v8/src/handles.h | 45 +- deps/v8/src/heap-symbols.h | 7 +- deps/v8/src/heap/array-buffer-tracker.cc | 5 +- deps/v8/src/heap/concurrent-marking.cc | 161 + deps/v8/src/heap/concurrent-marking.h | 44 + deps/v8/src/heap/gc-tracer.cc | 42 +- deps/v8/src/heap/gc-tracer.h | 16 +- deps/v8/src/heap/heap-inl.h | 2 +- deps/v8/src/heap/heap.cc | 189 +- deps/v8/src/heap/heap.h | 115 +- deps/v8/src/heap/incremental-marking.cc | 133 +- deps/v8/src/heap/incremental-marking.h | 24 +- deps/v8/src/heap/mark-compact-inl.h | 59 +- deps/v8/src/heap/mark-compact.cc | 1013 +++-- deps/v8/src/heap/mark-compact.h | 233 +- deps/v8/src/heap/marking.h | 190 +- deps/v8/src/heap/object-stats.cc | 5 +- deps/v8/src/heap/objects-visiting-inl.h | 34 +- deps/v8/src/heap/objects-visiting.cc | 21 +- deps/v8/src/heap/objects-visiting.h | 121 +- deps/v8/src/heap/page-parallel-job.h | 4 +- deps/v8/src/heap/remembered-set.h | 132 +- deps/v8/src/heap/scavenger.cc | 33 +- deps/v8/src/heap/spaces-inl.h | 37 +- deps/v8/src/heap/spaces.cc | 245 +- deps/v8/src/heap/spaces.h | 213 +- deps/v8/src/heap/store-buffer.cc | 2 +- deps/v8/src/i18n.cc | 385 +- deps/v8/src/i18n.h | 40 + deps/v8/src/ia32/assembler-ia32-inl.h | 59 +- deps/v8/src/ia32/assembler-ia32.cc | 210 +- deps/v8/src/ia32/assembler-ia32.h | 155 +- deps/v8/src/ia32/code-stubs-ia32.cc | 398 +- deps/v8/src/ia32/codegen-ia32.cc | 4 +- deps/v8/src/ia32/deoptimizer-ia32.cc | 25 +- deps/v8/src/ia32/disasm-ia32.cc | 210 +- .../v8/src/ia32/interface-descriptors-ia32.cc | 45 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 268 +- deps/v8/src/ia32/macro-assembler-ia32.h | 60 +- deps/v8/src/ia32/sse-instr.h | 57 + deps/v8/src/ic/access-compiler.cc | 29 +- deps/v8/src/ic/access-compiler.h | 11 +- deps/v8/src/ic/accessor-assembler.cc | 1272 ++++-- deps/v8/src/ic/accessor-assembler.h | 43 +- deps/v8/src/ic/arm/access-compiler-arm.cc | 2 + deps/v8/src/ic/arm/handler-compiler-arm.cc | 190 +- deps/v8/src/ic/arm/ic-arm.cc | 2 + deps/v8/src/ic/arm64/access-compiler-arm64.cc | 1 + .../v8/src/ic/arm64/handler-compiler-arm64.cc | 183 +- deps/v8/src/ic/arm64/ic-arm64.cc | 4 +- deps/v8/src/ic/binary-op-assembler.cc | 827 ++++ deps/v8/src/ic/binary-op-assembler.h | 45 + deps/v8/src/ic/handler-compiler.cc | 289 +- deps/v8/src/ic/handler-compiler.h | 92 +- deps/v8/src/ic/handler-configuration-inl.h | 118 +- deps/v8/src/ic/handler-configuration.h | 131 +- deps/v8/src/ic/ia32/handler-compiler-ia32.cc | 192 +- deps/v8/src/ic/ic-inl.h | 36 +- deps/v8/src/ic/ic.cc | 1202 +++--- deps/v8/src/ic/ic.h | 81 +- deps/v8/src/ic/keyed-store-generic.cc | 228 +- deps/v8/src/ic/keyed-store-generic.h | 6 + deps/v8/src/ic/mips/handler-compiler-mips.cc | 187 +- .../src/ic/mips64/handler-compiler-mips64.cc | 187 +- deps/v8/src/ic/ppc/handler-compiler-ppc.cc | 187 +- deps/v8/src/ic/s390/handler-compiler-s390.cc | 181 +- deps/v8/src/ic/stub-cache.cc | 6 +- deps/v8/src/ic/x64/handler-compiler-x64.cc | 200 +- deps/v8/src/ic/x87/handler-compiler-x87.cc | 193 +- deps/v8/src/identity-map.cc | 10 +- deps/v8/src/identity-map.h | 8 +- .../src/inspector/injected-script-source.js | 324 +- deps/v8/src/inspector/injected-script.cc | 9 +- .../src/inspector/injected_script_externs.js | 38 + deps/v8/src/inspector/inspected-context.cc | 35 +- deps/v8/src/inspector/inspected-context.h | 1 - .../inspector/inspector_protocol_config.json | 1 + deps/v8/src/inspector/js_protocol.json | 44 +- deps/v8/src/inspector/v8-console-message.cc | 50 +- deps/v8/src/inspector/v8-console-message.h | 19 +- deps/v8/src/inspector/v8-console.cc | 593 ++- deps/v8/src/inspector/v8-console.h | 114 +- .../src/inspector/v8-debugger-agent-impl.cc | 271 +- .../v8/src/inspector/v8-debugger-agent-impl.h | 23 +- deps/v8/src/inspector/v8-debugger-script.cc | 100 +- deps/v8/src/inspector/v8-debugger-script.h | 16 +- deps/v8/src/inspector/v8-debugger.cc | 217 +- deps/v8/src/inspector/v8-debugger.h | 45 +- .../src/inspector/v8-injected-script-host.cc | 57 +- .../src/inspector/v8-injected-script-host.h | 1 + deps/v8/src/inspector/v8-inspector-impl.cc | 52 +- deps/v8/src/inspector/v8-inspector-impl.h | 20 +- .../src/inspector/v8-profiler-agent-impl.cc | 46 +- .../v8/src/inspector/v8-profiler-agent-impl.h | 3 +- .../v8/src/inspector/v8-runtime-agent-impl.cc | 29 +- deps/v8/src/inspector/v8-stack-trace-impl.cc | 20 +- deps/v8/src/inspector/wasm-translation.cc | 16 +- deps/v8/src/interface-descriptors.cc | 32 +- deps/v8/src/interface-descriptors.h | 361 +- .../src/interpreter/bytecode-array-builder.cc | 367 +- .../src/interpreter/bytecode-array-builder.h | 102 +- .../src/interpreter/bytecode-array-writer.cc | 67 +- .../src/interpreter/bytecode-array-writer.h | 12 + .../bytecode-dead-code-optimizer.cc | 77 - .../bytecode-dead-code-optimizer.h | 44 - deps/v8/src/interpreter/bytecode-decoder.cc | 3 +- deps/v8/src/interpreter/bytecode-flags.cc | 53 +- deps/v8/src/interpreter/bytecode-flags.h | 45 + deps/v8/src/interpreter/bytecode-generator.cc | 541 ++- deps/v8/src/interpreter/bytecode-generator.h | 33 +- .../bytecode-peephole-optimizer.cc | 342 -- .../interpreter/bytecode-peephole-optimizer.h | 65 - .../src/interpreter/bytecode-peephole-table.h | 72 - deps/v8/src/interpreter/bytecode-pipeline.h | 41 +- .../bytecode-register-optimizer.cc | 37 +- .../interpreter/bytecode-register-optimizer.h | 49 +- deps/v8/src/interpreter/bytecodes.cc | 9 +- deps/v8/src/interpreter/bytecodes.h | 156 +- .../src/interpreter/control-flow-builders.cc | 11 +- .../src/interpreter/control-flow-builders.h | 23 +- .../src/interpreter/interpreter-assembler.cc | 140 +- .../src/interpreter/interpreter-assembler.h | 43 +- .../src/interpreter/interpreter-generator.cc | 3691 +++++++++++++++++ .../src/interpreter/interpreter-generator.h | 22 + .../interpreter-intrinsics-generator.cc | 395 ++ .../interpreter-intrinsics-generator.h | 29 + .../src/interpreter/interpreter-intrinsics.cc | 296 +- .../src/interpreter/interpreter-intrinsics.h | 49 +- deps/v8/src/interpreter/interpreter.cc | 3103 +------------- deps/v8/src/interpreter/interpreter.h | 107 +- deps/v8/src/interpreter/mkpeephole.cc | 381 -- .../interpreter/setup-interpreter-internal.cc | 91 + deps/v8/src/interpreter/setup-interpreter.h | 37 + deps/v8/src/isolate.cc | 676 +-- deps/v8/src/isolate.h | 59 +- deps/v8/src/js/array.js | 218 +- deps/v8/src/js/arraybuffer.js | 81 - deps/v8/src/js/harmony-atomics.js | 160 - deps/v8/src/js/i18n.js | 178 +- deps/v8/src/js/macros.py | 2 +- deps/v8/src/js/prologue.js | 117 +- deps/v8/src/js/string.js | 16 +- deps/v8/src/js/typedarray.js | 471 +-- deps/v8/src/js/v8natives.js | 46 +- deps/v8/src/json-parser.cc | 16 +- deps/v8/src/json-stringifier.cc | 21 +- deps/v8/src/keys.cc | 51 +- deps/v8/src/libplatform/default-platform.cc | 30 +- deps/v8/src/libplatform/default-platform.h | 6 +- deps/v8/src/libsampler/sampler.h | 4 +- deps/v8/src/log.cc | 103 +- deps/v8/src/log.h | 19 +- deps/v8/src/lookup.cc | 12 +- deps/v8/src/lookup.h | 10 +- deps/v8/src/macro-assembler-inl.h | 14 + deps/v8/src/macro-assembler.h | 1 - deps/v8/src/managed.h | 6 +- deps/v8/src/map-updater.cc | 37 +- deps/v8/src/map-updater.h | 5 +- deps/v8/src/messages.cc | 40 +- deps/v8/src/messages.h | 22 +- deps/v8/src/mips/assembler-mips-inl.h | 56 +- deps/v8/src/mips/assembler-mips.cc | 727 +++- deps/v8/src/mips/assembler-mips.h | 909 +++- deps/v8/src/mips/code-stubs-mips.cc | 417 +- deps/v8/src/mips/codegen-mips.cc | 4 +- deps/v8/src/mips/constants-mips.cc | 38 + deps/v8/src/mips/constants-mips.h | 488 ++- deps/v8/src/mips/deoptimizer-mips.cc | 33 +- deps/v8/src/mips/disasm-mips.cc | 924 ++++- .../v8/src/mips/interface-descriptors-mips.cc | 45 +- deps/v8/src/mips/macro-assembler-mips.cc | 221 +- deps/v8/src/mips/macro-assembler-mips.h | 68 +- deps/v8/src/mips/simulator-mips.cc | 3 - deps/v8/src/mips64/assembler-mips64-inl.h | 52 +- deps/v8/src/mips64/assembler-mips64.cc | 656 ++- deps/v8/src/mips64/assembler-mips64.h | 908 +++- deps/v8/src/mips64/code-stubs-mips64.cc | 385 +- deps/v8/src/mips64/codegen-mips64.cc | 4 +- deps/v8/src/mips64/constants-mips64.cc | 40 + deps/v8/src/mips64/constants-mips64.h | 484 +++ deps/v8/src/mips64/deoptimizer-mips64.cc | 28 +- deps/v8/src/mips64/disasm-mips64.cc | 934 ++++- .../mips64/interface-descriptors-mips64.cc | 45 +- deps/v8/src/mips64/macro-assembler-mips64.cc | 128 +- deps/v8/src/mips64/macro-assembler-mips64.h | 29 +- deps/v8/src/mips64/simulator-mips64.cc | 10 +- deps/v8/src/objects-body-descriptors-inl.h | 91 +- deps/v8/src/objects-body-descriptors.h | 19 +- deps/v8/src/objects-debug.cc | 35 +- deps/v8/src/objects-inl.h | 335 +- deps/v8/src/objects-printer.cc | 114 +- deps/v8/src/objects.cc | 1161 ++++-- deps/v8/src/objects.h | 2138 ++-------- deps/v8/src/objects/code-cache-inl.h | 28 + deps/v8/src/objects/code-cache.h | 58 + deps/v8/src/objects/compilation-cache-inl.h | 28 + deps/v8/src/objects/compilation-cache.h | 107 + deps/v8/src/objects/descriptor-array.h | 210 + deps/v8/src/objects/dictionary.h | 361 ++ deps/v8/src/objects/frame-array-inl.h | 57 + deps/v8/src/objects/frame-array.h | 108 + deps/v8/src/objects/hash-table.h | 675 +++ deps/v8/src/objects/object-macros-undef.h | 1 + deps/v8/src/objects/object-macros.h | 10 + deps/v8/src/objects/string-table.h | 98 + deps/v8/src/parsing/duplicate-finder.cc | 88 - deps/v8/src/parsing/duplicate-finder.h | 40 +- deps/v8/src/parsing/func-name-inferrer.cc | 37 +- deps/v8/src/parsing/func-name-inferrer.h | 8 +- deps/v8/src/parsing/parse-info.cc | 34 +- deps/v8/src/parsing/parse-info.h | 32 +- deps/v8/src/parsing/parser-base.h | 317 +- deps/v8/src/parsing/parser.cc | 508 ++- deps/v8/src/parsing/parser.h | 84 +- deps/v8/src/parsing/parsing.cc | 12 +- deps/v8/src/parsing/parsing.h | 9 +- deps/v8/src/parsing/pattern-rewriter.cc | 3 +- deps/v8/src/parsing/preparse-data-format.h | 2 +- deps/v8/src/parsing/preparse-data.cc | 37 +- deps/v8/src/parsing/preparse-data.h | 54 +- deps/v8/src/parsing/preparsed-scope-data.cc | 353 +- deps/v8/src/parsing/preparsed-scope-data.h | 94 +- deps/v8/src/parsing/preparser.cc | 109 +- deps/v8/src/parsing/preparser.h | 98 +- deps/v8/src/parsing/rewriter.cc | 56 +- deps/v8/src/parsing/rewriter.h | 3 +- .../src/parsing/scanner-character-streams.h | 3 +- deps/v8/src/parsing/scanner.cc | 191 +- deps/v8/src/parsing/scanner.h | 150 +- deps/v8/src/parsing/token.cc | 26 +- deps/v8/src/parsing/token.h | 33 +- deps/v8/src/perf-jit.cc | 15 +- deps/v8/src/perf-jit.h | 8 + deps/v8/src/ppc/assembler-ppc-inl.h | 64 +- deps/v8/src/ppc/assembler-ppc.cc | 505 +-- deps/v8/src/ppc/assembler-ppc.h | 362 +- deps/v8/src/ppc/code-stubs-ppc.cc | 393 +- deps/v8/src/ppc/codegen-ppc.cc | 3 +- deps/v8/src/ppc/constants-ppc.h | 495 ++- deps/v8/src/ppc/deoptimizer-ppc.cc | 25 +- deps/v8/src/ppc/disasm-ppc.cc | 31 + deps/v8/src/ppc/interface-descriptors-ppc.cc | 45 +- deps/v8/src/ppc/macro-assembler-ppc.cc | 153 +- deps/v8/src/ppc/macro-assembler-ppc.h | 31 +- deps/v8/src/ppc/simulator-ppc.cc | 1698 ++++---- deps/v8/src/ppc/simulator-ppc.h | 87 +- deps/v8/src/profiler/allocation-tracker.cc | 3 +- .../src/profiler/heap-snapshot-generator.cc | 27 +- deps/v8/src/profiler/profiler-listener.cc | 2 +- deps/v8/src/profiler/profiler-listener.h | 3 +- deps/v8/src/profiler/tick-sample.cc | 7 +- deps/v8/src/property.cc | 2 +- .../regexp/arm/regexp-macro-assembler-arm.cc | 5 +- .../arm64/regexp-macro-assembler-arm64.cc | 2 + deps/v8/src/regexp/jsregexp.cc | 108 +- .../regexp/ppc/regexp-macro-assembler-ppc.cc | 2 +- deps/v8/src/regexp/regexp-ast.h | 3 + deps/v8/src/regexp/regexp-parser.cc | 155 +- deps/v8/src/regexp/regexp-parser.h | 24 +- .../s390/regexp-macro-assembler-s390.cc | 2 +- deps/v8/src/register-configuration.h | 3 + deps/v8/src/runtime-profiler.cc | 98 +- deps/v8/src/runtime/runtime-array.cc | 14 - deps/v8/src/runtime/runtime-atomics.cc | 216 +- deps/v8/src/runtime/runtime-classes.cc | 7 + deps/v8/src/runtime/runtime-compiler.cc | 27 +- deps/v8/src/runtime/runtime-debug.cc | 16 +- deps/v8/src/runtime/runtime-forin.cc | 2 +- deps/v8/src/runtime/runtime-futex.cc | 38 - deps/v8/src/runtime/runtime-generator.cc | 30 + deps/v8/src/runtime/runtime-i18n.cc | 412 +- deps/v8/src/runtime/runtime-internal.cc | 71 +- deps/v8/src/runtime/runtime-liveedit.cc | 2 +- deps/v8/src/runtime/runtime-maths.cc | 16 +- deps/v8/src/runtime/runtime-module.cc | 33 +- deps/v8/src/runtime/runtime-numbers.cc | 7 - deps/v8/src/runtime/runtime-object.cc | 78 +- deps/v8/src/runtime/runtime-regexp.cc | 604 ++- deps/v8/src/runtime/runtime-strings.cc | 24 +- deps/v8/src/runtime/runtime-test.cc | 194 +- deps/v8/src/runtime/runtime-typedarray.cc | 242 +- deps/v8/src/runtime/runtime-wasm.cc | 79 +- deps/v8/src/runtime/runtime.h | 89 +- deps/v8/src/s390/assembler-s390-inl.h | 60 +- deps/v8/src/s390/assembler-s390.cc | 107 +- deps/v8/src/s390/assembler-s390.h | 116 +- deps/v8/src/s390/code-stubs-s390.cc | 431 +- deps/v8/src/s390/constants-s390.h | 6 +- deps/v8/src/s390/deoptimizer-s390.cc | 25 +- deps/v8/src/s390/disasm-s390.cc | 31 +- .../v8/src/s390/interface-descriptors-s390.cc | 41 +- deps/v8/src/s390/macro-assembler-s390.cc | 529 +-- deps/v8/src/s390/macro-assembler-s390.h | 131 +- deps/v8/src/s390/simulator-s390.cc | 3368 +-------------- deps/v8/src/s390/simulator-s390.h | 15 +- deps/v8/src/safepoint-table.cc | 67 +- deps/v8/src/safepoint-table.h | 4 + deps/v8/src/setup-isolate-deserialize.cc | 36 + deps/v8/src/setup-isolate-full.cc | 43 + deps/v8/src/setup-isolate.h | 44 + deps/v8/src/signature.h | 12 + deps/v8/src/snapshot/code-serializer.cc | 21 +- deps/v8/src/snapshot/code-serializer.h | 39 +- deps/v8/src/snapshot/deserializer.cc | 111 +- deps/v8/src/snapshot/deserializer.h | 13 +- deps/v8/src/snapshot/mksnapshot.cc | 101 +- deps/v8/src/snapshot/natives-common.cc | 44 +- deps/v8/src/snapshot/natives-external.cc | 4 - deps/v8/src/snapshot/natives.h | 38 +- deps/v8/src/snapshot/partial-serializer.cc | 44 +- deps/v8/src/snapshot/partial-serializer.h | 8 +- deps/v8/src/snapshot/serializer-common.h | 41 +- deps/v8/src/snapshot/serializer.cc | 140 +- deps/v8/src/snapshot/serializer.h | 17 +- deps/v8/src/snapshot/snapshot-common.cc | 8 +- deps/v8/src/snapshot/snapshot.h | 14 +- deps/v8/src/tracing/trace-event.h | 2 - deps/v8/src/transitions.h | 1 + deps/v8/src/trap-handler/DEPS | 17 + deps/v8/src/trap-handler/OWNERS | 10 + deps/v8/src/trap-handler/handler-inside.cc | 170 + deps/v8/src/trap-handler/handler-outside.cc | 191 + deps/v8/src/trap-handler/handler-shared.cc | 52 + .../src/trap-handler/trap-handler-internal.h | 67 + deps/v8/src/trap-handler/trap-handler.h | 70 + deps/v8/src/type-info.cc | 5 +- deps/v8/src/unicode.cc | 6 +- deps/v8/src/utils.h | 6 +- deps/v8/src/v8.cc | 2 + deps/v8/src/v8.gyp | 211 +- deps/v8/src/value-serializer.cc | 95 +- deps/v8/src/value-serializer.h | 9 + deps/v8/src/vector.h | 2 +- deps/v8/src/wasm/decoder.h | 427 +- deps/v8/src/wasm/function-body-decoder-impl.h | 162 +- deps/v8/src/wasm/function-body-decoder.cc | 286 +- deps/v8/src/wasm/function-body-decoder.h | 3 +- deps/v8/src/wasm/module-decoder.cc | 404 +- deps/v8/src/wasm/module-decoder.h | 12 +- deps/v8/src/wasm/wasm-code-specialization.cc | 89 +- deps/v8/src/wasm/wasm-debug.cc | 239 +- deps/v8/src/wasm/wasm-interpreter.cc | 1184 ++++-- deps/v8/src/wasm/wasm-interpreter.h | 61 +- deps/v8/src/wasm/wasm-js.cc | 108 +- deps/v8/src/wasm/wasm-limits.h | 49 +- deps/v8/src/wasm/wasm-macro-gen.h | 30 - deps/v8/src/wasm/wasm-module-builder.cc | 110 +- deps/v8/src/wasm/wasm-module-builder.h | 18 +- deps/v8/src/wasm/wasm-module.cc | 1763 +++++--- deps/v8/src/wasm/wasm-module.h | 128 +- deps/v8/src/wasm/wasm-objects.cc | 507 ++- deps/v8/src/wasm/wasm-objects.h | 286 +- deps/v8/src/wasm/wasm-opcodes.cc | 54 +- deps/v8/src/wasm/wasm-opcodes.h | 136 +- deps/v8/src/wasm/wasm-result.cc | 33 +- deps/v8/src/wasm/wasm-result.h | 118 +- deps/v8/src/wasm/wasm-text.cc | 34 +- deps/v8/src/x64/assembler-x64-inl.h | 65 +- deps/v8/src/x64/assembler-x64.cc | 60 +- deps/v8/src/x64/assembler-x64.h | 83 +- deps/v8/src/x64/code-stubs-x64.cc | 401 +- deps/v8/src/x64/codegen-x64.cc | 2 +- deps/v8/src/x64/deoptimizer-x64.cc | 24 +- deps/v8/src/x64/disasm-x64.cc | 8 +- deps/v8/src/x64/interface-descriptors-x64.cc | 47 +- deps/v8/src/x64/macro-assembler-x64.cc | 321 +- deps/v8/src/x64/macro-assembler-x64.h | 124 +- deps/v8/src/x87/assembler-x87-inl.h | 59 +- deps/v8/src/x87/assembler-x87.cc | 16 +- deps/v8/src/x87/assembler-x87.h | 6 +- deps/v8/src/x87/code-stubs-x87.cc | 398 +- deps/v8/src/x87/codegen-x87.cc | 4 +- deps/v8/src/x87/interface-descriptors-x87.cc | 49 +- deps/v8/src/x87/macro-assembler-x87.cc | 187 +- deps/v8/src/x87/macro-assembler-x87.h | 58 +- deps/v8/src/zone/zone-allocator.h | 107 +- deps/v8/src/zone/zone-containers.h | 38 +- deps/v8/test/BUILD.gn | 12 +- deps/v8/test/bot_default.gyp | 8 +- deps/v8/test/cctest/BUILD.gn | 19 +- deps/v8/test/cctest/asmjs/test-asm-typer.cc | 2 +- deps/v8/test/cctest/cctest.cc | 5 + deps/v8/test/cctest/cctest.gyp | 16 +- deps/v8/test/cctest/cctest.h | 3 + deps/v8/test/cctest/cctest.status | 43 +- .../test/cctest/compiler/function-tester.cc | 19 +- .../v8/test/cctest/compiler/function-tester.h | 1 + .../test-js-context-specialization.cc | 2 +- .../cctest/compiler/test-js-typed-lowering.cc | 11 - deps/v8/test/cctest/compiler/test-linkage.cc | 9 +- .../compiler/test-loop-assignment-analysis.cc | 10 +- .../compiler/test-representation-change.cc | 12 +- .../test-run-bytecode-graph-builder.cc | 46 +- .../test/cctest/compiler/test-run-machops.cc | 37 + .../cctest/compiler/test-run-wasm-machops.cc | 7 +- deps/v8/test/cctest/heap/test-compaction.cc | 2 +- .../cctest/heap/test-concurrent-marking.cc | 29 + deps/v8/test/cctest/heap/test-heap.cc | 96 +- deps/v8/test/cctest/heap/test-mark-compact.cc | 3 +- .../test/cctest/heap/test-page-promotion.cc | 42 +- deps/v8/test/cctest/heap/test-spaces.cc | 51 +- .../ArrayLiterals.golden | 10 +- .../AssignmentsInBinaryExpression.golden | 9 +- .../bytecode_expectations/BasicLoops.golden | 94 +- .../BreakableBlocks.golden | 6 +- .../bytecode_expectations/CallGlobal.golden | 26 +- .../CallLookupSlot.golden | 32 +- .../ClassAndSuperClass.golden | 41 +- .../ClassDeclarations.golden | 6 +- .../bytecode_expectations/CompareNil.golden | 288 ++ .../CompareTypeOf.golden | 96 + .../CompoundExpressions.golden | 38 +- .../ContextVariables.golden | 20 +- .../CountOperators.golden | 24 +- .../CreateRestParameter.golden | 44 +- .../DeclareGlobals.golden | 8 +- .../bytecode_expectations/Eval.golden | 26 +- .../bytecode_expectations/ForAwaitOf.golden | 576 ++- .../bytecode_expectations/ForIn.golden | 13 +- .../bytecode_expectations/ForOf.golden | 148 +- .../FunctionLiterals.golden | 22 +- .../GenerateTestUndetectable.golden | 36 +- .../bytecode_expectations/Generators.golden | 175 +- .../GlobalCompoundExpressions.golden | 14 +- .../GlobalCountOperators.golden | 8 +- .../bytecode_expectations/GlobalDelete.golden | 8 +- .../bytecode_expectations/IfConditions.golden | 10 +- .../bytecode_expectations/LookupSlot.golden | 130 +- .../bytecode_expectations/Modules.golden | 316 +- .../ObjectLiterals.golden | 8 +- .../PrimitiveExpressions.golden | 286 +- .../bytecode_expectations/PropertyCall.golden | 34 +- .../RegExpLiterals.golden | 2 +- .../SuperCallAndSpread.golden | 70 +- .../bytecode_expectations/Switch.golden | 27 +- .../bytecode_expectations/TryFinally.golden | 12 +- .../UnaryOperators.golden | 35 +- .../interpreter/test-bytecode-generator.cc | 97 + .../test-interpreter-intrinsics.cc | 2 +- .../cctest/interpreter/test-interpreter.cc | 198 +- .../interpreter/test-source-positions.cc | 23 +- deps/v8/test/cctest/parsing/test-preparser.cc | 210 +- .../cctest/parsing/test-scanner-streams.cc | 18 +- deps/v8/test/cctest/parsing/test-scanner.cc | 36 +- deps/v8/test/cctest/scope-test-helper.h | 81 +- .../v8/test/cctest/setup-isolate-for-tests.cc | 27 + deps/v8/test/cctest/setup-isolate-for-tests.h | 22 + .../v8/test/cctest/test-accessor-assembler.cc | 3 +- deps/v8/test/cctest/test-api.cc | 168 +- deps/v8/test/cctest/test-assembler-arm.cc | 226 +- deps/v8/test/cctest/test-assembler-arm64.cc | 3 + deps/v8/test/cctest/test-assembler-mips.cc | 376 +- deps/v8/test/cctest/test-code-cache.cc | 10 +- .../test/cctest/test-code-stub-assembler.cc | 157 +- deps/v8/test/cctest/test-code-stubs-arm.cc | 5 +- deps/v8/test/cctest/test-code-stubs-arm64.cc | 1 + deps/v8/test/cctest/test-code-stubs-mips.cc | 6 +- deps/v8/test/cctest/test-compiler.cc | 113 +- deps/v8/test/cctest/test-debug.cc | 89 +- deps/v8/test/cctest/test-disasm-arm.cc | 33 +- deps/v8/test/cctest/test-disasm-arm64.cc | 14 + deps/v8/test/cctest/test-disasm-ia32.cc | 76 +- deps/v8/test/cctest/test-disasm-mips.cc | 692 +++ deps/v8/test/cctest/test-disasm-mips64.cc | 696 ++++ deps/v8/test/cctest/test-disasm-x64.cc | 2 + deps/v8/test/cctest/test-extra.js | 22 +- deps/v8/test/cctest/test-feedback-vector.cc | 4 +- .../test/cctest/test-field-type-tracking.cc | 87 +- deps/v8/test/cctest/test-hashing.cc | 5 +- deps/v8/test/cctest/test-identity-map.cc | 69 +- .../cctest/test-inobject-slack-tracking.cc | 3 + deps/v8/test/cctest/test-log.cc | 8 +- .../test/cctest/test-macro-assembler-arm.cc | 38 +- .../test/cctest/test-macro-assembler-mips.cc | 16 +- deps/v8/test/cctest/test-modules.cc | 75 + deps/v8/test/cctest/test-parsing.cc | 306 +- deps/v8/test/cctest/test-profile-generator.cc | 5 +- deps/v8/test/cctest/test-regexp.cc | 3 + .../cctest/test-run-wasm-relocation-arm.cc | 4 +- .../cctest/test-run-wasm-relocation-arm64.cc | 7 +- .../cctest/test-run-wasm-relocation-ia32.cc | 4 +- .../cctest/test-run-wasm-relocation-x64.cc | 4 +- deps/v8/test/cctest/test-serialize.cc | 181 +- deps/v8/test/cctest/test-simulator-arm.cc | 8 +- deps/v8/test/cctest/test-simulator-arm64.cc | 384 ++ deps/v8/test/cctest/test-strings.cc | 23 +- deps/v8/test/cctest/test-unboxed-doubles.cc | 8 +- deps/v8/test/cctest/test-utils-arm64.cc | 3 +- deps/v8/test/cctest/test-utils.cc | 9 - deps/v8/test/cctest/wasm/test-run-wasm-64.cc | 56 +- .../cctest/wasm/test-run-wasm-interpreter.cc | 43 +- .../test/cctest/wasm/test-run-wasm-module.cc | 214 +- .../cctest/wasm/test-run-wasm-relocation.cc | 71 +- .../wasm/test-run-wasm-simd-lowering.cc | 296 -- .../v8/test/cctest/wasm/test-run-wasm-simd.cc | 1161 +++++- deps/v8/test/cctest/wasm/test-run-wasm.cc | 118 +- .../test/cctest/wasm/test-wasm-breakpoints.cc | 4 +- .../wasm/test-wasm-interpreter-entry.cc | 37 +- .../cctest/wasm/test-wasm-trap-position.cc | 1 + deps/v8/test/cctest/wasm/wasm-run-utils.h | 117 +- .../v8/test/common/wasm/wasm-module-runner.cc | 11 +- .../debug-evaluate-no-side-effect-async.js | 50 + ...ebug-evaluate-no-side-effect-builtins-2.js | 90 + .../debug-evaluate-no-side-effect-builtins.js | 70 +- .../debug-evaluate-no-side-effect-control.js | 2 +- .../debug-evaluate-no-side-effect-iife.js | 69 + .../debug-evaluate-no-side-effect-ops.js | 97 + .../debug/debug-evaluate-no-side-effect.js | 18 +- .../debug-scopes-suspended-generators.js | 2 +- deps/v8/test/debugger/debug/debug-script.js | 2 +- deps/v8/test/debugger/debug/debug-step.js | 2 + .../debug/es6/debug-stepin-microtasks.js | 4 +- .../es8/async-debug-builtin-predictions.js | 64 + .../debug/ignition/debug-break-mixed-stack.js | 51 - .../debug/ignition/debug-step-mixed-stack.js | 52 - .../regress-prepare-break-while-recompile.js | 1 - deps/v8/test/debugger/debug/wasm/asm-debug.js | 23 +- deps/v8/test/debugger/debugger.isolate | 14 +- deps/v8/test/debugger/debugger.status | 18 +- deps/v8/test/default.gyp | 8 +- deps/v8/test/fuzzer/fuzzer-support.cc | 2 +- deps/v8/test/fuzzer/fuzzer-support.h | 2 +- deps/v8/test/fuzzer/parser.cc | 2 +- deps/v8/test/fuzzer/wasm-section-fuzzers.cc | 3 +- deps/v8/test/fuzzer/wasm-section-fuzzers.h | 2 +- deps/v8/test/inspector/BUILD.gn | 46 +- .../memory-setter-in-strict-mode-expected.txt | 9 - .../console/memory-setter-in-strict-mode.js | 13 - ...console-profile-end-parameterless-crash.js | 2 +- .../inspector/cpu-profiler/console-profile.js | 2 +- .../cpu-profiler/coverage-expected.txt | 693 +++- .../test/inspector/cpu-profiler/coverage.js | 197 +- .../inspector/cpu-profiler/enable-disable.js | 2 +- .../cpu-profiler/record-cpu-profile.js | 2 +- .../stop-without-preceeding-start.js | 2 +- .../async-console-count-doesnt-crash.js | 2 +- ...nc-for-await-of-promise-stack-expected.txt | 57 + .../async-for-await-of-promise-stack.js | 164 + .../debugger/async-instrumentation.js | 2 +- .../debugger/async-promise-late-then.js | 2 +- .../inspector/debugger/async-set-timeout.js | 2 +- .../inspector/debugger/async-stack-await.js | 2 +- .../debugger/async-stack-created-frame.js | 2 +- .../debugger/async-stack-for-promise.js | 2 +- .../inspector/debugger/async-stacks-limit.js | 2 +- .../inspector/debugger/break-on-exception.js | 2 +- ...n-from-framework-inside-async-expected.txt | 3 + ...t-exception-from-framework-inside-async.js | 38 + .../debugger/caught-uncaught-exceptions.js | 2 +- .../command-line-api-with-bound-function.js | 2 +- ...snt-step-into-injected-script-expected.txt | 24 +- .../doesnt-step-into-injected-script.js | 45 +- .../es6-module-script-parsed-expected.txt | 3 + .../debugger/es6-module-script-parsed.js | 2 +- .../debugger/es6-module-set-script-source.js | 2 +- .../inspector/debugger/framework-break.js | 8 +- .../framework-nested-scheduled-break.js | 2 +- .../debugger/framework-precise-ranges.js | 4 +- .../debugger/framework-stepping-expected.txt | 4 +- .../inspector/debugger/framework-stepping.js | 8 +- ...ble-breakpoints-array-literal-expected.txt | 2 + ...t-possible-breakpoints-master-expected.txt | 268 ++ .../get-possible-breakpoints-master.js | 43 + ...akpoints-restrict-to-function-expected.txt | 496 +++ ...ssible-breakpoints-restrict-to-function.js | 120 + .../debugger/get-possible-breakpoints.js | 4 +- .../inspector/debugger/inspector-break-api.js | 10 +- .../object-preview-internal-properties.js | 2 +- .../inspector/debugger/pause-expected.txt | 36 + .../test/inspector/debugger/pause-on-oom.js | 4 +- deps/v8/test/inspector/debugger/pause.js | 89 + .../debugger/resources/break-locations.js | 269 ++ .../debugger/restore-breakpoint-expected.txt | 76 + .../inspector/debugger/restore-breakpoint.js | 69 + .../return-break-locations-expected.txt | 11 + .../debugger/return-break-locations.js | 26 + .../schedule-step-into-async-expected.txt | 190 + ...e-step-into-async-set-timeout-expected.txt | 44 + .../schedule-step-into-async-set-timeout.js | 75 + .../debugger/schedule-step-into-async.js | 159 + .../debugger/script-end-location-expected.txt | 91 + .../inspector/debugger/script-end-location.js | 48 + .../script-on-after-compile-expected.txt | 168 +- .../debugger/script-on-after-compile.js | 24 +- ...t-parsed-for-runtime-evaluate-expected.txt | 161 +- .../script-parsed-for-runtime-evaluate.js | 32 +- .../debugger/set-script-source-exception.js | 2 +- .../side-effect-free-debug-evaluate.js | 2 +- .../inspector/debugger/step-into-expected.txt | 1073 +++++ .../step-into-next-script-expected.txt | 18 +- .../debugger/step-into-next-script.js | 2 +- deps/v8/test/inspector/debugger/step-into.js | 34 + .../step-out-async-await-expected.txt | 65 + .../debugger/step-out-async-await.js | 72 + ...ep-over-another-context-group-expected.txt | 6 + .../step-over-another-context-group.js | 30 + ...fter-get-possible-breakpoints-expected.txt | 1 - ...tepping-and-break-program-api-expected.txt | 18 + .../stepping-and-break-program-api.js | 34 + ...pping-ignores-injected-script-expected.txt | 1 + .../stepping-ignores-injected-script.js | 19 + .../debugger/stepping-tail-call-expected.txt | 177 + .../inspector/debugger/stepping-tail-call.js | 81 + ...-with-exposed-injected-script-expected.txt | 1 + .../stepping-with-exposed-injected-script.js | 20 + ...g-with-natives-and-frameworks-expected.txt | 310 ++ .../stepping-with-natives-and-frameworks.js | 300 ++ .../debugger/suspended-generator-scopes.js | 1 + .../wasm-get-breakable-locations-expected.txt | 48 +- .../debugger/wasm-get-breakable-locations.js | 4 +- .../debugger/wasm-imports-expected.txt | 24 + .../test/inspector/debugger/wasm-imports.js | 108 + .../debugger/wasm-scripts-expected.txt | 8 +- .../test/inspector/debugger/wasm-scripts.js | 4 +- .../v8/test/inspector/debugger/wasm-source.js | 4 +- deps/v8/test/inspector/debugger/wasm-stack.js | 4 +- .../debugger/wasm-stepping-expected.txt | 58 +- .../test/inspector/debugger/wasm-stepping.js | 4 +- .../take-heap-snapshot-on-pause.js | 2 +- deps/v8/test/inspector/inspector-impl.cc | 184 +- deps/v8/test/inspector/inspector-impl.h | 25 +- deps/v8/test/inspector/inspector-test.cc | 172 +- deps/v8/test/inspector/inspector.isolate | 35 +- deps/v8/test/inspector/inspector.status | 22 +- deps/v8/test/inspector/protocol-test.js | 147 +- .../test/inspector/runtime/await-promise.js | 2 +- .../runtime/call-function-on-async.js | 2 +- .../runtime/clear-of-command-line-api.js | 2 +- .../runtime/command-line-api-expected.txt | 612 +++ .../inspector/runtime/command-line-api.js | 175 + .../console-api-repeated-in-console.js | 2 +- .../test/inspector/runtime/console-assert.js | 2 +- .../runtime/console-deprecated-methods.js | 2 +- .../console-log-doesnt-run-microtasks.js | 2 +- .../runtime/console-memory-expected.txt | 45 + .../test/inspector/runtime/console-memory.js | 32 + .../runtime/console-messages-limits.js | 2 +- .../test/inspector/runtime/console-methods.js | 2 +- .../runtime/console-time-end-format.js | 6 +- .../runtime/create-context-expected.txt | 56 + .../test/inspector/runtime/create-context.js | 42 + .../inspector/runtime/es6-module-expected.txt | 6 +- deps/v8/test/inspector/runtime/es6-module.js | 2 +- .../runtime/evaluate-async-with-wrap-error.js | 2 +- .../test/inspector/runtime/evaluate-async.js | 2 +- .../inspector/runtime/evaluate-empty-stack.js | 2 +- .../evaluate-with-context-id-equal-zero.js | 2 +- ...valuate-with-generate-preview-expected.txt | 736 ++++ .../runtime/evaluate-with-generate-preview.js | 73 +- .../inspector/runtime/exception-thrown.js | 2 +- .../runtime/get-properties-expected.txt | 23 +- .../runtime/get-properties-on-proxy.js | 2 +- .../runtime/get-properties-preview.js | 2 + .../test/inspector/runtime/get-properties.js | 251 +- .../runtime/internal-properties-entries.js | 2 +- .../inspector/runtime/internal-properties.js | 2 +- .../length-or-size-description-expected.txt | 4 + .../runtime/length-or-size-description.js | 9 +- .../runtime/property-on-console-proto.js | 2 +- .../protocol-works-with-different-locale.js | 14 +- .../inspector/runtime/run-script-async.js | 2 +- ...e-evaluate-with-dirty-context-expected.txt | 35 + .../runtime-evaluate-with-dirty-context.js | 11 + .../runtime/runtime-restore-expected.txt | 115 + .../test/inspector/runtime/runtime-restore.js | 77 + .../inspector/runtime/set-or-map-entries.js | 4 +- deps/v8/test/inspector/task-runner.cc | 35 +- deps/v8/test/inspector/task-runner.h | 9 +- deps/v8/test/inspector/testcfg.py | 7 +- deps/v8/test/intl/intl.status | 10 - deps/v8/test/js-perf-test/Array/filter.js | 92 + deps/v8/test/js-perf-test/Array/map.js | 88 + deps/v8/test/js-perf-test/Array/run.js | 30 + deps/v8/test/js-perf-test/JSTests.json | 67 +- deps/v8/test/js-perf-test/SixSpeed.json | 15 + .../TypedArrays/construct-all-typedarrays.js | 40 + .../TypedArrays/construct-same-typedarray.js | 17 + .../TypedArrays/construct-typedarray.js | 17 + deps/v8/test/message/README.md | 25 + .../test/message/asm-assignment-undeclared.js | 16 + .../message/asm-assignment-undeclared.out | 5 + .../test/message/asm-function-mismatch-def.js | 19 + .../message/asm-function-mismatch-def.out | 5 + .../test/message/asm-function-mismatch-use.js | 19 + .../message/asm-function-mismatch-use.out | 5 + .../v8/test/message/asm-function-redefined.js | 15 + .../test/message/asm-function-redefined.out | 5 + .../v8/test/message/asm-function-undefined.js | 14 + .../test/message/asm-function-undefined.out | 5 + .../asm-function-variable-collision.js | 15 + .../asm-function-variable-collision.out | 5 + .../asm-missing-parameter-annotation.js | 16 + .../asm-missing-parameter-annotation.out | 5 + .../message/asm-missing-return-annotation.js | 17 + .../message/asm-missing-return-annotation.out | 5 + .../v8/test/message/asm-table-mismatch-def.js | 22 + .../test/message/asm-table-mismatch-def.out | 5 + .../v8/test/message/asm-table-mismatch-use.js | 24 + .../test/message/asm-table-mismatch-use.out | 5 + deps/v8/test/message/asm-table-redefined.js | 20 + deps/v8/test/message/asm-table-redefined.out | 5 + deps/v8/test/message/asm-table-undefined.js | 15 + deps/v8/test/message/asm-table-undefined.out | 5 + .../message/asm-table-variable-collision.js | 14 + .../message/asm-table-variable-collision.out | 5 + deps/v8/test/message/get-iterator1.js | 7 + deps/v8/test/message/get-iterator1.out | 5 + .../v8/test/message/let-asi-await-nonasync.js | 9 + .../test/message/let-asi-await-nonasync.out | 4 + .../message/let-asi-yield-nongenerator.js | 9 + .../message/let-asi-yield-nongenerator.out | 4 + deps/v8/test/message/modules-cycle5.js | 8 + deps/v8/test/message/modules-cycle5.out | 4 + deps/v8/test/message/modules-cycle6.js | 8 + deps/v8/test/message/modules-cycle6.out | 4 + deps/v8/test/message/modules-skip-cycle5.js | 5 + deps/v8/test/message/modules-skip-cycle6.js | 5 + .../message/regress/regress-crbug-691194.js | 5 + .../message/regress/regress-crbug-691194.out | 10 + deps/v8/test/mjsunit/arguments-deopt.js | 153 +- deps/v8/test/mjsunit/array-reduce.js | 6 + deps/v8/test/mjsunit/array-shift5.js | 50 - deps/v8/test/mjsunit/asm/asm-validation.js | 23 +- deps/v8/test/mjsunit/asm/call-collisions.js | 67 + deps/v8/test/mjsunit/asm/regress-674089.js | 2 +- deps/v8/test/mjsunit/basic-promise.js | 50 + deps/v8/test/mjsunit/code-coverage-ad-hoc.js | 10 +- .../compiler/deopt-numberoroddball-binop.js | 6 - .../mjsunit/compiler/escape-analysis-13.js | 17 + .../mjsunit/compiler/integral32-add-sub.js | 6 - .../compiler/manual-concurrent-recompile.js | 5 - deps/v8/test/mjsunit/compiler/regress-5320.js | 3 - .../test/mjsunit/compiler/regress-693425.js | 11 + .../test/mjsunit/compiler/regress-694088.js | 46 + .../test/mjsunit/compiler/regress-700883.js | 23 + .../test/mjsunit/compiler/regress-713367.js | 30 + .../test/mjsunit/compiler/regress-714483.js | 26 + .../compiler/regress-compare-negate.js | 2 +- .../regress-strict-equals-mixed-feedback.js | 23 - .../test/mjsunit/compiler/regress-v8-6077.js | 69 + .../test/mjsunit/compiler/rest-parameters.js | 54 + deps/v8/test/mjsunit/debugPrint.js | 28 +- .../mjsunit/deopt-recursive-eager-once.js | 34 + .../test/mjsunit/deopt-recursive-lazy-once.js | 34 + .../test/mjsunit/deopt-recursive-soft-once.js | 36 + deps/v8/test/mjsunit/deopt-unlinked.js | 32 + deps/v8/test/mjsunit/duplicate-parameters.js | 179 + .../test/mjsunit/es6/array-iterator-turbo.js | 1 + deps/v8/test/mjsunit/es6/classes.js | 2 +- deps/v8/test/mjsunit/es6/completion.js | 10 + deps/v8/test/mjsunit/es6/generator-let-asi.js | 14 + .../v8/test/mjsunit/es6/global-proto-proxy.js | 41 + .../test/mjsunit/es6/regress/regress-6098.js | 14 + .../es6/typedarray-construct-by-array-like.js | 138 + ...typedarray-construct-by-buffer-ordering.js | 81 + .../typedarray-construct-offset-not-smi.js | 58 + deps/v8/test/mjsunit/es6/typedarray-every.js | 14 + deps/v8/test/mjsunit/es6/typedarray-fill.js | 88 +- .../test/mjsunit/es6/typedarray-indexing.js | 21 + deps/v8/test/mjsunit/es6/typedarray-slice.js | 71 +- deps/v8/test/mjsunit/es6/typedarray.js | 33 + deps/v8/test/mjsunit/es7/regexp-ui-word.js | 42 + deps/v8/test/mjsunit/es8/async-let-asi.js | 22 + deps/v8/test/mjsunit/fast-prototype.js | 2 +- deps/v8/test/mjsunit/getters-on-elements.js | 10 + .../harmony/async-from-sync-iterator.js | 92 + .../mjsunit/harmony/async-generators-basic.js | 1660 ++++++++ .../mjsunit/harmony/atomics-value-check.js | 44 + deps/v8/test/mjsunit/harmony/futex.js | 8 + .../test/mjsunit/harmony/modules-import-1.js | 12 + .../test/mjsunit/harmony/modules-import-10.js | 15 + .../test/mjsunit/harmony/modules-import-11.js | 22 + .../test/mjsunit/harmony/modules-import-12.js | 19 + .../test/mjsunit/harmony/modules-import-13.js | 39 + .../test/mjsunit/harmony/modules-import-14.js | 26 + .../test/mjsunit/harmony/modules-import-15.js | 56 + .../test/mjsunit/harmony/modules-import-2.js | 18 + .../test/mjsunit/harmony/modules-import-3.js | 22 + .../test/mjsunit/harmony/modules-import-4.js | 13 + .../test/mjsunit/harmony/modules-import-5.js | 13 + .../test/mjsunit/harmony/modules-import-6.js | 29 + .../test/mjsunit/harmony/modules-import-7.js | 24 + .../test/mjsunit/harmony/modules-import-8.js | 91 + .../test/mjsunit/harmony/modules-import-9.js | 22 + .../v8/test/mjsunit/harmony/modules-skip-1.js | 5 + .../v8/test/mjsunit/harmony/modules-skip-2.js | 5 + .../v8/test/mjsunit/harmony/modules-skip-3.js | 5 + .../v8/test/mjsunit/harmony/modules-skip-4.js | 6 + .../v8/test/mjsunit/harmony/modules-skip-5.js | 15 + .../v8/test/mjsunit/harmony/modules-skip-6.js | 11 + .../v8/test/mjsunit/harmony/modules-skip-7.js | 14 + .../v8/test/mjsunit/harmony/modules-skip-8.js | 5 + .../v8/test/mjsunit/harmony/modules-skip-9.js | 5 + .../mjsunit/harmony/modules-skip-empty.js | 3 + .../mjsunit/harmony/regexp-dotall-disabled.js | 71 + deps/v8/test/mjsunit/harmony/regexp-dotall.js | 129 + .../test/mjsunit/harmony/regexp-lookbehind.js | 1 + .../mjsunit/harmony/regexp-named-captures.js | 365 +- .../mjsunit/harmony/regexp-property-binary.js | 158 +- .../harmony/regexp-property-special.js | 22 + .../mjsunit/harmony/regress/regress-6100.js | 1738 ++++++++ .../test/mjsunit/harmony/sharedarraybuffer.js | 17 +- .../test/mjsunit/harmony/template-escapes.js | 87 + deps/v8/test/mjsunit/heapObjectVerify.js | 53 + deps/v8/test/mjsunit/icu-date-lord-howe.js | 14 + deps/v8/test/mjsunit/icu-date-to-string.js | 14 + .../ignition/ignition-statistics-extension.js | 2 +- deps/v8/test/mjsunit/ignition/regress-5768.js | 16 - deps/v8/test/mjsunit/json-errors.js | 30 + deps/v8/test/mjsunit/json.js | 1 + deps/v8/test/mjsunit/messages.js | 4 +- deps/v8/test/mjsunit/minmax-simple.js | 27 - deps/v8/test/mjsunit/mjsunit.js | 70 +- deps/v8/test/mjsunit/mjsunit.status | 89 +- deps/v8/test/mjsunit/modules-cycle.js | 8 + deps/v8/test/mjsunit/modules-skip-cycle.js | 5 + deps/v8/test/mjsunit/modules-turbo1.js | 2 +- deps/v8/test/mjsunit/never-baseline.js | 24 + deps/v8/test/mjsunit/number-isnan-opt.js | 55 + deps/v8/test/mjsunit/regexp.js | 39 + deps/v8/test/mjsunit/regress-6223.js | 20 + deps/v8/test/mjsunit/regress-707410.js | 10 + .../v8/test/mjsunit/regress/regress-319120.js | 28 - deps/v8/test/mjsunit/regress/regress-5380.js | 17 - deps/v8/test/mjsunit/regress/regress-5802.js | 4 - .../v8/test/mjsunit/regress/regress-599719.js | 2 +- deps/v8/test/mjsunit/regress/regress-6082.js | 11 + deps/v8/test/mjsunit/regress/regress-6142.js | 27 + deps/v8/test/mjsunit/regress/regress-6186.js | 5 + deps/v8/test/mjsunit/regress/regress-6196.js | 31 + deps/v8/test/mjsunit/regress/regress-6203.js | 20 + .../v8/test/mjsunit/regress/regress-639270.js | 2 +- .../v8/test/mjsunit/regress/regress-677685.js | 2 +- .../v8/test/mjsunit/regress/regress-696332.js | 12 + .../v8/test/mjsunit/regress/regress-698790.js | 18 + .../v8/test/mjsunit/regress/regress-705934.js | 15 + .../v8/test/mjsunit/regress/regress-707187.js | 12 + .../v8/test/mjsunit/regress/regress-707675.js | 8 + .../v8/test/mjsunit/regress/regress-708598.js | 10 + .../v8/test/mjsunit/regress/regress-709029.js | 38 + .../v8/test/mjsunit/regress/regress-715582.js | 9 + .../v8/test/mjsunit/regress/regress-726636.js | 14 + .../mjsunit/regress/regress-crbug-638551.js | 2 +- .../mjsunit/regress/regress-crbug-644111.js | 2 +- .../mjsunit/regress/regress-crbug-645103.js | 2 +- .../mjsunit/regress/regress-crbug-645888.js | 2 +- .../mjsunit/regress/regress-crbug-647217.js | 2 +- .../mjsunit/regress/regress-crbug-651403.js | 2 +- .../mjsunit/regress/regress-crbug-688567.js | 36 + .../mjsunit/regress/regress-crbug-688734.js | 16 + .../mjsunit/regress/regress-crbug-691687.js | 10 + .../mjsunit/regress/regress-crbug-696622.js | 14 + .../mjsunit/regress/regress-crbug-697017.js | 8 + .../mjsunit/regress/regress-crbug-698607.js | 22 + .../mjsunit/regress/regress-crbug-699282.js | 11 + .../mjsunit/regress/regress-crbug-700678.js | 20 + .../mjsunit/regress/regress-crbug-700733.js | 66 + .../mjsunit/regress/regress-crbug-702793.js | 19 + .../mjsunit/regress/regress-crbug-702798.js | 8 + .../mjsunit/regress/regress-crbug-703610.js | 16 + .../mjsunit/regress/regress-crbug-708050-1.js | 17 + .../mjsunit/regress/regress-crbug-708050-2.js | 17 + .../mjsunit/regress/regress-crbug-709537.js | 14 + .../mjsunit/regress/regress-crbug-709753.js | 13 + .../mjsunit/regress/regress-crbug-722756.js | 40 + .../regress/regress-embedded-cons-string.js | 1 - .../regress-put-prototype-transition.js | 6 +- .../regress-unlink-closures-on-deopt.js | 37 + .../mjsunit/regress/wasm/regress-709684.js | 78 + .../mjsunit/regress/wasm/regression-6164.js | 19 + .../mjsunit/regress/wasm/regression-670683.js | 23 +- .../mjsunit/regress/wasm/regression-684858.js | 2 +- .../mjsunit/regress/wasm/regression-702460.js | 47 + .../mjsunit/regress/wasm/regression-702839.js | 11 + .../mjsunit/regress/wasm/regression-703568.js | 15 + .../mjsunit/regress/wasm/regression-708714.js | 23 + .../mjsunit/regress/wasm/regression-717194.js | 30 + .../shared-function-tier-up-default.js | 33 - .../mjsunit/shared-function-tier-up-turbo.js | 3 +- deps/v8/test/mjsunit/string-externalize.js | 12 +- deps/v8/test/mjsunit/string-split.js | 4 +- .../v8/test/mjsunit/strong-rooted-literals.js | 2 +- deps/v8/test/mjsunit/testcfg.py | 7 + deps/v8/test/mjsunit/tools/profile.js | 10 +- .../tools/tickprocessor-test-func-info.log | 6 +- .../mjsunit/tools/tickprocessor-test.default | 2 +- .../tools/tickprocessor-test.func-info | 12 +- .../mjsunit/tools/tickprocessor-test.gc-state | 2 +- .../tools/tickprocessor-test.ignore-unknown | 2 +- .../test/mjsunit/tools/tickprocessor-test.log | 12 +- .../tools/tickprocessor-test.separate-ic | 2 +- deps/v8/test/mjsunit/tools/tickprocessor.js | 62 +- .../type-profile/collect-type-profile.js | 90 + .../wasm/asm-wasm-exception-in-tonumber.js | 58 +- .../v8/test/mjsunit/wasm/asm-wasm-literals.js | 67 +- deps/v8/test/mjsunit/wasm/asm-wasm-stack.js | 29 +- deps/v8/test/mjsunit/wasm/asm-wasm.js | 19 +- .../v8/test/mjsunit/wasm/asm-with-wasm-off.js | 4 +- deps/v8/test/mjsunit/wasm/async-compile.js | 49 + .../mjsunit/wasm/compilation-limits-asm.js | 22 + .../test/mjsunit/wasm/compilation-limits.js | 113 + .../wasm/compiled-module-serialization.js | 154 +- deps/v8/test/mjsunit/wasm/errors.js | 24 +- deps/v8/test/mjsunit/wasm/ffi-error.js | 26 + deps/v8/test/mjsunit/wasm/function-names.js | 10 +- deps/v8/test/mjsunit/wasm/indirect-calls.js | 2 +- .../mjsunit/wasm/instantiate-module-basic.js | 189 +- .../v8/test/mjsunit/wasm/interpreter-mixed.js | 78 + deps/v8/test/mjsunit/wasm/interpreter.js | 400 ++ deps/v8/test/mjsunit/wasm/js-api.js | 596 +-- deps/v8/test/mjsunit/wasm/jsapi-harness.js | 45 +- deps/v8/test/mjsunit/wasm/stack.js | 25 +- deps/v8/test/mjsunit/wasm/start-function.js | 10 +- .../wasm/test-wasm-compilation-control.js | 118 - .../wasm/trap-location-with-trap-if.js | 81 - deps/v8/test/mjsunit/wasm/wasm-constants.js | 57 +- .../test/mjsunit/wasm/wasm-module-builder.js | 51 +- deps/v8/test/mjsunit/whitespaces.js | 1 - deps/v8/test/mozilla/mozilla.status | 4 - deps/v8/test/test262/archive.py | 1 - deps/v8/test/test262/detachArrayBuffer.js | 2 +- deps/v8/test/test262/harness-adapt.js | 8 +- deps/v8/test/test262/harness-agent.js | 4 +- deps/v8/test/test262/list.py | 8 +- .../typedarray-arg-src-byteoffset-internal.js | 45 + ...pedarray-arg-target-byteoffset-internal.js | 44 + deps/v8/test/test262/test262.isolate | 1 + deps/v8/test/test262/test262.status | 189 +- deps/v8/test/test262/testcfg.py | 41 +- deps/v8/test/test262/upstream-local-tests.sh | 2 +- deps/v8/test/unittests/BUILD.gn | 19 +- .../unittests/api/interceptor-unittest.cc | 32 + .../unittests/api/remote-object-unittest.cc | 21 + .../unittests/asmjs/asm-scanner-unittest.cc | 290 ++ .../unittests/char-predicates-unittest.cc | 2 - .../compiler-dispatcher-helper.cc | 36 +- .../compiler-dispatcher-helper.h | 43 + .../compiler-dispatcher-job-unittest.cc | 131 +- .../compiler-dispatcher-unittest.cc | 362 +- .../optimizing-compile-dispatcher-unittest.cc | 7 +- .../arm/instruction-selector-arm-unittest.cc | 2 + .../instruction-selector-arm64-unittest.cc | 1 + .../compiler/bytecode-analysis-unittest.cc | 40 +- .../compiler/common-operator-unittest.cc | 2 +- .../effect-control-linearizer-unittest.cc | 121 - .../compiler/escape-analysis-unittest.cc | 4 +- .../instruction-selector-ia32-unittest.cc | 78 +- .../compiler/int64-lowering-unittest.cc | 8 +- .../compiler/js-builtin-reducer-unittest.cc | 2 +- .../compiler/load-elimination-unittest.cc | 4 +- .../unittests/compiler/node-test-utils.cc | 1 + .../test/unittests/compiler/node-test-utils.h | 1 + .../regalloc/register-allocator-unittest.cc | 1 + .../simplified-operator-reducer-unittest.cc | 64 +- .../tail-call-optimization-unittest.cc | 16 +- .../test/unittests/compiler/typer-unittest.cc | 339 +- .../x64/instruction-selector-x64-unittest.cc | 152 +- .../test/unittests/heap/marking-unittest.cc | 54 +- .../v8/test/unittests/heap/spaces-unittest.cc | 50 + .../bytecode-array-builder-unittest.cc | 215 +- .../bytecode-array-writer-unittest.cc | 150 +- .../bytecode-dead-code-optimizer-unittest.cc | 150 - .../interpreter/bytecode-decoder-unittest.cc | 4 +- .../bytecode-peephole-optimizer-unittest.cc | 428 -- .../bytecode-register-optimizer-unittest.cc | 118 +- .../interpreter-assembler-unittest.cc | 40 +- .../libplatform/default-platform-unittest.cc | 3 +- deps/v8/test/unittests/object-unittest.cc | 16 +- deps/v8/test/unittests/run-all-unittests.cc | 3 +- deps/v8/test/unittests/test-utils.cc | 16 + deps/v8/test/unittests/test-utils.h | 12 + deps/v8/test/unittests/unittests.gyp | 18 +- deps/v8/test/unittests/unittests.status | 8 - .../unittests/value-serializer-unittest.cc | 295 +- .../test/unittests/wasm/decoder-unittest.cc | 86 +- .../wasm/function-body-decoder-unittest.cc | 106 +- .../unittests/wasm/leb-helper-unittest.cc | 4 +- .../unittests/wasm/module-decoder-unittest.cc | 25 +- .../unittests/wasm/wasm-macro-gen-unittest.cc | 1 + .../unittests/zone/zone-allocator-unittest.cc | 76 + deps/v8/test/webkit/ToNumber-expected.txt | 6 +- .../class-constructor-return-expected.txt | 6 +- .../webkit/class-syntax-extends-expected.txt | 2 +- deps/v8/test/webkit/class-syntax-extends.js | 2 +- .../webkit/class-syntax-super-expected.txt | 8 +- deps/v8/test/webkit/class-syntax-super.js | 4 +- .../fast/js/basic-strict-mode-expected.txt | 4 +- ...s-continue-break-restrictions-expected.txt | 20 +- deps/v8/test/webkit/parseFloat-expected.txt | 2 +- deps/v8/test/webkit/webkit.status | 3 +- deps/v8/tools/callstats.html | 161 +- deps/v8/tools/callstats.py | 9 +- deps/v8/tools/codemap.js | 36 +- deps/v8/tools/dev/gen-tags.py | 89 + deps/v8/tools/dev/gm.py | 21 +- .../tools/foozzie/testdata/failure_output.txt | 14 +- deps/v8/tools/foozzie/v8_foozzie.py | 46 +- deps/v8/tools/foozzie/v8_foozzie_test.py | 2 +- deps/v8/tools/foozzie/v8_mock.js | 38 +- deps/v8/tools/foozzie/v8_suppressions.js | 17 +- deps/v8/tools/foozzie/v8_suppressions.py | 33 +- deps/v8/tools/gcmole/run-gcmole.py | 16 +- deps/v8/tools/gen-postmortem-metadata.py | 16 - deps/v8/tools/get_byteorder.py | 17 + deps/v8/tools/grokdump.py | 875 +++- deps/v8/tools/ic-explorer.html | 367 +- deps/v8/tools/ic-processor.js | 31 +- deps/v8/tools/lldbinit | 3 + deps/v8/tools/logreader.js | 2 +- deps/v8/tools/mac-nm | 3 +- deps/v8/tools/objdump-v8 | 7 +- deps/v8/tools/parser-shell.cc | 6 +- deps/v8/tools/perf-compare.py | 484 +++ deps/v8/tools/presubmit.py | 8 + deps/v8/tools/profile.js | 192 +- deps/v8/tools/profview/index.html | 115 + deps/v8/tools/profview/profile-utils.js | 594 +++ deps/v8/tools/profview/profview.css | 62 + deps/v8/tools/profview/profview.js | 1240 ++++++ deps/v8/tools/release/PRESUBMIT.py | 8 + deps/v8/tools/release/auto_roll.py | 2 +- deps/v8/tools/release/common_includes.py | 6 +- deps/v8/tools/release/git_recipes.py | 8 +- deps/v8/tools/release/merge_to_branch.py | 12 - deps/v8/tools/release/mergeinfo.py | 32 +- deps/v8/tools/release/script_test.py | 1 - deps/v8/tools/release/test_mergeinfo.py | 45 +- deps/v8/tools/release/test_scripts.py | 36 +- deps/v8/tools/release/test_update_node.py | 119 + deps/v8/tools/release/testdata/v8/.gitignore | 4 + .../v8/base/trace_event/common/common | 0 deps/v8/tools/release/testdata/v8/baz/v8_foo | 1 + deps/v8/tools/release/testdata/v8/baz/v8_new | 1 + deps/v8/tools/release/testdata/v8/new/v8_new | 1 + deps/v8/tools/release/testdata/v8/v8_foo | 1 + deps/v8/tools/release/testdata/v8/v8_new | 1 + deps/v8/tools/release/update_node.py | 150 + deps/v8/tools/run-tests.py | 26 +- deps/v8/tools/run_perf.py | 22 +- deps/v8/tools/testrunner/local/commands.py | 7 +- deps/v8/tools/testrunner/local/execution.py | 8 +- deps/v8/tools/testrunner/local/progress.py | 52 + deps/v8/tools/testrunner/local/variants.py | 32 +- deps/v8/tools/testrunner/objects/testcase.py | 5 +- deps/v8/tools/tick-processor.html | 2 +- deps/v8/tools/tickprocessor-driver.js | 6 +- deps/v8/tools/tickprocessor.js | 111 +- deps/v8/tools/turbolizer/code-view.js | 14 +- deps/v8/tools/v8heapconst.py | 580 ++- deps/v8/tools/verify_source_deps.py | 1 + deps/v8/tools/whitespace.txt | 3 +- 1488 files changed, 109862 insertions(+), 65480 deletions(-) create mode 100644 deps/v8/src/asmjs/asm-names.h create mode 100644 deps/v8/src/asmjs/asm-parser.cc create mode 100644 deps/v8/src/asmjs/asm-parser.h create mode 100644 deps/v8/src/asmjs/asm-scanner.cc create mode 100644 deps/v8/src/asmjs/asm-scanner.h create mode 100644 deps/v8/src/base/platform/platform-posix.h create mode 100644 deps/v8/src/base/timezone-cache.h rename deps/v8/src/builtins/{builtins-arguments.cc => builtins-arguments-gen.cc} (94%) rename deps/v8/src/builtins/{builtins-arguments.h => builtins-arguments-gen.h} (100%) create mode 100644 deps/v8/src/builtins/builtins-array-gen.cc rename deps/v8/src/builtins/{builtins-async-function.cc => builtins-async-function-gen.cc} (84%) rename deps/v8/src/builtins/{builtins-async.cc => builtins-async-gen.cc} (58%) rename deps/v8/src/builtins/{builtins-async.h => builtins-async-gen.h} (72%) create mode 100644 deps/v8/src/builtins/builtins-async-generator-gen.cc rename deps/v8/src/builtins/{builtins-async-iterator.cc => builtins-async-iterator-gen.cc} (72%) create mode 100644 deps/v8/src/builtins/builtins-boolean-gen.cc create mode 100644 deps/v8/src/builtins/builtins-call-gen.cc rename deps/v8/src/builtins/{builtins-constructor.cc => builtins-constructor-gen.cc} (83%) create mode 100644 deps/v8/src/builtins/builtins-constructor-gen.h create mode 100644 deps/v8/src/builtins/builtins-conversion-gen.cc delete mode 100644 deps/v8/src/builtins/builtins-conversion.cc create mode 100644 deps/v8/src/builtins/builtins-date-gen.cc create mode 100644 deps/v8/src/builtins/builtins-definitions.h create mode 100644 deps/v8/src/builtins/builtins-descriptors.h create mode 100644 deps/v8/src/builtins/builtins-forin-gen.cc create mode 100644 deps/v8/src/builtins/builtins-forin-gen.h create mode 100644 deps/v8/src/builtins/builtins-function-gen.cc rename deps/v8/src/builtins/{builtins-generator.cc => builtins-generator-gen.cc} (68%) create mode 100644 deps/v8/src/builtins/builtins-global-gen.cc rename deps/v8/src/builtins/{builtins-handler.cc => builtins-handler-gen.cc} (64%) rename deps/v8/src/builtins/{builtins-ic.cc => builtins-ic-gen.cc} (86%) create mode 100644 deps/v8/src/builtins/builtins-internal-gen.cc create mode 100644 deps/v8/src/builtins/builtins-interpreter-gen.cc create mode 100644 deps/v8/src/builtins/builtins-intl.cc create mode 100644 deps/v8/src/builtins/builtins-math-gen.cc create mode 100644 deps/v8/src/builtins/builtins-number-gen.cc create mode 100644 deps/v8/src/builtins/builtins-object-gen.cc delete mode 100644 deps/v8/src/builtins/builtins-object.h rename deps/v8/src/builtins/{builtins-promise.cc => builtins-promise-gen.cc} (85%) rename deps/v8/src/builtins/{builtins-promise.h => builtins-promise-gen.h} (97%) create mode 100644 deps/v8/src/builtins/builtins-regexp-gen.cc rename deps/v8/src/builtins/{builtins-regexp.h => builtins-regexp-gen.h} (71%) create mode 100644 deps/v8/src/builtins/builtins-sharedarraybuffer-gen.cc create mode 100644 deps/v8/src/builtins/builtins-string-gen.cc create mode 100644 deps/v8/src/builtins/builtins-symbol-gen.cc create mode 100644 deps/v8/src/builtins/builtins-typedarray-gen.cc create mode 100644 deps/v8/src/builtins/builtins-utils-gen.h rename deps/v8/src/builtins/{builtins-wasm.cc => builtins-wasm-gen.cc} (95%) create mode 100644 deps/v8/src/builtins/setup-builtins-internal.cc create mode 100644 deps/v8/src/callable.h create mode 100644 deps/v8/src/code-stubs-utils.h delete mode 100644 deps/v8/src/compiler/graph-replay.cc delete mode 100644 deps/v8/src/compiler/graph-replay.h delete mode 100644 deps/v8/src/context-measure.cc delete mode 100644 deps/v8/src/context-measure.h create mode 100644 deps/v8/src/heap/concurrent-marking.cc create mode 100644 deps/v8/src/heap/concurrent-marking.h create mode 100644 deps/v8/src/ia32/sse-instr.h create mode 100644 deps/v8/src/ic/binary-op-assembler.cc create mode 100644 deps/v8/src/ic/binary-op-assembler.h delete mode 100644 deps/v8/src/interpreter/bytecode-dead-code-optimizer.cc delete mode 100644 deps/v8/src/interpreter/bytecode-dead-code-optimizer.h delete mode 100644 deps/v8/src/interpreter/bytecode-peephole-optimizer.cc delete mode 100644 deps/v8/src/interpreter/bytecode-peephole-optimizer.h delete mode 100644 deps/v8/src/interpreter/bytecode-peephole-table.h create mode 100644 deps/v8/src/interpreter/interpreter-generator.cc create mode 100644 deps/v8/src/interpreter/interpreter-generator.h create mode 100644 deps/v8/src/interpreter/interpreter-intrinsics-generator.cc create mode 100644 deps/v8/src/interpreter/interpreter-intrinsics-generator.h delete mode 100644 deps/v8/src/interpreter/mkpeephole.cc create mode 100644 deps/v8/src/interpreter/setup-interpreter-internal.cc create mode 100644 deps/v8/src/interpreter/setup-interpreter.h delete mode 100644 deps/v8/src/js/arraybuffer.js delete mode 100644 deps/v8/src/js/harmony-atomics.js create mode 100644 deps/v8/src/macro-assembler-inl.h create mode 100644 deps/v8/src/objects/code-cache-inl.h create mode 100644 deps/v8/src/objects/code-cache.h create mode 100644 deps/v8/src/objects/compilation-cache-inl.h create mode 100644 deps/v8/src/objects/compilation-cache.h create mode 100644 deps/v8/src/objects/descriptor-array.h create mode 100644 deps/v8/src/objects/dictionary.h create mode 100644 deps/v8/src/objects/frame-array-inl.h create mode 100644 deps/v8/src/objects/frame-array.h create mode 100644 deps/v8/src/objects/hash-table.h create mode 100644 deps/v8/src/objects/string-table.h delete mode 100644 deps/v8/src/parsing/duplicate-finder.cc create mode 100644 deps/v8/src/setup-isolate-deserialize.cc create mode 100644 deps/v8/src/setup-isolate-full.cc create mode 100644 deps/v8/src/setup-isolate.h create mode 100644 deps/v8/src/trap-handler/DEPS create mode 100644 deps/v8/src/trap-handler/OWNERS create mode 100644 deps/v8/src/trap-handler/handler-inside.cc create mode 100644 deps/v8/src/trap-handler/handler-outside.cc create mode 100644 deps/v8/src/trap-handler/handler-shared.cc create mode 100644 deps/v8/src/trap-handler/trap-handler-internal.h create mode 100644 deps/v8/test/cctest/heap/test-concurrent-marking.cc create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/CompareNil.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/CompareTypeOf.golden create mode 100644 deps/v8/test/cctest/setup-isolate-for-tests.cc create mode 100644 deps/v8/test/cctest/setup-isolate-for-tests.h create mode 100644 deps/v8/test/cctest/test-simulator-arm64.cc delete mode 100644 deps/v8/test/cctest/wasm/test-run-wasm-simd-lowering.cc create mode 100644 deps/v8/test/debugger/debug/debug-evaluate-no-side-effect-async.js create mode 100644 deps/v8/test/debugger/debug/debug-evaluate-no-side-effect-builtins-2.js create mode 100644 deps/v8/test/debugger/debug/debug-evaluate-no-side-effect-iife.js create mode 100644 deps/v8/test/debugger/debug/debug-evaluate-no-side-effect-ops.js create mode 100644 deps/v8/test/debugger/debug/es8/async-debug-builtin-predictions.js delete mode 100644 deps/v8/test/debugger/debug/ignition/debug-break-mixed-stack.js delete mode 100644 deps/v8/test/debugger/debug/ignition/debug-step-mixed-stack.js delete mode 100644 deps/v8/test/inspector/console/memory-setter-in-strict-mode-expected.txt delete mode 100644 deps/v8/test/inspector/console/memory-setter-in-strict-mode.js create mode 100644 deps/v8/test/inspector/debugger/async-for-await-of-promise-stack-expected.txt create mode 100644 deps/v8/test/inspector/debugger/async-for-await-of-promise-stack.js create mode 100644 deps/v8/test/inspector/debugger/caught-exception-from-framework-inside-async-expected.txt create mode 100644 deps/v8/test/inspector/debugger/caught-exception-from-framework-inside-async.js create mode 100644 deps/v8/test/inspector/debugger/get-possible-breakpoints-master-expected.txt create mode 100644 deps/v8/test/inspector/debugger/get-possible-breakpoints-master.js create mode 100644 deps/v8/test/inspector/debugger/get-possible-breakpoints-restrict-to-function-expected.txt create mode 100644 deps/v8/test/inspector/debugger/get-possible-breakpoints-restrict-to-function.js create mode 100644 deps/v8/test/inspector/debugger/pause-expected.txt create mode 100644 deps/v8/test/inspector/debugger/pause.js create mode 100644 deps/v8/test/inspector/debugger/resources/break-locations.js create mode 100644 deps/v8/test/inspector/debugger/restore-breakpoint-expected.txt create mode 100644 deps/v8/test/inspector/debugger/restore-breakpoint.js create mode 100644 deps/v8/test/inspector/debugger/return-break-locations-expected.txt create mode 100644 deps/v8/test/inspector/debugger/return-break-locations.js create mode 100644 deps/v8/test/inspector/debugger/schedule-step-into-async-expected.txt create mode 100644 deps/v8/test/inspector/debugger/schedule-step-into-async-set-timeout-expected.txt create mode 100644 deps/v8/test/inspector/debugger/schedule-step-into-async-set-timeout.js create mode 100644 deps/v8/test/inspector/debugger/schedule-step-into-async.js create mode 100644 deps/v8/test/inspector/debugger/script-end-location-expected.txt create mode 100644 deps/v8/test/inspector/debugger/script-end-location.js create mode 100644 deps/v8/test/inspector/debugger/step-into-expected.txt create mode 100644 deps/v8/test/inspector/debugger/step-into.js create mode 100644 deps/v8/test/inspector/debugger/step-out-async-await-expected.txt create mode 100644 deps/v8/test/inspector/debugger/step-out-async-await.js create mode 100644 deps/v8/test/inspector/debugger/step-over-another-context-group-expected.txt create mode 100644 deps/v8/test/inspector/debugger/step-over-another-context-group.js create mode 100644 deps/v8/test/inspector/debugger/stepping-and-break-program-api-expected.txt create mode 100644 deps/v8/test/inspector/debugger/stepping-and-break-program-api.js create mode 100644 deps/v8/test/inspector/debugger/stepping-ignores-injected-script-expected.txt create mode 100644 deps/v8/test/inspector/debugger/stepping-ignores-injected-script.js create mode 100644 deps/v8/test/inspector/debugger/stepping-tail-call-expected.txt create mode 100644 deps/v8/test/inspector/debugger/stepping-tail-call.js create mode 100644 deps/v8/test/inspector/debugger/stepping-with-exposed-injected-script-expected.txt create mode 100644 deps/v8/test/inspector/debugger/stepping-with-exposed-injected-script.js create mode 100644 deps/v8/test/inspector/debugger/stepping-with-natives-and-frameworks-expected.txt create mode 100644 deps/v8/test/inspector/debugger/stepping-with-natives-and-frameworks.js create mode 100644 deps/v8/test/inspector/debugger/wasm-imports-expected.txt create mode 100644 deps/v8/test/inspector/debugger/wasm-imports.js create mode 100644 deps/v8/test/inspector/runtime/command-line-api-expected.txt create mode 100644 deps/v8/test/inspector/runtime/command-line-api.js create mode 100644 deps/v8/test/inspector/runtime/console-memory-expected.txt create mode 100644 deps/v8/test/inspector/runtime/console-memory.js create mode 100644 deps/v8/test/inspector/runtime/create-context-expected.txt create mode 100644 deps/v8/test/inspector/runtime/create-context.js create mode 100644 deps/v8/test/inspector/runtime/runtime-evaluate-with-dirty-context-expected.txt create mode 100644 deps/v8/test/inspector/runtime/runtime-evaluate-with-dirty-context.js create mode 100644 deps/v8/test/inspector/runtime/runtime-restore-expected.txt create mode 100644 deps/v8/test/inspector/runtime/runtime-restore.js create mode 100644 deps/v8/test/js-perf-test/Array/filter.js create mode 100644 deps/v8/test/js-perf-test/Array/map.js create mode 100644 deps/v8/test/js-perf-test/Array/run.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/construct-all-typedarrays.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/construct-same-typedarray.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/construct-typedarray.js create mode 100644 deps/v8/test/message/README.md create mode 100644 deps/v8/test/message/asm-assignment-undeclared.js create mode 100644 deps/v8/test/message/asm-assignment-undeclared.out create mode 100644 deps/v8/test/message/asm-function-mismatch-def.js create mode 100644 deps/v8/test/message/asm-function-mismatch-def.out create mode 100644 deps/v8/test/message/asm-function-mismatch-use.js create mode 100644 deps/v8/test/message/asm-function-mismatch-use.out create mode 100644 deps/v8/test/message/asm-function-redefined.js create mode 100644 deps/v8/test/message/asm-function-redefined.out create mode 100644 deps/v8/test/message/asm-function-undefined.js create mode 100644 deps/v8/test/message/asm-function-undefined.out create mode 100644 deps/v8/test/message/asm-function-variable-collision.js create mode 100644 deps/v8/test/message/asm-function-variable-collision.out create mode 100644 deps/v8/test/message/asm-missing-parameter-annotation.js create mode 100644 deps/v8/test/message/asm-missing-parameter-annotation.out create mode 100644 deps/v8/test/message/asm-missing-return-annotation.js create mode 100644 deps/v8/test/message/asm-missing-return-annotation.out create mode 100644 deps/v8/test/message/asm-table-mismatch-def.js create mode 100644 deps/v8/test/message/asm-table-mismatch-def.out create mode 100644 deps/v8/test/message/asm-table-mismatch-use.js create mode 100644 deps/v8/test/message/asm-table-mismatch-use.out create mode 100644 deps/v8/test/message/asm-table-redefined.js create mode 100644 deps/v8/test/message/asm-table-redefined.out create mode 100644 deps/v8/test/message/asm-table-undefined.js create mode 100644 deps/v8/test/message/asm-table-undefined.out create mode 100644 deps/v8/test/message/asm-table-variable-collision.js create mode 100644 deps/v8/test/message/asm-table-variable-collision.out create mode 100644 deps/v8/test/message/get-iterator1.js create mode 100644 deps/v8/test/message/get-iterator1.out create mode 100644 deps/v8/test/message/let-asi-await-nonasync.js create mode 100644 deps/v8/test/message/let-asi-await-nonasync.out create mode 100644 deps/v8/test/message/let-asi-yield-nongenerator.js create mode 100644 deps/v8/test/message/let-asi-yield-nongenerator.out create mode 100644 deps/v8/test/message/modules-cycle5.js create mode 100644 deps/v8/test/message/modules-cycle5.out create mode 100644 deps/v8/test/message/modules-cycle6.js create mode 100644 deps/v8/test/message/modules-cycle6.out create mode 100644 deps/v8/test/message/modules-skip-cycle5.js create mode 100644 deps/v8/test/message/modules-skip-cycle6.js create mode 100644 deps/v8/test/message/regress/regress-crbug-691194.js create mode 100644 deps/v8/test/message/regress/regress-crbug-691194.out delete mode 100644 deps/v8/test/mjsunit/array-shift5.js create mode 100644 deps/v8/test/mjsunit/asm/call-collisions.js create mode 100644 deps/v8/test/mjsunit/basic-promise.js create mode 100644 deps/v8/test/mjsunit/compiler/escape-analysis-13.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-693425.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-694088.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-700883.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-713367.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-714483.js delete mode 100644 deps/v8/test/mjsunit/compiler/regress-strict-equals-mixed-feedback.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-v8-6077.js create mode 100644 deps/v8/test/mjsunit/compiler/rest-parameters.js create mode 100644 deps/v8/test/mjsunit/deopt-recursive-eager-once.js create mode 100644 deps/v8/test/mjsunit/deopt-recursive-lazy-once.js create mode 100644 deps/v8/test/mjsunit/deopt-recursive-soft-once.js create mode 100644 deps/v8/test/mjsunit/deopt-unlinked.js create mode 100644 deps/v8/test/mjsunit/duplicate-parameters.js create mode 100644 deps/v8/test/mjsunit/es6/generator-let-asi.js create mode 100644 deps/v8/test/mjsunit/es6/global-proto-proxy.js create mode 100644 deps/v8/test/mjsunit/es6/regress/regress-6098.js create mode 100644 deps/v8/test/mjsunit/es6/typedarray-construct-by-array-like.js create mode 100644 deps/v8/test/mjsunit/es6/typedarray-construct-by-buffer-ordering.js create mode 100644 deps/v8/test/mjsunit/es6/typedarray-construct-offset-not-smi.js create mode 100644 deps/v8/test/mjsunit/es7/regexp-ui-word.js create mode 100644 deps/v8/test/mjsunit/es8/async-let-asi.js create mode 100644 deps/v8/test/mjsunit/harmony/async-generators-basic.js create mode 100644 deps/v8/test/mjsunit/harmony/atomics-value-check.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-1.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-10.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-11.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-12.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-13.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-14.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-15.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-2.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-3.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-4.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-5.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-6.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-7.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-8.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-9.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-1.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-2.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-3.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-4.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-5.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-6.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-7.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-8.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-9.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-empty.js create mode 100644 deps/v8/test/mjsunit/harmony/regexp-dotall-disabled.js create mode 100644 deps/v8/test/mjsunit/harmony/regexp-dotall.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-6100.js create mode 100644 deps/v8/test/mjsunit/heapObjectVerify.js create mode 100644 deps/v8/test/mjsunit/icu-date-lord-howe.js create mode 100644 deps/v8/test/mjsunit/icu-date-to-string.js delete mode 100644 deps/v8/test/mjsunit/ignition/regress-5768.js create mode 100644 deps/v8/test/mjsunit/json-errors.js delete mode 100644 deps/v8/test/mjsunit/minmax-simple.js create mode 100644 deps/v8/test/mjsunit/modules-cycle.js create mode 100644 deps/v8/test/mjsunit/modules-skip-cycle.js create mode 100644 deps/v8/test/mjsunit/never-baseline.js create mode 100644 deps/v8/test/mjsunit/number-isnan-opt.js create mode 100644 deps/v8/test/mjsunit/regress-6223.js create mode 100644 deps/v8/test/mjsunit/regress-707410.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-319120.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-5380.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6082.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6142.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6186.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6196.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6203.js create mode 100644 deps/v8/test/mjsunit/regress/regress-696332.js create mode 100644 deps/v8/test/mjsunit/regress/regress-698790.js create mode 100644 deps/v8/test/mjsunit/regress/regress-705934.js create mode 100644 deps/v8/test/mjsunit/regress/regress-707187.js create mode 100644 deps/v8/test/mjsunit/regress/regress-707675.js create mode 100644 deps/v8/test/mjsunit/regress/regress-708598.js create mode 100644 deps/v8/test/mjsunit/regress/regress-709029.js create mode 100644 deps/v8/test/mjsunit/regress/regress-715582.js create mode 100644 deps/v8/test/mjsunit/regress/regress-726636.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-688567.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-688734.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-691687.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-696622.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-697017.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-698607.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-699282.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-700678.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-700733.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-702793.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-702798.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-703610.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-708050-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-708050-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-709537.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-709753.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-722756.js create mode 100644 deps/v8/test/mjsunit/regress/regress-unlink-closures-on-deopt.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-709684.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-6164.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-702460.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-702839.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-703568.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-708714.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regression-717194.js delete mode 100644 deps/v8/test/mjsunit/shared-function-tier-up-default.js create mode 100644 deps/v8/test/mjsunit/type-profile/collect-type-profile.js create mode 100644 deps/v8/test/mjsunit/wasm/async-compile.js create mode 100644 deps/v8/test/mjsunit/wasm/compilation-limits-asm.js create mode 100644 deps/v8/test/mjsunit/wasm/compilation-limits.js create mode 100644 deps/v8/test/mjsunit/wasm/interpreter-mixed.js create mode 100644 deps/v8/test/mjsunit/wasm/interpreter.js delete mode 100644 deps/v8/test/mjsunit/wasm/test-wasm-compilation-control.js delete mode 100644 deps/v8/test/mjsunit/wasm/trap-location-with-trap-if.js create mode 100644 deps/v8/test/test262/local-tests/test/built-ins/TypedArray/prototype/set/typedarray-arg-src-byteoffset-internal.js create mode 100644 deps/v8/test/test262/local-tests/test/built-ins/TypedArray/prototype/set/typedarray-arg-target-byteoffset-internal.js create mode 100644 deps/v8/test/unittests/api/interceptor-unittest.cc create mode 100644 deps/v8/test/unittests/asmjs/asm-scanner-unittest.cc create mode 100644 deps/v8/test/unittests/heap/spaces-unittest.cc delete mode 100644 deps/v8/test/unittests/interpreter/bytecode-dead-code-optimizer-unittest.cc delete mode 100644 deps/v8/test/unittests/interpreter/bytecode-peephole-optimizer-unittest.cc create mode 100644 deps/v8/test/unittests/zone/zone-allocator-unittest.cc create mode 100755 deps/v8/tools/dev/gen-tags.py create mode 100755 deps/v8/tools/get_byteorder.py mode change 100644 => 100755 deps/v8/tools/lldbinit create mode 100755 deps/v8/tools/perf-compare.py create mode 100644 deps/v8/tools/profview/index.html create mode 100644 deps/v8/tools/profview/profile-utils.js create mode 100644 deps/v8/tools/profview/profview.css create mode 100644 deps/v8/tools/profview/profview.js create mode 100644 deps/v8/tools/release/PRESUBMIT.py mode change 100644 => 100755 deps/v8/tools/release/test_scripts.py create mode 100755 deps/v8/tools/release/test_update_node.py create mode 100644 deps/v8/tools/release/testdata/v8/.gitignore create mode 100644 deps/v8/tools/release/testdata/v8/base/trace_event/common/common create mode 100644 deps/v8/tools/release/testdata/v8/baz/v8_foo create mode 100644 deps/v8/tools/release/testdata/v8/baz/v8_new create mode 100644 deps/v8/tools/release/testdata/v8/new/v8_new create mode 100644 deps/v8/tools/release/testdata/v8/v8_foo create mode 100644 deps/v8/tools/release/testdata/v8/v8_new create mode 100755 deps/v8/tools/release/update_node.py diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index 8088214daa951b..f85d0d30b18974 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -1,3 +1,5 @@ +#*# +*.Makefile *.a *.exe *.idb @@ -18,9 +20,9 @@ *.vcxproj *.vcxproj.filters *.xcodeproj -#*# *~ .#* +.*.sw? .cpplint-cache .cproject .d8_history @@ -30,26 +32,23 @@ .project .pydevproject .settings -.*.sw? -bsuite -compile_commands.json -d8 -d8_g -gccauses -gcsuspects -shell -shell_g /_* /build -/gypfiles/win_toolchain.json /buildtools +/gypfiles/win_toolchain.json /hydrogen.cfg /obj /out /out.gn /perf.data /perf.data.old +/src/inspector/build/closure-compiler +/src/inspector/build/closure-compiler.tar.gz /test/benchmarks/data +/test/fuzzer/wasm +/test/fuzzer/wasm.tar.gz +/test/fuzzer/wasm_asmjs +/test/fuzzer/wasm_asmjs.tar.gz /test/mozilla/data /test/promises-aplus/promises-tests /test/promises-aplus/promises-tests.tar.gz @@ -57,6 +56,7 @@ shell_g /test/test262/data /test/test262/data.tar /test/test262/harness +/test/wasm-js /testing/gmock /testing/gtest/* !/testing/gtest/include @@ -81,26 +81,26 @@ shell_g /tools/swarming_client /tools/visual_studio/Debug /tools/visual_studio/Release -/test/fuzzer/wasm -/test/fuzzer/wasm_asmjs /v8.log.ll /xcodebuild -TAGS -*.Makefile -GTAGS +GPATH GRTAGS GSYMS -GPATH -tags +GTAGS +TAGS +bsuite +compile_commands.json +d8 +d8_g +gccauses +gcsuspects gtags.files +shell +shell_g +tags turbo*.cfg turbo*.dot turbo*.json v8.ignition_dispatches_table.json -/test/fuzzer/wasm.tar.gz -/test/fuzzer/wasm_asmjs.tar.gz -/src/inspector/build/closure-compiler.tar.gz -/src/inspector/build/closure-compiler -/test/wasm-js !/third_party/jinja2 !/third_party/markupsafe diff --git a/deps/v8/.gn b/deps/v8/.gn index c80980ea092d05..b3adcc74cd64b2 100644 --- a/deps/v8/.gn +++ b/deps/v8/.gn @@ -21,5 +21,7 @@ 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 + [ + "//test/test262/BUILD.gn", + "//BUILD.gn", + ] diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index 756d1dc985e6ad..27882149a4d21e 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -1,4 +1,4 @@ -# Below is a list of people and organizations that have contributed +# Below is a list of people and organizations that have contributed # to the V8 project. Names should be added to the list like so: # # Name/Organization @@ -82,6 +82,7 @@ JunHo Seo Kang-Hao (Kenny) Lu Karl Skomski Kevin Gibbons +Loo Rong Jie Luis Reis Luke Zarko Maciej Małecki diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 6f656f69582762..80ff7340b1e87c 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -20,6 +20,12 @@ declare_args() { # Print to stdout on Android. v8_android_log_stdout = false + # Sets -DV8_ENABLE_FUTURE. + v8_enable_future = false + + # Sets -DV8_DISABLE_TURBO. + v8_disable_turbo = false + # Sets -DVERIFY_HEAP. v8_enable_verify_heap = "" @@ -69,6 +75,9 @@ declare_args() { # Sets -dV8_ENABLE_CHECKS. v8_enable_v8_checks = "" + # Builds the snapshot with --trace-ignition + v8_trace_ignition = false + # With post mortem support enabled, metadata is embedded into libv8 that # describes various parameters of the VM for use by debuggers. See # tools/gen-postmortem-metadata.py for details. @@ -101,6 +110,19 @@ declare_args() { v8_enable_gdbjit = ((v8_current_cpu == "x86" || v8_current_cpu == "x64" || v8_current_cpu == "x87") && (is_linux || is_mac)) || (v8_current_cpu == "ppc64" && is_linux) + + # Set v8_host_byteorder + v8_host_byteorder = "little" + + # ppc64 can be either BE or LE + if (host_cpu == "ppc64") { + v8_host_byteorder = + exec_script("//tools/get_byteorder.py", [], "trim string") + } + if (host_cpu == "ppc" || host_cpu == "s390" || host_cpu == "s390x" || + host_cpu == "mips" || host_cpu == "mips64") { + v8_host_byteorder = "big" + } } # Derived defaults. @@ -125,7 +147,6 @@ if (v8_enable_v8_checks == "") { # snapshots. is_target_simulator = target_cpu != v8_target_cpu -v8_generated_peephole_source = "$target_gen_dir/bytecode-peephole-table.cc" v8_random_seed = "314159265" v8_toolset_for_shell = "host" @@ -178,10 +199,10 @@ config("external_config") { if (is_component_build) { defines = [ "USING_V8_SHARED" ] } - include_dirs = [ "include" ] - if (v8_enable_inspector) { - include_dirs += [ "$target_gen_dir/include" ] - } + include_dirs = [ + "include", + "$target_gen_dir/include", + ] } # This config should only be applied to code that needs to be explicitly @@ -204,6 +225,12 @@ config("features") { defines += [ "V8_PROMISE_INTERNAL_FIELD_COUNT=${v8_promise_internal_field_count}" ] } + if (v8_enable_future) { + defines += [ "V8_ENABLE_FUTURE" ] + } + if (v8_disable_turbo) { + defines += [ "V8_DISABLE_TURBO" ] + } if (v8_enable_gdbjit) { defines += [ "ENABLE_GDB_JIT_INTERFACE" ] } @@ -240,6 +267,9 @@ config("features") { if (v8_enable_handle_zapping) { defines += [ "ENABLE_HANDLE_ZAPPING" ] } + if (v8_use_snapshot) { + defines += [ "V8_USE_SNAPSHOT" ] + } if (v8_use_external_startup_data) { defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ] } @@ -356,8 +386,31 @@ config("toolchain") { if (v8_current_cpu == "s390x") { defines += [ "V8_TARGET_ARCH_S390X" ] } - if (host_cpu == "x64" || host_cpu == "x86") { + if (v8_host_byteorder == "little") { defines += [ "V8_TARGET_ARCH_S390_LE_SIM" ] + } else { + cflags += [ "-march=z196" ] + } + } + if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") { + defines += [ "V8_TARGET_ARCH_PPC" ] + if (v8_current_cpu == "ppc64") { + defines += [ "V8_TARGET_ARCH_PPC64" ] + } + if (v8_host_byteorder == "little") { + defines += [ "V8_TARGET_ARCH_PPC_LE" ] + } else if (v8_host_byteorder == "big") { + defines += [ "V8_TARGET_ARCH_PPC_BE" ] + if (current_os == "aix") { + cflags += [ + # Work around AIX ceil, trunc and round oddities. + "-mcpu=power5+", + "-mfprnd", + + # Work around AIX assembler popcntb bug. + "-mno-popcntb", + ] + } } } if (v8_current_cpu == "x86") { @@ -414,10 +467,25 @@ config("toolchain") { # TODO(hans): Remove once http://crbug.com/428099 is resolved. "-Winconsistent-missing-override", ] - #if (v8_current_cpu == "x64" || v8_current_cpu == "arm64" || - # v8_current_cpu == "mips64el") { - # cflags += [ "-Wshorten-64-to-32" ] - #} + if (v8_current_cpu == "x64" || v8_current_cpu == "arm64" || + v8_current_cpu == "mips64el") { + cflags += [ "-Wshorten-64-to-32" ] + } + } + + if (is_win) { + cflags += [ + "/wd4245", # Conversion with signed/unsigned mismatch. + "/wd4267", # Conversion with possible loss of data. + "/wd4324", # Padding structure due to alignment. + "/wd4701", # Potentially uninitialized local variable. + "/wd4702", # Unreachable code. + "/wd4703", # Potentially uninitialized local pointer variable. + "/wd4709", # Comma operator within array index expr (bugged). + "/wd4714", # Function marked forceinline not inlined. + "/wd4718", # Recursive call has no side-effect. + "/wd4800", # Forcing value to bool. + ] } } @@ -445,7 +513,6 @@ action("js2c") { "src/js/v8natives.js", "src/js/array.js", "src/js/string.js", - "src/js/arraybuffer.js", "src/js/typedarray.js", "src/js/collection.js", "src/js/weak-collection.js", @@ -483,43 +550,6 @@ action("js2c") { } } -action("js2c_experimental") { - visibility = [ ":*" ] # Only targets in this file can depend on this. - - script = "tools/js2c.py" - - # The script depends on this other script, this rule causes a rebuild if it - # changes. - inputs = [ - "tools/jsmin.py", - ] - - # NOSORT - sources = [ - "src/js/macros.py", - "src/messages.h", - "src/js/harmony-atomics.js", - ] - - outputs = [ - "$target_gen_dir/experimental-libraries.cc", - ] - - args = [ - rebase_path("$target_gen_dir/experimental-libraries.cc", - root_build_dir), - "EXPERIMENTAL", - ] + rebase_path(sources, root_build_dir) - - if (v8_use_external_startup_data) { - outputs += [ "$target_gen_dir/libraries_experimental.bin" ] - args += [ - "--startup_blob", - rebase_path("$target_gen_dir/libraries_experimental.bin", root_build_dir), - ] - } -} - action("js2c_extras") { visibility = [ ":*" ] # Only targets in this file can depend on this. @@ -630,7 +660,6 @@ if (v8_use_external_startup_data) { deps = [ ":js2c", - ":js2c_experimental", ":js2c_experimental_extras", ":js2c_extras", ] @@ -638,7 +667,6 @@ if (v8_use_external_startup_data) { # NOSORT sources = [ "$target_gen_dir/libraries.bin", - "$target_gen_dir/libraries_experimental.bin", "$target_gen_dir/libraries_extras.bin", "$target_gen_dir/libraries_experimental_extras.bin", ] @@ -714,6 +742,10 @@ action("run_mksnapshot") { ] } + if (v8_trace_ignition) { + args += [ "--trace-ignition" ] + } + if (v8_use_external_startup_data) { outputs += [ "$root_out_dir/snapshot_blob.bin" ] args += [ @@ -728,29 +760,6 @@ action("run_mksnapshot") { } } -action("run_mkpeephole") { - visibility = [ ":*" ] # Only targets in this file can depend on this. - - deps = [ - ":mkpeephole($v8_snapshot_toolchain)", - ] - - outputs = [ - v8_generated_peephole_source, - ] - - sources = [] - - script = "tools/run.py" - - args = [ - "./" + rebase_path(get_label_info(":mkpeephole($v8_snapshot_toolchain)", - "root_out_dir") + "/mkpeephole", - root_build_dir), - rebase_path(v8_generated_peephole_source, root_build_dir), - ] -} - action("v8_dump_build_config") { script = "tools/testrunner/utils/dump_build_config.py" outputs = [ @@ -769,7 +778,6 @@ action("v8_dump_build_config") { "target_cpu=\"$target_cpu\"", "v8_current_cpu=\"$v8_current_cpu\"", "v8_enable_i18n_support=$v8_enable_i18n_support", - "v8_enable_inspector=$v8_enable_inspector", "v8_target_cpu=\"$v8_target_cpu\"", "v8_use_snapshot=$v8_use_snapshot", ] @@ -791,6 +799,7 @@ source_set("v8_maybe_snapshot") { } else { # Ignore v8_use_external_startup_data setting if no snapshot is used. public_deps = [ + ":v8_builtins_setup", ":v8_nosnapshot", ] } @@ -801,7 +810,6 @@ v8_source_set("v8_nosnapshot") { deps = [ ":js2c", - ":js2c_experimental", ":js2c_experimental_extras", ":js2c_extras", ":v8_base", @@ -809,7 +817,6 @@ v8_source_set("v8_nosnapshot") { sources = [ "$target_gen_dir/experimental-extras-libraries.cc", - "$target_gen_dir/experimental-libraries.cc", "$target_gen_dir/extras-libraries.cc", "$target_gen_dir/libraries.cc", "src/snapshot/snapshot-empty.cc", @@ -828,7 +835,6 @@ v8_source_set("v8_snapshot") { deps = [ ":js2c", - ":js2c_experimental", ":js2c_experimental_extras", ":js2c_extras", ":v8_base", @@ -841,10 +847,10 @@ v8_source_set("v8_snapshot") { sources = [ "$target_gen_dir/experimental-extras-libraries.cc", - "$target_gen_dir/experimental-libraries.cc", "$target_gen_dir/extras-libraries.cc", "$target_gen_dir/libraries.cc", "$target_gen_dir/snapshot.cc", + "src/setup-isolate-deserialize.cc", ] configs = [ ":internal_config" ] @@ -856,7 +862,6 @@ if (v8_use_external_startup_data) { deps = [ ":js2c", - ":js2c_experimental", ":js2c_experimental_extras", ":js2c_extras", ":v8_base", @@ -867,6 +872,7 @@ if (v8_use_external_startup_data) { ] sources = [ + "src/setup-isolate-deserialize.cc", "src/snapshot/natives-external.cc", "src/snapshot/snapshot-external.cc", ] @@ -875,6 +881,138 @@ if (v8_use_external_startup_data) { } } +v8_source_set("v8_builtins_generators") { + visibility = [ + ":*", + "test/cctest:*", + "test/unittests:*", + ] + + deps = [ + ":v8_base", + ] + + sources = [ + ### gcmole(all) ### + "src/builtins/builtins-arguments-gen.cc", + "src/builtins/builtins-arguments-gen.h", + "src/builtins/builtins-array-gen.cc", + "src/builtins/builtins-async-function-gen.cc", + "src/builtins/builtins-async-gen.cc", + "src/builtins/builtins-async-gen.h", + "src/builtins/builtins-async-generator-gen.cc", + "src/builtins/builtins-async-iterator-gen.cc", + "src/builtins/builtins-boolean-gen.cc", + "src/builtins/builtins-call-gen.cc", + "src/builtins/builtins-constructor-gen.cc", + "src/builtins/builtins-constructor-gen.h", + "src/builtins/builtins-constructor.h", + "src/builtins/builtins-conversion-gen.cc", + "src/builtins/builtins-date-gen.cc", + "src/builtins/builtins-forin-gen.cc", + "src/builtins/builtins-forin-gen.h", + "src/builtins/builtins-function-gen.cc", + "src/builtins/builtins-generator-gen.cc", + "src/builtins/builtins-global-gen.cc", + "src/builtins/builtins-handler-gen.cc", + "src/builtins/builtins-ic-gen.cc", + "src/builtins/builtins-internal-gen.cc", + "src/builtins/builtins-interpreter-gen.cc", + "src/builtins/builtins-math-gen.cc", + "src/builtins/builtins-number-gen.cc", + "src/builtins/builtins-object-gen.cc", + "src/builtins/builtins-promise-gen.cc", + "src/builtins/builtins-promise-gen.h", + "src/builtins/builtins-regexp-gen.cc", + "src/builtins/builtins-regexp-gen.h", + "src/builtins/builtins-sharedarraybuffer-gen.cc", + "src/builtins/builtins-string-gen.cc", + "src/builtins/builtins-symbol-gen.cc", + "src/builtins/builtins-typedarray-gen.cc", + "src/builtins/builtins-utils-gen.h", + "src/builtins/builtins-wasm-gen.cc", + "src/builtins/setup-builtins-internal.cc", + "src/ic/accessor-assembler.cc", + "src/ic/accessor-assembler.h", + "src/ic/binary-op-assembler.cc", + "src/ic/binary-op-assembler.h", + "src/ic/keyed-store-generic.cc", + "src/ic/keyed-store-generic.h", + "src/interpreter/interpreter-assembler.cc", + "src/interpreter/interpreter-assembler.h", + "src/interpreter/interpreter-generator.cc", + "src/interpreter/interpreter-generator.h", + "src/interpreter/interpreter-intrinsics-generator.cc", + "src/interpreter/interpreter-intrinsics-generator.h", + "src/interpreter/setup-interpreter-internal.cc", + "src/interpreter/setup-interpreter.h", + ] + + if (v8_current_cpu == "x86") { + sources += [ + ### gcmole(arch:ia32) ### + "src/builtins/ia32/builtins-ia32.cc", + ] + } else if (v8_current_cpu == "x64") { + sources += [ + ### gcmole(arch:x64) ### + "src/builtins/x64/builtins-x64.cc", + ] + } else if (v8_current_cpu == "arm") { + sources += [ + ### gcmole(arch:arm) ### + "src/builtins/arm/builtins-arm.cc", + ] + } else if (v8_current_cpu == "arm64") { + sources += [ + ### gcmole(arch:arm64) ### + "src/builtins/arm64/builtins-arm64.cc", + ] + } else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") { + sources += [ + ### gcmole(arch:mipsel) ### + "src/builtins/mips/builtins-mips.cc", + ] + } else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { + sources += [ + ### gcmole(arch:mips64el) ### + "src/builtins/mips64/builtins-mips64.cc", + ] + } else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") { + sources += [ + ### gcmole(arch:ppc) ### + "src/builtins/ppc/builtins-ppc.cc", + ] + } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") { + sources += [ + ### gcmole(arch:s390) ### + "src/builtins/s390/builtins-s390.cc", + ] + } else if (v8_current_cpu == "x87") { + sources += [ + ### gcmole(arch:x87) ### + "src/builtins/x87/builtins-x87.cc", + ] + } + + configs = [ ":internal_config" ] +} + +v8_source_set("v8_builtins_setup") { + visibility = [ ":*" ] # Only targets in this file can depend on this. + + deps = [ + ":v8_builtins_generators", + ] + + sources = [ + ### gcmole(all) ### + "src/setup-isolate-full.cc", + ] + + configs = [ ":internal_config" ] +} + # This is split out to be a non-code containing target that the Chromium browser # DLL can depend upon to get only a version string. v8_header_set("v8_version") { @@ -894,6 +1032,8 @@ v8_source_set("v8_base") { ### gcmole(all) ### "include/v8-debug.h", + "include/v8-inspector-protocol.h", + "include/v8-inspector.h", "include/v8-platform.h", "include/v8-profiler.h", "include/v8-testing.h", @@ -919,6 +1059,11 @@ v8_source_set("v8_base") { "src/arguments.h", "src/asmjs/asm-js.cc", "src/asmjs/asm-js.h", + "src/asmjs/asm-names.h", + "src/asmjs/asm-parser.cc", + "src/asmjs/asm-parser.h", + "src/asmjs/asm-scanner.cc", + "src/asmjs/asm-scanner.h", "src/asmjs/asm-typer.cc", "src/asmjs/asm-typer.h", "src/asmjs/asm-types.cc", @@ -973,52 +1118,40 @@ v8_source_set("v8_base") { "src/bootstrapper.cc", "src/bootstrapper.h", "src/builtins/builtins-api.cc", - "src/builtins/builtins-arguments.cc", - "src/builtins/builtins-arguments.h", "src/builtins/builtins-array.cc", "src/builtins/builtins-arraybuffer.cc", - "src/builtins/builtins-async-function.cc", - "src/builtins/builtins-async-iterator.cc", - "src/builtins/builtins-async.cc", - "src/builtins/builtins-async.h", "src/builtins/builtins-boolean.cc", "src/builtins/builtins-call.cc", "src/builtins/builtins-callsite.cc", - "src/builtins/builtins-constructor.cc", "src/builtins/builtins-constructor.h", - "src/builtins/builtins-conversion.cc", "src/builtins/builtins-dataview.cc", "src/builtins/builtins-date.cc", "src/builtins/builtins-debug.cc", + "src/builtins/builtins-definitions.h", + "src/builtins/builtins-descriptors.h", "src/builtins/builtins-error.cc", "src/builtins/builtins-function.cc", - "src/builtins/builtins-generator.cc", "src/builtins/builtins-global.cc", - "src/builtins/builtins-handler.cc", - "src/builtins/builtins-ic.cc", "src/builtins/builtins-internal.cc", "src/builtins/builtins-interpreter.cc", + "src/builtins/builtins-intl.cc", "src/builtins/builtins-json.cc", "src/builtins/builtins-math.cc", "src/builtins/builtins-number.cc", "src/builtins/builtins-object.cc", - "src/builtins/builtins-object.h", - "src/builtins/builtins-promise.cc", - "src/builtins/builtins-promise.h", "src/builtins/builtins-proxy.cc", "src/builtins/builtins-reflect.cc", "src/builtins/builtins-regexp.cc", - "src/builtins/builtins-regexp.h", "src/builtins/builtins-sharedarraybuffer.cc", "src/builtins/builtins-string.cc", "src/builtins/builtins-symbol.cc", "src/builtins/builtins-typedarray.cc", "src/builtins/builtins-utils.h", - "src/builtins/builtins-wasm.cc", "src/builtins/builtins.cc", "src/builtins/builtins.h", "src/cached-powers.cc", "src/cached-powers.h", + "src/callable.h", "src/cancelable-task.cc", "src/cancelable-task.h", "src/char-predicates-inl.h", @@ -1031,6 +1164,7 @@ v8_source_set("v8_base") { "src/code-stub-assembler.cc", "src/code-stub-assembler.h", "src/code-stubs-hydrogen.cc", + "src/code-stubs-utils.h", "src/code-stubs.cc", "src/code-stubs.h", "src/codegen.cc", @@ -1117,8 +1251,6 @@ v8_source_set("v8_base") { "src/compiler/graph-assembler.h", "src/compiler/graph-reducer.cc", "src/compiler/graph-reducer.h", - "src/compiler/graph-replay.cc", - "src/compiler/graph-replay.h", "src/compiler/graph-trimmer.cc", "src/compiler/graph-trimmer.h", "src/compiler/graph-visualizer.cc", @@ -1262,8 +1394,6 @@ v8_source_set("v8_base") { "src/compiler/wasm-linkage.cc", "src/compiler/zone-stats.cc", "src/compiler/zone-stats.h", - "src/context-measure.cc", - "src/context-measure.h", "src/contexts-inl.h", "src/contexts.cc", "src/contexts.h", @@ -1428,6 +1558,8 @@ v8_source_set("v8_base") { "src/heap/array-buffer-tracker.h", "src/heap/code-stats.cc", "src/heap/code-stats.h", + "src/heap/concurrent-marking.cc", + "src/heap/concurrent-marking.h", "src/heap/embedder-tracing.cc", "src/heap/embedder-tracing.h", "src/heap/gc-idle-time-handler.cc", @@ -1471,8 +1603,6 @@ v8_source_set("v8_base") { "src/ic/access-compiler-data.h", "src/ic/access-compiler.cc", "src/ic/access-compiler.h", - "src/ic/accessor-assembler.cc", - "src/ic/accessor-assembler.h", "src/ic/call-optimization.cc", "src/ic/call-optimization.h", "src/ic/handler-compiler.cc", @@ -1486,8 +1616,6 @@ v8_source_set("v8_base") { "src/ic/ic-stats.h", "src/ic/ic.cc", "src/ic/ic.h", - "src/ic/keyed-store-generic.cc", - "src/ic/keyed-store-generic.h", "src/ic/stub-cache.cc", "src/ic/stub-cache.h", "src/icu_util.cc", @@ -1506,8 +1634,6 @@ v8_source_set("v8_base") { "src/interpreter/bytecode-array-random-iterator.h", "src/interpreter/bytecode-array-writer.cc", "src/interpreter/bytecode-array-writer.h", - "src/interpreter/bytecode-dead-code-optimizer.cc", - "src/interpreter/bytecode-dead-code-optimizer.h", "src/interpreter/bytecode-decoder.cc", "src/interpreter/bytecode-decoder.h", "src/interpreter/bytecode-flags.cc", @@ -1518,9 +1644,6 @@ v8_source_set("v8_base") { "src/interpreter/bytecode-label.h", "src/interpreter/bytecode-operands.cc", "src/interpreter/bytecode-operands.h", - "src/interpreter/bytecode-peephole-optimizer.cc", - "src/interpreter/bytecode-peephole-optimizer.h", - "src/interpreter/bytecode-peephole-table.h", "src/interpreter/bytecode-pipeline.cc", "src/interpreter/bytecode-pipeline.h", "src/interpreter/bytecode-register-allocator.h", @@ -1537,8 +1660,7 @@ v8_source_set("v8_base") { "src/interpreter/control-flow-builders.h", "src/interpreter/handler-table-builder.cc", "src/interpreter/handler-table-builder.h", - "src/interpreter/interpreter-assembler.cc", - "src/interpreter/interpreter-assembler.h", + "src/interpreter/interpreter-generator.h", "src/interpreter/interpreter-intrinsics.cc", "src/interpreter/interpreter-intrinsics.h", "src/interpreter/interpreter.cc", @@ -1572,6 +1694,7 @@ v8_source_set("v8_base") { "src/lookup.h", "src/machine-type.cc", "src/machine-type.h", + "src/macro-assembler-inl.h", "src/macro-assembler.h", "src/managed.h", "src/map-updater.cc", @@ -1586,6 +1709,15 @@ v8_source_set("v8_base") { "src/objects-printer.cc", "src/objects.cc", "src/objects.h", + "src/objects/code-cache-inl.h", + "src/objects/code-cache.h", + "src/objects/compilation-cache-inl.h", + "src/objects/compilation-cache.h", + "src/objects/descriptor-array.h", + "src/objects/dictionary.h", + "src/objects/frame-array-inl.h", + "src/objects/frame-array.h", + "src/objects/hash-table.h", "src/objects/literal-objects.cc", "src/objects/literal-objects.h", "src/objects/module-info.h", @@ -1594,9 +1726,9 @@ v8_source_set("v8_base") { "src/objects/regexp-match-info.h", "src/objects/scope-info.cc", "src/objects/scope-info.h", + "src/objects/string-table.h", "src/ostreams.cc", "src/ostreams.h", - "src/parsing/duplicate-finder.cc", "src/parsing/duplicate-finder.h", "src/parsing/expression-classifier.h", "src/parsing/func-name-inferrer.cc", @@ -1724,6 +1856,7 @@ v8_source_set("v8_base") { "src/runtime/runtime.h", "src/safepoint-table.cc", "src/safepoint-table.h", + "src/setup-isolate.h", "src/signature.h", "src/simulator.h", "src/small-pointer-list.h", @@ -1771,6 +1904,9 @@ v8_source_set("v8_base") { "src/transitions-inl.h", "src/transitions.cc", "src/transitions.h", + "src/trap-handler/handler-outside.cc", + "src/trap-handler/handler-shared.cc", + "src/trap-handler/trap-handler-internal.h", "src/trap-handler/trap-handler.h", "src/type-hints.cc", "src/type-hints.h", @@ -1847,7 +1983,6 @@ v8_source_set("v8_base") { if (v8_current_cpu == "x86") { sources += [ ### gcmole(arch:ia32) ### - "src/builtins/ia32/builtins-ia32.cc", "src/compiler/ia32/code-generator-ia32.cc", "src/compiler/ia32/instruction-codes-ia32.h", "src/compiler/ia32/instruction-scheduler-ia32.cc", @@ -1877,6 +2012,7 @@ v8_source_set("v8_base") { "src/ia32/macro-assembler-ia32.h", "src/ia32/simulator-ia32.cc", "src/ia32/simulator-ia32.h", + "src/ia32/sse-instr.h", "src/ic/ia32/access-compiler-ia32.cc", "src/ic/ia32/handler-compiler-ia32.cc", "src/ic/ia32/ic-ia32.cc", @@ -1885,7 +2021,6 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "x64") { sources += [ ### gcmole(arch:x64) ### - "src/builtins/x64/builtins-x64.cc", "src/compiler/x64/code-generator-x64.cc", "src/compiler/x64/instruction-codes-x64.h", "src/compiler/x64/instruction-scheduler-x64.cc", @@ -1926,6 +2061,9 @@ v8_source_set("v8_base") { "src/x64/simulator-x64.h", "src/x64/sse-instr.h", ] + if (is_linux) { + sources += [ "src/trap-handler/handler-inside.cc" ] + } } else if (v8_current_cpu == "arm") { sources += [ ### gcmole(arch:arm) ### "src/arm/assembler-arm-inl.h", @@ -1949,7 +2087,6 @@ v8_source_set("v8_base") { "src/arm/macro-assembler-arm.h", "src/arm/simulator-arm.cc", "src/arm/simulator-arm.h", - "src/builtins/arm/builtins-arm.cc", "src/compiler/arm/code-generator-arm.cc", "src/compiler/arm/instruction-codes-arm.h", "src/compiler/arm/instruction-scheduler-arm.cc", @@ -2003,7 +2140,6 @@ v8_source_set("v8_base") { "src/arm64/simulator-arm64.h", "src/arm64/utils-arm64.cc", "src/arm64/utils-arm64.h", - "src/builtins/arm64/builtins-arm64.cc", "src/compiler/arm64/code-generator-arm64.cc", "src/compiler/arm64/instruction-codes-arm64.h", "src/compiler/arm64/instruction-scheduler-arm64.cc", @@ -2029,7 +2165,6 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") { sources += [ ### gcmole(arch:mipsel) ### - "src/builtins/mips/builtins-mips.cc", "src/compiler/mips/code-generator-mips.cc", "src/compiler/mips/instruction-codes-mips.h", "src/compiler/mips/instruction-scheduler-mips.cc", @@ -2069,7 +2204,6 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { sources += [ ### gcmole(arch:mips64el) ### - "src/builtins/mips64/builtins-mips64.cc", "src/compiler/mips64/code-generator-mips64.cc", "src/compiler/mips64/instruction-codes-mips64.h", "src/compiler/mips64/instruction-scheduler-mips64.cc", @@ -2109,7 +2243,6 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") { sources += [ ### gcmole(arch:ppc) ### - "src/builtins/ppc/builtins-ppc.cc", "src/compiler/ppc/code-generator-ppc.cc", "src/compiler/ppc/instruction-codes-ppc.h", "src/compiler/ppc/instruction-scheduler-ppc.cc", @@ -2149,7 +2282,6 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") { sources += [ ### gcmole(arch:s390) ### - "src/builtins/s390/builtins-s390.cc", "src/compiler/s390/code-generator-s390.cc", "src/compiler/s390/instruction-codes-s390.h", "src/compiler/s390/instruction-scheduler-s390.cc", @@ -2189,7 +2321,6 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "x87") { sources += [ ### gcmole(arch:x87) ### - "src/builtins/x87/builtins-x87.cc", "src/compiler/x87/code-generator-x87.cc", "src/compiler/x87/instruction-codes-x87.h", "src/compiler/x87/instruction-scheduler-x87.cc", @@ -2234,16 +2365,9 @@ v8_source_set("v8_base") { ":v8_libbase", ":v8_libsampler", ":v8_version", + "src/inspector:inspector", ] - sources += [ v8_generated_peephole_source ] - deps += [ ":run_mkpeephole" ] - - if (is_win) { - # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. - cflags = [ "/wd4267" ] - } - if (v8_enable_i18n_support) { deps += [ "//third_party/icu" ] if (is_win) { @@ -2260,10 +2384,6 @@ v8_source_set("v8_base") { sources += [ "$target_gen_dir/debug-support.cc" ] deps += [ ":postmortem-metadata" ] } - - if (v8_enable_inspector) { - deps += [ "src/inspector:inspector" ] - } } v8_component("v8_libbase") { @@ -2320,6 +2440,7 @@ v8_component("v8_libbase") { "src/base/safe_math_impl.h", "src/base/sys-info.cc", "src/base/sys-info.h", + "src/base/timezone-cache.h", "src/base/utils/random-number-generator.cc", "src/base/utils/random-number-generator.h", ] @@ -2335,7 +2456,10 @@ v8_component("v8_libbase") { } if (is_posix) { - sources += [ "src/base/platform/platform-posix.cc" ] + sources += [ + "src/base/platform/platform-posix.cc", + "src/base/platform/platform-posix.h", + ] } if (is_linux) { @@ -2486,6 +2610,7 @@ if (current_toolchain == v8_snapshot_toolchain) { deps = [ ":v8_base", + ":v8_builtins_setup", ":v8_libbase", ":v8_libplatform", ":v8_nosnapshot", @@ -2495,34 +2620,6 @@ if (current_toolchain == v8_snapshot_toolchain) { } } -v8_executable("mkpeephole") { - # mkpeephole needs to be built for the build host so the peephole lookup - # table can built during build. The table depends on the properties of - # bytecodes that are described in bytecodes.{cc,h}. - visibility = [ ":*" ] # Only targets in this file can depend on this. - - sources = [ - "src/interpreter/bytecode-operands.cc", - "src/interpreter/bytecode-operands.h", - "src/interpreter/bytecode-peephole-optimizer.h", - "src/interpreter/bytecode-traits.h", - "src/interpreter/bytecodes.cc", - "src/interpreter/bytecodes.h", - "src/interpreter/mkpeephole.cc", - ] - - configs = [ - ":external_config", - ":internal_config", - ] - - deps = [ - ":v8_libbase", - "//build/config/sanitizers:deps", - "//build/win:default_exe_manifest", - ] -} - ############################################################################### # Public targets # @@ -2662,9 +2759,6 @@ v8_executable("d8") { } defines = [] - if (v8_enable_inspector) { - defines += [ "V8_INSPECTOR_ENABLED" ] - } if (v8_enable_vtunejit) { deps += [ "//src/third_party/vtune:v8_vtune" ] @@ -2864,17 +2958,6 @@ v8_source_set("wasm_module_runner") { ] } -v8_source_set("wasm_test_signatures") { - sources = [ - "test/common/wasm/test-signatures.h", - ] - - configs = [ - ":external_config", - ":internal_config_base", - ] -} - v8_source_set("wasm_fuzzer") { sources = [ "test/fuzzer/wasm.cc", @@ -2915,13 +2998,13 @@ v8_fuzzer("wasm_asmjs_fuzzer") { v8_source_set("wasm_code_fuzzer") { sources = [ + "test/common/wasm/test-signatures.h", "test/fuzzer/wasm-code.cc", ] deps = [ ":fuzzer_support", ":wasm_module_runner", - ":wasm_test_signatures", ] configs = [ @@ -2935,13 +3018,13 @@ v8_fuzzer("wasm_code_fuzzer") { v8_source_set("wasm_call_fuzzer") { sources = [ + "test/common/wasm/test-signatures.h", "test/fuzzer/wasm-call.cc", ] deps = [ ":fuzzer_support", ":wasm_module_runner", - ":wasm_test_signatures", ] configs = [ @@ -3107,13 +3190,13 @@ v8_fuzzer("wasm_data_section_fuzzer") { v8_source_set("wasm_compile_fuzzer") { sources = [ + "test/common/wasm/test-signatures.h", "test/fuzzer/wasm-compile.cc", ] deps = [ ":fuzzer_support", ":wasm_module_runner", - ":wasm_test_signatures", ] configs = [ diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index f3cd421bca11ac..515e5b830e51b5 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,1148 @@ +2017-04-11: Version 5.9.211 + + Performance and stability improvements on all platforms. + + +2017-04-11: Version 5.9.210 + + Performance and stability improvements on all platforms. + + +2017-04-11: Version 5.9.209 + + Performance and stability improvements on all platforms. + + +2017-04-11: Version 5.9.208 + + Performance and stability improvements on all platforms. + + +2017-04-11: Version 5.9.207 + + Performance and stability improvements on all platforms. + + +2017-04-11: Version 5.9.206 + + Performance and stability improvements on all platforms. + + +2017-04-11: Version 5.9.205 + + Performance and stability improvements on all platforms. + + +2017-04-11: Version 5.9.204 + + Performance and stability improvements on all platforms. + + +2017-04-11: Version 5.9.203 + + Performance and stability improvements on all platforms. + + +2017-04-10: Version 5.9.202 + + Performance and stability improvements on all platforms. + + +2017-04-10: Version 5.9.201 + + Performance and stability improvements on all platforms. + + +2017-04-10: Version 5.9.200 + + Performance and stability improvements on all platforms. + + +2017-04-10: Version 5.9.199 + + Performance and stability improvements on all platforms. + + +2017-04-10: Version 5.9.198 + + Performance and stability improvements on all platforms. + + +2017-04-10: Version 5.9.197 + + Performance and stability improvements on all platforms. + + +2017-04-09: Version 5.9.196 + + Performance and stability improvements on all platforms. + + +2017-04-08: Version 5.9.195 + + Performance and stability improvements on all platforms. + + +2017-04-07: Version 5.9.194 + + Performance and stability improvements on all platforms. + + +2017-04-07: Version 5.9.193 + + Performance and stability improvements on all platforms. + + +2017-04-07: Version 5.9.192 + + Performance and stability improvements on all platforms. + + +2017-04-07: Version 5.9.191 + + Performance and stability improvements on all platforms. + + +2017-04-07: Version 5.9.190 + + Performance and stability improvements on all platforms. + + +2017-04-07: Version 5.9.189 + + Performance and stability improvements on all platforms. + + +2017-04-07: Version 5.9.188 + + Performance and stability improvements on all platforms. + + +2017-04-06: Version 5.9.187 + + Performance and stability improvements on all platforms. + + +2017-04-06: Version 5.9.186 + + Performance and stability improvements on all platforms. + + +2017-04-06: Version 5.9.185 + + Performance and stability improvements on all platforms. + + +2017-04-06: Version 5.9.184 + + Performance and stability improvements on all platforms. + + +2017-04-06: Version 5.9.183 + + Performance and stability improvements on all platforms. + + +2017-04-06: Version 5.9.182 + + Performance and stability improvements on all platforms. + + +2017-04-06: Version 5.9.181 + + Performance and stability improvements on all platforms. + + +2017-04-06: Version 5.9.180 + + Performance and stability improvements on all platforms. + + +2017-04-06: Version 5.9.179 + + Performance and stability improvements on all platforms. + + +2017-04-06: Version 5.9.178 + + Performance and stability improvements on all platforms. + + +2017-04-06: Version 5.9.177 + + Performance and stability improvements on all platforms. + + +2017-04-05: Version 5.9.176 + + Performance and stability improvements on all platforms. + + +2017-04-06: Version 5.9.175 + + Performance and stability improvements on all platforms. + + +2017-04-05: Version 5.9.174 + + Performance and stability improvements on all platforms. + + +2017-04-05: Version 5.9.173 + + Performance and stability improvements on all platforms. + + +2017-04-05: Version 5.9.172 + + Performance and stability improvements on all platforms. + + +2017-04-05: Version 5.9.171 + + Performance and stability improvements on all platforms. + + +2017-04-05: Version 5.9.170 + + Performance and stability improvements on all platforms. + + +2017-04-05: Version 5.9.169 + + Performance and stability improvements on all platforms. + + +2017-04-05: Version 5.9.168 + + Performance and stability improvements on all platforms. + + +2017-04-05: Version 5.9.167 + + Performance and stability improvements on all platforms. + + +2017-04-05: Version 5.9.166 + + Performance and stability improvements on all platforms. + + +2017-04-04: Version 5.9.165 + + Performance and stability improvements on all platforms. + + +2017-04-04: Version 5.9.164 + + Performance and stability improvements on all platforms. + + +2017-04-04: Version 5.9.163 + + Performance and stability improvements on all platforms. + + +2017-04-04: Version 5.9.162 + + Performance and stability improvements on all platforms. + + +2017-04-04: Version 5.9.161 + + Performance and stability improvements on all platforms. + + +2017-04-03: Version 5.9.160 + + Performance and stability improvements on all platforms. + + +2017-04-03: Version 5.9.159 + + Performance and stability improvements on all platforms. + + +2017-04-03: Version 5.9.158 + + Performance and stability improvements on all platforms. + + +2017-04-03: Version 5.9.157 + + Performance and stability improvements on all platforms. + + +2017-04-03: Version 5.9.156 + + Performance and stability improvements on all platforms. + + +2017-04-03: Version 5.9.155 + + Performance and stability improvements on all platforms. + + +2017-04-01: Version 5.9.154 + + Performance and stability improvements on all platforms. + + +2017-03-31: Version 5.9.153 + + Performance and stability improvements on all platforms. + + +2017-03-31: Version 5.9.152 + + Performance and stability improvements on all platforms. + + +2017-03-31: Version 5.9.151 + + Performance and stability improvements on all platforms. + + +2017-03-31: Version 5.9.150 + + Performance and stability improvements on all platforms. + + +2017-03-31: Version 5.9.149 + + Performance and stability improvements on all platforms. + + +2017-03-31: Version 5.9.148 + + Performance and stability improvements on all platforms. + + +2017-03-31: Version 5.9.147 + + Performance and stability improvements on all platforms. + + +2017-03-31: Version 5.9.146 + + Performance and stability improvements on all platforms. + + +2017-03-31: Version 5.9.145 + + Performance and stability improvements on all platforms. + + +2017-03-31: Version 5.9.144 + + Performance and stability improvements on all platforms. + + +2017-03-31: Version 5.9.143 + + Performance and stability improvements on all platforms. + + +2017-03-30: Version 5.9.142 + + Performance and stability improvements on all platforms. + + +2017-03-30: Version 5.9.141 + + Performance and stability improvements on all platforms. + + +2017-03-30: Version 5.9.140 + + Performance and stability improvements on all platforms. + + +2017-03-30: Version 5.9.139 + + Performance and stability improvements on all platforms. + + +2017-03-29: Version 5.9.138 + + Performance and stability improvements on all platforms. + + +2017-03-29: Version 5.9.137 + + Performance and stability improvements on all platforms. + + +2017-03-29: Version 5.9.136 + + Performance and stability improvements on all platforms. + + +2017-03-29: Version 5.9.135 + + Performance and stability improvements on all platforms. + + +2017-03-29: Version 5.9.134 + + Performance and stability improvements on all platforms. + + +2017-03-29: Version 5.9.133 + + Performance and stability improvements on all platforms. + + +2017-03-29: Version 5.9.132 + + Performance and stability improvements on all platforms. + + +2017-03-29: Version 5.9.131 + + Performance and stability improvements on all platforms. + + +2017-03-29: Version 5.9.130 + + Performance and stability improvements on all platforms. + + +2017-03-29: Version 5.9.129 + + Performance and stability improvements on all platforms. + + +2017-03-29: Version 5.9.128 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.127 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.126 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.125 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.124 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.123 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.122 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.121 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.120 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.119 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.118 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.117 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.116 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.115 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.114 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.113 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.112 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.111 + + Performance and stability improvements on all platforms. + + +2017-03-28: Version 5.9.110 + + Performance and stability improvements on all platforms. + + +2017-03-27: Version 5.9.109 + + Performance and stability improvements on all platforms. + + +2017-03-27: Version 5.9.108 + + Performance and stability improvements on all platforms. + + +2017-03-27: Version 5.9.107 + + Performance and stability improvements on all platforms. + + +2017-03-27: Version 5.9.106 + + Performance and stability improvements on all platforms. + + +2017-03-27: Version 5.9.105 + + Performance and stability improvements on all platforms. + + +2017-03-27: Version 5.9.104 + + Performance and stability improvements on all platforms. + + +2017-03-27: Version 5.9.103 + + Performance and stability improvements on all platforms. + + +2017-03-27: Version 5.9.102 + + Performance and stability improvements on all platforms. + + +2017-03-27: Version 5.9.101 + + Performance and stability improvements on all platforms. + + +2017-03-27: Version 5.9.100 + + Performance and stability improvements on all platforms. + + +2017-03-27: Version 5.9.99 + + Performance and stability improvements on all platforms. + + +2017-03-26: Version 5.9.98 + + Performance and stability improvements on all platforms. + + +2017-03-24: Version 5.9.97 + + Performance and stability improvements on all platforms. + + +2017-03-24: Version 5.9.96 + + Performance and stability improvements on all platforms. + + +2017-03-24: Version 5.9.95 + + Performance and stability improvements on all platforms. + + +2017-03-24: Version 5.9.94 + + Performance and stability improvements on all platforms. + + +2017-03-24: Version 5.9.93 + + Performance and stability improvements on all platforms. + + +2017-03-24: Version 5.9.92 + + Performance and stability improvements on all platforms. + + +2017-03-24: Version 5.9.91 + + Performance and stability improvements on all platforms. + + +2017-03-23: Version 5.9.90 + + Performance and stability improvements on all platforms. + + +2017-03-23: Version 5.9.89 + + Performance and stability improvements on all platforms. + + +2017-03-23: Version 5.9.88 + + Performance and stability improvements on all platforms. + + +2017-03-23: Version 5.9.87 + + Performance and stability improvements on all platforms. + + +2017-03-23: Version 5.9.86 + + Performance and stability improvements on all platforms. + + +2017-03-23: Version 5.9.85 + + Performance and stability improvements on all platforms. + + +2017-03-23: Version 5.9.84 + + Performance and stability improvements on all platforms. + + +2017-03-23: Version 5.9.83 + + Performance and stability improvements on all platforms. + + +2017-03-23: Version 5.9.82 + + Performance and stability improvements on all platforms. + + +2017-03-23: Version 5.9.81 + + Performance and stability improvements on all platforms. + + +2017-03-22: Version 5.9.80 + + Performance and stability improvements on all platforms. + + +2017-03-22: Version 5.9.79 + + Performance and stability improvements on all platforms. + + +2017-03-22: Version 5.9.78 + + Performance and stability improvements on all platforms. + + +2017-03-22: Version 5.9.77 + + Performance and stability improvements on all platforms. + + +2017-03-22: Version 5.9.76 + + Performance and stability improvements on all platforms. + + +2017-03-22: Version 5.9.75 + + Performance and stability improvements on all platforms. + + +2017-03-22: Version 5.9.74 + + Performance and stability improvements on all platforms. + + +2017-03-22: Version 5.9.73 + + Performance and stability improvements on all platforms. + + +2017-03-22: Version 5.9.72 + + Performance and stability improvements on all platforms. + + +2017-03-22: Version 5.9.71 + + Performance and stability improvements on all platforms. + + +2017-03-22: Version 5.9.70 + + Performance and stability improvements on all platforms. + + +2017-03-22: Version 5.9.69 + + Performance and stability improvements on all platforms. + + +2017-03-22: Version 5.9.68 + + Performance and stability improvements on all platforms. + + +2017-03-21: Version 5.9.67 + + Performance and stability improvements on all platforms. + + +2017-03-21: Version 5.9.66 + + Performance and stability improvements on all platforms. + + +2017-03-21: Version 5.9.65 + + Performance and stability improvements on all platforms. + + +2017-03-21: Version 5.9.64 + + Performance and stability improvements on all platforms. + + +2017-03-21: Version 5.9.63 + + Performance and stability improvements on all platforms. + + +2017-03-21: Version 5.9.62 + + Performance and stability improvements on all platforms. + + +2017-03-20: Version 5.9.61 + + Performance and stability improvements on all platforms. + + +2017-03-20: Version 5.9.60 + + Performance and stability improvements on all platforms. + + +2017-03-20: Version 5.9.59 + + Performance and stability improvements on all platforms. + + +2017-03-20: Version 5.9.58 + + Performance and stability improvements on all platforms. + + +2017-03-17: Version 5.9.57 + + Performance and stability improvements on all platforms. + + +2017-03-17: Version 5.9.56 + + Performance and stability improvements on all platforms. + + +2017-03-17: Version 5.9.55 + + Performance and stability improvements on all platforms. + + +2017-03-17: Version 5.9.54 + + Performance and stability improvements on all platforms. + + +2017-03-17: Version 5.9.53 + + Performance and stability improvements on all platforms. + + +2017-03-17: Version 5.9.52 + + Performance and stability improvements on all platforms. + + +2017-03-16: Version 5.9.51 + + Performance and stability improvements on all platforms. + + +2017-03-14: Version 5.9.50 + + Performance and stability improvements on all platforms. + + +2017-03-14: Version 5.9.49 + + Performance and stability improvements on all platforms. + + +2017-03-14: Version 5.9.48 + + Performance and stability improvements on all platforms. + + +2017-03-14: Version 5.9.47 + + Performance and stability improvements on all platforms. + + +2017-03-14: Version 5.9.46 + + Performance and stability improvements on all platforms. + + +2017-03-14: Version 5.9.45 + + Performance and stability improvements on all platforms. + + +2017-03-14: Version 5.9.44 + + Performance and stability improvements on all platforms. + + +2017-03-14: Version 5.9.43 + + Performance and stability improvements on all platforms. + + +2017-03-14: Version 5.9.42 + + Performance and stability improvements on all platforms. + + +2017-03-14: Version 5.9.41 + + Performance and stability improvements on all platforms. + + +2017-03-14: Version 5.9.40 + + Performance and stability improvements on all platforms. + + +2017-03-13: Version 5.9.39 + + Performance and stability improvements on all platforms. + + +2017-03-13: Version 5.9.38 + + Performance and stability improvements on all platforms. + + +2017-03-13: Version 5.9.37 + + Performance and stability improvements on all platforms. + + +2017-03-13: Version 5.9.36 + + Performance and stability improvements on all platforms. + + +2017-03-10: Version 5.9.35 + + Performance and stability improvements on all platforms. + + +2017-03-08: Version 5.9.34 + + Performance and stability improvements on all platforms. + + +2017-03-08: Version 5.9.33 + + Performance and stability improvements on all platforms. + + +2017-03-08: Version 5.9.32 + + Performance and stability improvements on all platforms. + + +2017-03-08: Version 5.9.31 + + Performance and stability improvements on all platforms. + + +2017-03-08: Version 5.9.30 + + Performance and stability improvements on all platforms. + + +2017-03-08: Version 5.9.29 + + Performance and stability improvements on all platforms. + + +2017-03-08: Version 5.9.28 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.27 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.26 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.25 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.24 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.23 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.22 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.21 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.20 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.19 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.18 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.17 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.16 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.15 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.14 + + Performance and stability improvements on all platforms. + + +2017-03-07: Version 5.9.13 + + Performance and stability improvements on all platforms. + + +2017-03-06: Version 5.9.12 + + Performance and stability improvements on all platforms. + + +2017-03-06: Version 5.9.11 + + Performance and stability improvements on all platforms. + + +2017-03-06: Version 5.9.10 + + Performance and stability improvements on all platforms. + + +2017-03-06: Version 5.9.9 + + Performance and stability improvements on all platforms. + + +2017-03-06: Version 5.9.8 + + Performance and stability improvements on all platforms. + + +2017-03-06: Version 5.9.7 + + Performance and stability improvements on all platforms. + + +2017-03-06: Version 5.9.6 + + Performance and stability improvements on all platforms. + + +2017-03-05: Version 5.9.5 + + Performance and stability improvements on all platforms. + + +2017-03-05: Version 5.9.4 + + Performance and stability improvements on all platforms. + + +2017-03-04: Version 5.9.3 + + Performance and stability improvements on all platforms. + + +2017-03-04: Version 5.9.2 + + Performance and stability improvements on all platforms. + + +2017-03-03: Version 5.9.1 + + Performance and stability improvements on all platforms. + + +2017-03-01: Version 5.8.301 + + Performance and stability improvements on all platforms. + + +2017-03-01: Version 5.8.300 + + Performance and stability improvements on all platforms. + + +2017-03-01: Version 5.8.299 + + Performance and stability improvements on all platforms. + + +2017-03-01: Version 5.8.298 + + Performance and stability improvements on all platforms. + + +2017-02-28: Version 5.8.297 + + Performance and stability improvements on all platforms. + + +2017-02-28: Version 5.8.296 + + Performance and stability improvements on all platforms. + + +2017-02-28: Version 5.8.295 + + Performance and stability improvements on all platforms. + + +2017-02-28: Version 5.8.294 + + Performance and stability improvements on all platforms. + + +2017-02-27: Version 5.8.293 + + Performance and stability improvements on all platforms. + + +2017-02-27: Version 5.8.292 + + Performance and stability improvements on all platforms. + + +2017-02-27: Version 5.8.291 + + Performance and stability improvements on all platforms. + + +2017-02-27: Version 5.8.290 + + Performance and stability improvements on all platforms. + + +2017-02-27: Version 5.8.289 + + Performance and stability improvements on all platforms. + + +2017-02-27: Version 5.8.288 + + Performance and stability improvements on all platforms. + + +2017-02-27: Version 5.8.287 + + Performance and stability improvements on all platforms. + + +2017-02-27: Version 5.8.286 + + Performance and stability improvements on all platforms. + + +2017-02-27: Version 5.8.285 + + Performance and stability improvements on all platforms. + + +2017-02-26: Version 5.8.284 + + Performance and stability improvements on all platforms. + + 2017-02-25: Version 5.8.283 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index f8e00855d4f3bd..aeeb0e5911d716 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -8,15 +8,15 @@ vars = { deps = { "v8/build": - Var("chromium_url") + "/chromium/src/build.git" + "@" + "c7c2db69cd571523ce728c4d3dceedbd1896b519", + Var("chromium_url") + "/chromium/src/build.git" + "@" + "94c06fe70f3f6429c59e3ec0f6acd4f6710050b2", "v8/tools/gyp": Var("chromium_url") + "/external/gyp.git" + "@" + "e7079f0e0e14108ab0dba58728ff219637458563", "v8/third_party/icu": Var("chromium_url") + "/chromium/deps/icu.git" + "@" + "450be73c9ee8ae29d43d4fdc82febb2a5f62bfb5", "v8/third_party/instrumented_libraries": - Var("chromium_url") + "/chromium/src/third_party/instrumented_libraries.git" + "@" + "5b6f777da671be977f56f0e8fc3469a3ccbb4474", + Var("chromium_url") + "/chromium/src/third_party/instrumented_libraries.git" + "@" + "05d5695a73e78b9cae55b8579fd8bf22b85eb283", "v8/buildtools": - Var("chromium_url") + "/chromium/buildtools.git" + "@" + "94cdccbebc7a634c27145a3d84089e85fbb42e69", + Var("chromium_url") + "/chromium/buildtools.git" + "@" + "d3074448541662f242bcee623049c13a231b5648", "v8/base/trace_event/common": Var("chromium_url") + "/chromium/src/base/trace_event/common.git" + "@" + "06294c8a4a6f744ef284cd63cfe54dbf61eea290", "v8/third_party/jinja2": @@ -34,26 +34,22 @@ deps = { "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" + "@" + "a72ee6d91275aa6524e84a9b7070103411ef2689", + Var("chromium_url") + "/external/github.com/tc39/test262.git" + "@" + "230f9fc5688ce76bfaa99aba5f680a159eaac9e2", "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" + "@" + "9913fb19b687b0c858f697efd7bd2468d789a3d5", + Var("chromium_url") + "/chromium/src/tools/clang.git" + "@" + "49df471350a60efaec6951f321dd65475496ba17", "v8/test/wasm-js": - Var("chromium_url") + "/external/github.com/WebAssembly/spec.git" + "@" + "b8b919e4a0d52db4d3d762e731e615bc3a38b3b2", + Var("chromium_url") + "/external/github.com/WebAssembly/spec.git" + "@" + "07fd6430f879d36928d179a62d9bdeed82286065", } deps_os = { "android": { "v8/third_party/android_tools": - Var("chromium_url") + "/android_tools.git" + "@" + "b43a6a289a7588b1769814f04dd6c7d7176974cc", + Var("chromium_url") + "/android_tools.git" + "@" + "b65c4776dac2cf1b80e969b3b2d4e081b9c84f29", "v8/third_party/catapult": - Var('chromium_url') + "/external/github.com/catapult-project/catapult.git" + "@" + "246a39a82c2213d913a96fff020a263838dc76e6", + Var('chromium_url') + "/external/github.com/catapult-project/catapult.git" + "@" + "9a55abab029cb9ae94f5160ded11b09a4638a955", }, - "win": { - "v8/third_party/cygwin": - Var("chromium_url") + "/chromium/deps/cygwin.git" + "@" + "c89e446b273697fadf3a10ff1007a97c0b7de6df", - } } recursedeps = [ diff --git a/deps/v8/OWNERS b/deps/v8/OWNERS index e375fa65b73326..4a2dcdf74cddb6 100644 --- a/deps/v8/OWNERS +++ b/deps/v8/OWNERS @@ -7,7 +7,6 @@ bradnelson@chromium.org cbruni@chromium.org clemensh@chromium.org danno@chromium.org -epertoso@chromium.org franzih@chromium.org gsathya@chromium.org hablich@chromium.org diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index 4cacf811336530..6aa94a01b37e8b 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -31,6 +31,7 @@ for more details about the presubmit API built into gcl. """ +import re import sys @@ -250,6 +251,7 @@ def _CheckMissingFiles(input_api, output_api): def _CommonChecks(input_api, output_api): """Checks common to both upload and commit.""" results = [] + results.extend(_CheckCommitMessageBugEntry(input_api, output_api)) results.extend(input_api.canned_checks.CheckOwners( input_api, output_api, source_file_filter=None)) results.extend(input_api.canned_checks.CheckPatchFormatted( @@ -276,6 +278,32 @@ def _SkipTreeCheck(input_api, output_api): return input_api.environ.get('PRESUBMIT_TREE_CHECK') == 'skip' +def _CheckCommitMessageBugEntry(input_api, output_api): + """Check that bug entries are well-formed in commit message.""" + bogus_bug_msg = ( + 'Bogus BUG entry: %s. Please specify the issue tracker prefix and the ' + 'issue number, separated by a colon, e.g. v8:123 or chromium:12345.') + results = [] + for bug in (input_api.change.BUG or '').split(','): + bug = bug.strip() + if 'none'.startswith(bug.lower()): + continue + if ':' not in bug: + try: + if int(bug) > 100000: + # Rough indicator for current chromium bugs. + prefix_guess = 'chromium' + else: + prefix_guess = 'v8' + results.append('BUG entry requires issue tracker prefix, e.g. %s:%s' % + (prefix_guess, bug)) + except ValueError: + results.append(bogus_bug_msg % bug) + elif not re.match(r'\w+:\d+', bug): + results.append(bogus_bug_msg % bug) + return [output_api.PresubmitError(r) for r in results] + + def CheckChangeOnUpload(input_api, output_api): results = [] results.extend(_CommonChecks(input_api, output_api)) diff --git a/deps/v8/gni/isolate.gni b/deps/v8/gni/isolate.gni index a347eeaa24e1ba..90bc8c5d7fa4b9 100644 --- a/deps/v8/gni/isolate.gni +++ b/deps/v8/gni/isolate.gni @@ -101,11 +101,6 @@ template("v8_isolate_run") { } else { icu_use_data_file_flag = "0" } - if (v8_enable_inspector) { - enable_inspector = "1" - } else { - enable_inspector = "0" - } if (v8_use_external_startup_data) { use_external_startup_data = "1" } else { @@ -177,8 +172,6 @@ template("v8_isolate_run") { "--config-variable", "target_arch=$target_arch", "--config-variable", - "v8_enable_inspector=$enable_inspector", - "--config-variable", "v8_use_external_startup_data=$use_external_startup_data", "--config-variable", "v8_use_snapshot=$use_snapshot", diff --git a/deps/v8/gni/v8.gni b/deps/v8/gni/v8.gni index ea628e00007c87..33f85f989b73e6 100644 --- a/deps/v8/gni/v8.gni +++ b/deps/v8/gni/v8.gni @@ -37,9 +37,6 @@ declare_args() { # add a dependency on the ICU library. v8_enable_i18n_support = true - # Enable inspector. See include/v8-inspector.h. - v8_enable_inspector = true - # Use static libraries instead of source_sets. v8_static_library = false } @@ -66,9 +63,8 @@ v8_inspector_js_protocol = v8_path_prefix + "/src/inspector/js_protocol.json" # # Common configs to remove or add in all v8 targets. -v8_remove_configs = [ "//build/config/compiler:chromium_code" ] +v8_remove_configs = [] v8_add_configs = [ - "//build/config/compiler:no_chromium_code", v8_path_prefix + ":features", v8_path_prefix + ":toolchain", ] diff --git a/deps/v8/gypfiles/all.gyp b/deps/v8/gypfiles/all.gyp index d3e275e10fa552..bbad66741c7e26 100644 --- a/deps/v8/gypfiles/all.gyp +++ b/deps/v8/gypfiles/all.gyp @@ -9,6 +9,7 @@ 'type': 'none', 'dependencies': [ '../src/d8.gyp:d8', + '../test/inspector/inspector.gyp:*', ], 'conditions': [ ['component!="shared_library"', { @@ -25,20 +26,11 @@ '../test/unittests/unittests.gyp:*', ], }], - ['v8_enable_inspector==1', { - 'dependencies': [ - '../test/inspector/inspector.gyp:*', - ], - }], - ['v8_enable_inspector==1 and test_isolation_mode != "noop"', { - 'dependencies': [ - '../test/debugger/debugger.gyp:*', - ], - }], ['test_isolation_mode != "noop"', { 'dependencies': [ '../test/bot_default.gyp:*', '../test/benchmarks/benchmarks.gyp:*', + '../test/debugger/debugger.gyp:*', '../test/default.gyp:*', '../test/intl/intl.gyp:*', '../test/message/message.gyp:*', diff --git a/deps/v8/gypfiles/features.gypi b/deps/v8/gypfiles/features.gypi index bd5cd7cd108f1c..f6a442f66341d5 100644 --- a/deps/v8/gypfiles/features.gypi +++ b/deps/v8/gypfiles/features.gypi @@ -142,5 +142,8 @@ ], # conditions }, # Release }, # configurations + 'defines': [ + 'V8_GYP_BUILD', + ], # defines }, # target_defaults } diff --git a/deps/v8/gypfiles/isolate.gypi b/deps/v8/gypfiles/isolate.gypi index c55f3ca782516a..af3b3ae5c8926e 100644 --- a/deps/v8/gypfiles/isolate.gypi +++ b/deps/v8/gypfiles/isolate.gypi @@ -82,7 +82,6 @@ '--config-variable', 'sanitizer_coverage=<(sanitizer_coverage)', '--config-variable', 'component=<(component)', '--config-variable', 'target_arch=<(target_arch)', - '--config-variable', 'v8_enable_inspector=<(v8_enable_inspector)', '--config-variable', 'v8_use_external_startup_data=<(v8_use_external_startup_data)', '--config-variable', 'v8_use_snapshot=<(v8_use_snapshot)', ], diff --git a/deps/v8/gypfiles/standalone.gypi b/deps/v8/gypfiles/standalone.gypi index 862f94fb5c3c0d..986aaaaebb224c 100644 --- a/deps/v8/gypfiles/standalone.gypi +++ b/deps/v8/gypfiles/standalone.gypi @@ -46,7 +46,6 @@ 'msvs_multi_core_compile%': '1', 'mac_deployment_target%': '10.7', 'release_extra_cflags%': '', - 'v8_enable_inspector%': 0, 'variables': { 'variables': { 'variables': { @@ -93,16 +92,16 @@ ['OS=="linux" and use_sysroot==1', { 'conditions': [ ['target_arch=="arm"', { - 'sysroot%': ' class PersistentValueVector; template class WeakCallbackObject; class FunctionTemplate; class ObjectTemplate; -class Data; template class FunctionCallbackInfo; template class PropertyCallbackInfo; class StackTrace; @@ -159,7 +158,6 @@ class GlobalHandles; *(static_cast(0)) = static_cast(0); \ } - /** * An object reference managed by the v8 garbage collector. * @@ -173,10 +171,16 @@ class GlobalHandles; * allocated on the heap. * * There are two types of handles: local and persistent handles. + * * Local handles are light-weight and transient and typically used in - * local operations. They are managed by HandleScopes. Persistent - * handles can be used when storing objects across several independent - * operations and have to be explicitly deallocated when they're no + * local operations. They are managed by HandleScopes. That means that a + * HandleScope must exist on the stack when they are created and that they are + * only valid inside of the HandleScope active during their creation. + * For passing a local handle to an outer HandleScope, an EscapableHandleScope + * and its Escape() method must be used. + * + * Persistent handles can be used when storing objects across several + * independent operations and have to be explicitly deallocated when they're no * longer used. * * It is safe to extract the object stored in the handle by @@ -254,6 +258,11 @@ class Local { return !operator==(that); } + /** + * Cast a handle to a subclass, e.g. Local to Local. + * This is only valid if the handle actually refers to a value of the + * target type. + */ template V8_INLINE static Local Cast(Local that) { #ifdef V8_ENABLE_CHECKS // If we're going to perform the type check then we have to check @@ -263,6 +272,11 @@ class Local { return Local(T::Cast(*that)); } + /** + * Calling this is equivalent to Local::Cast(). + * In particular, this is only valid if the handle actually refers to a value + * of the target type. + */ template V8_INLINE Local As() const { return Local::Cast(*this); @@ -339,15 +353,26 @@ class MaybeLocal { V8_INLINE bool IsEmpty() const { return val_ == nullptr; } + /** + * Converts this MaybeLocal<> to a Local<>. If this MaybeLocal<> is empty, + * |false| is returned and |out| is left untouched. + */ template V8_WARN_UNUSED_RESULT V8_INLINE bool ToLocal(Local* out) const { out->val_ = IsEmpty() ? nullptr : this->val_; return !IsEmpty(); } - // Will crash if the MaybeLocal<> is empty. + /** + * Converts this MaybeLocal<> to a Local<>. If this MaybeLocal<> is empty, + * V8 will crash the process. + */ V8_INLINE Local ToLocalChecked(); + /** + * Converts this MaybeLocal<> to a Local<>, using a default value if this + * MaybeLocal<> is empty. + */ template V8_INLINE Local FromMaybe(Local default_value) const { return IsEmpty() ? default_value : Local(val_); @@ -357,8 +382,10 @@ class MaybeLocal { T* val_; }; - -// Eternal handles are set-once handles that live for the life of the isolate. +/** + * Eternal handles are set-once handles that live for the lifetime of the + * isolate. + */ template class Eternal { public: V8_INLINE Eternal() : val_(nullptr) {} @@ -377,7 +404,7 @@ template class Eternal { static const int kInternalFieldsInWeakCallback = 2; - +static const int kEmbedderFieldsInWeakCallback = 2; template class WeakCallbackInfo { @@ -385,11 +412,11 @@ class WeakCallbackInfo { typedef void (*Callback)(const WeakCallbackInfo& data); WeakCallbackInfo(Isolate* isolate, T* parameter, - void* internal_fields[kInternalFieldsInWeakCallback], + void* embedder_fields[kEmbedderFieldsInWeakCallback], Callback* callback) : isolate_(isolate), parameter_(parameter), callback_(callback) { - for (int i = 0; i < kInternalFieldsInWeakCallback; ++i) { - internal_fields_[i] = internal_fields[i]; + for (int i = 0; i < kEmbedderFieldsInWeakCallback; ++i) { + embedder_fields_[i] = embedder_fields[i]; } } @@ -399,11 +426,11 @@ class WeakCallbackInfo { V8_INLINE V8_DEPRECATED("use indexed version", void* GetInternalField1() const) { - return internal_fields_[0]; + return embedder_fields_[0]; } V8_INLINE V8_DEPRECATED("use indexed version", void* GetInternalField2() const) { - return internal_fields_[1]; + return embedder_fields_[1]; } V8_DEPRECATED("Not realiable once SetSecondPassCallback() was used.", @@ -423,7 +450,7 @@ class WeakCallbackInfo { Isolate* isolate_; T* parameter_; Callback* callback_; - void* internal_fields_[kInternalFieldsInWeakCallback]; + void* embedder_fields_[kEmbedderFieldsInWeakCallback]; }; @@ -438,10 +465,10 @@ enum class WeakCallbackType { kParameter, kInternalFields, kFinalizer }; * An object reference that is independent of any handle scope. Where * a Local handle only lives as long as the HandleScope in which it was * allocated, a PersistentBase handle remains valid until it is explicitly - * disposed. + * disposed using Reset(). * * A persistent handle contains a reference to a storage cell within - * the v8 engine which holds an object value and which is updated by + * the V8 engine which holds an object value and which is updated by * the garbage collector whenever the object is moved. A new storage * cell can be created using the constructor or PersistentBase::Reset and * existing handles can be disposed using PersistentBase::Reset. @@ -899,6 +926,11 @@ class V8_EXPORT EscapableHandleScope : public HandleScope { internal::Object** escape_slot_; }; +/** + * A SealHandleScope acts like a handle scope in which no handle allocations + * are allowed. It can be useful for debugging handle leaks. + * Handles can be allocated within inner normal HandleScopes. + */ class V8_EXPORT SealHandleScope { public: SealHandleScope(Isolate* isolate); @@ -1067,12 +1099,33 @@ class V8_EXPORT Module { /** * ModuleEvaluation + * + * Returns the completion value. */ V8_WARN_UNUSED_RESULT MaybeLocal Evaluate(Local context); }; -// Node.js-specific: This will be implemented by a later V8 upgrade! -class DynamicImportResult; +/** + * This is an unfinished experimental feature, and is only exposed + * here for internal testing purposes. DO NOT USE. + * + * A compiled JavaScript module. + */ +class V8_EXPORT DynamicImportResult { + public: + /** + * Resolves the promise with the namespace object of the given + * module. + */ + V8_WARN_UNUSED_RESULT bool FinishDynamicImportSuccess(Local context, + Local module); + + /** + * Rejects the promise with the given exception. + */ + V8_WARN_UNUSED_RESULT bool FinishDynamicImportFailure(Local context, + Local exception); +}; /** * A compiled JavaScript script, tied to a Context which was active when the @@ -1364,7 +1417,7 @@ class V8_EXPORT ScriptCompiler { * CachedData instance is still valid; the tag has no other meaing. * * Background: The data carried by CachedData may depend on the exact - * V8 version number or currently compiler flags. This means when + * V8 version number or current compiler flags. This means that when * persisting CachedData, the embedder must take care to not pass in * data from another V8 version, or the same version with different * features enabled. @@ -1615,6 +1668,11 @@ class V8_EXPORT StackFrame { * constructor via "new". */ bool IsConstructor() const; + + /** + * Returns whether or not the associated functions is defined in wasm. + */ + bool IsWasm() const; }; @@ -1684,21 +1742,21 @@ class V8_EXPORT ValueSerializer { public: virtual ~Delegate() {} - /* + /** * Handles the case where a DataCloneError would be thrown in the structured * clone spec. Other V8 embedders may throw some other appropriate exception * type. */ virtual void ThrowDataCloneError(Local message) = 0; - /* + /** * The embedder overrides this method to write some kind of host object, if * possible. If not, a suitable exception should be thrown and * Nothing() returned. */ virtual Maybe WriteHostObject(Isolate* isolate, Local object); - /* + /** * Called when the ValueSerializer is going to serialize a * SharedArrayBuffer object. The embedder must return an ID for the * object, using the same ID if this SharedArrayBuffer has already been @@ -1713,7 +1771,7 @@ class V8_EXPORT ValueSerializer { virtual Maybe GetWasmModuleTransferId( Isolate* isolate, Local module); - /* + /** * Allocates memory for the buffer of at least the size provided. The actual * size (which may be greater or equal) is written to |actual_size|. If no * buffer has been allocated yet, nullptr will be provided. @@ -1725,34 +1783,36 @@ class V8_EXPORT ValueSerializer { virtual void* ReallocateBufferMemory(void* old_buffer, size_t size, size_t* actual_size); - /* + /** * Frees a buffer allocated with |ReallocateBufferMemory|. */ virtual void FreeBufferMemory(void* buffer); }; + static uint32_t GetCurrentDataFormatVersion(); + explicit ValueSerializer(Isolate* isolate); ValueSerializer(Isolate* isolate, Delegate* delegate); ~ValueSerializer(); - /* + /** * Writes out a header, which includes the format version. */ void WriteHeader(); - /* + /** * Serializes a JavaScript value into the buffer. */ V8_WARN_UNUSED_RESULT Maybe WriteValue(Local context, Local value); - /* + /** * Returns the stored data. This serializer should not be used once the buffer * is released. The contents are undefined if a previous write has failed. */ V8_DEPRECATE_SOON("Use Release()", std::vector ReleaseBuffer()); - /* + /** * Returns the stored data (allocated using the delegate's * AllocateBufferMemory) and its size. This serializer should not be used once * the buffer is released. The contents are undefined if a previous write has @@ -1760,7 +1820,7 @@ class V8_EXPORT ValueSerializer { */ V8_WARN_UNUSED_RESULT std::pair Release(); - /* + /** * Marks an ArrayBuffer as havings its contents transferred out of band. * Pass the corresponding ArrayBuffer in the deserializing context to * ValueDeserializer::TransferArrayBuffer. @@ -1768,7 +1828,7 @@ class V8_EXPORT ValueSerializer { void TransferArrayBuffer(uint32_t transfer_id, Local array_buffer); - /* + /** * Similar to TransferArrayBuffer, but for SharedArrayBuffer. */ V8_DEPRECATE_SOON("Use Delegate::GetSharedArrayBufferId", @@ -1776,7 +1836,7 @@ class V8_EXPORT ValueSerializer { uint32_t transfer_id, Local shared_array_buffer)); - /* + /** * Indicate whether to treat ArrayBufferView objects as host objects, * i.e. pass them to Delegate::WriteHostObject. This should not be * called when no Delegate was passed. @@ -1785,7 +1845,7 @@ class V8_EXPORT ValueSerializer { */ void SetTreatArrayBufferViewsAsHostObjects(bool mode); - /* + /** * Write raw data in various common formats to the buffer. * Note that integer types are written in base-128 varint format, not with a * binary copy. For use during an override of Delegate::WriteHostObject. @@ -1817,14 +1877,14 @@ class V8_EXPORT ValueDeserializer { public: virtual ~Delegate() {} - /* + /** * The embedder overrides this method to read some kind of host object, if * possible. If not, a suitable exception should be thrown and * MaybeLocal() returned. */ virtual MaybeLocal ReadHostObject(Isolate* isolate); - /* + /** * Get a WasmCompiledModule given a transfer_id previously provided * by ValueSerializer::GetWasmModuleTransferId */ @@ -1837,25 +1897,25 @@ class V8_EXPORT ValueDeserializer { Delegate* delegate); ~ValueDeserializer(); - /* + /** * Reads and validates a header (including the format version). * May, for example, reject an invalid or unsupported wire format. */ V8_WARN_UNUSED_RESULT Maybe ReadHeader(Local context); - /* + /** * Deserializes a JavaScript value from the buffer. */ V8_WARN_UNUSED_RESULT MaybeLocal ReadValue(Local context); - /* + /** * Accepts the array buffer corresponding to the one passed previously to * ValueSerializer::TransferArrayBuffer. */ void TransferArrayBuffer(uint32_t transfer_id, Local array_buffer); - /* + /** * Similar to TransferArrayBuffer, but for SharedArrayBuffer. * The id is not necessarily in the same namespace as unshared ArrayBuffer * objects. @@ -1863,7 +1923,7 @@ class V8_EXPORT ValueDeserializer { void TransferSharedArrayBuffer(uint32_t id, Local shared_array_buffer); - /* + /** * Must be called before ReadHeader to enable support for reading the legacy * wire format (i.e., which predates this being shipped). * @@ -1872,14 +1932,19 @@ class V8_EXPORT ValueDeserializer { */ void SetSupportsLegacyWireFormat(bool supports_legacy_wire_format); - /* + /** + * Expect inline wasm in the data stream (rather than in-memory transfer) + */ + void SetExpectInlineWasm(bool allow_inline_wasm); + + /** * Reads the underlying wire format version. Likely mostly to be useful to * legacy code reading old wire format versions. Must be called after * ReadHeader. */ uint32_t GetWireFormatVersion() const; - /* + /** * Reads raw data in various common formats to the buffer. * Note that integer types are read in base-128 varint format, not with a * binary copy. For use during an override of Delegate::ReadHostObject. @@ -1906,7 +1971,7 @@ class V8_EXPORT NativeWeakMap : public Data { public: static Local New(Isolate* isolate); void Set(Local key, Local value); - Local Get(Local key); + Local Get(Local key) const; bool Has(Local key); bool Delete(Local key); }; @@ -2304,9 +2369,25 @@ class V8_EXPORT Name : public Primitive { static void CheckCast(Value* obj); }; +/** + * A flag describing different modes of string creation. + * + * Aside from performance implications there are no differences between the two + * creation modes. + */ +enum class NewStringType { + /** + * Create a new string, always allocating new storage memory. + */ + kNormal, -enum class NewStringType { kNormal, kInternalized }; - + /** + * Acts as a hint that the string should be created in the + * old generation heap space and be deduplicated if an identical string + * already exists. + */ + kInternalized +}; /** * A JavaScript string value (ECMA-262, 4.3.17). @@ -2321,7 +2402,7 @@ class V8_EXPORT String : public Name { ONE_BYTE_ENCODING = 0x8 }; /** - * Returns the number of characters in this string. + * Returns the number of characters (UTF-16 code units) in this string. */ int Length() const; @@ -2332,14 +2413,16 @@ class V8_EXPORT String : public Name { int Utf8Length() const; /** - * Returns whether this string is known to contain only one byte data. + * Returns whether this string is known to contain only one byte data, + * i.e. ISO-8859-1 code points. * Does not read the string. * False negatives are possible. */ bool IsOneByte() const; /** - * Returns whether this string contain only one byte data. + * Returns whether this string contain only one byte data, + * i.e. ISO-8859-1 code points. * Will read the entire string in some cases. */ bool ContainsOnlyOneByte() const; @@ -2646,7 +2729,7 @@ class V8_EXPORT String : public Name { }; /** - * Converts an object to a two-byte string. + * Converts an object to a two-byte (UTF-16-encoded) string. * If conversion to a string fails (eg. due to an exception in the toString() * method of the object) then the length() method returns 0 and the * operator * returns NULL. @@ -2681,22 +2764,30 @@ class V8_EXPORT String : public Name { */ class V8_EXPORT Symbol : public Name { public: - // Returns the print name string of the symbol, or undefined if none. + /** + * Returns the print name string of the symbol, or undefined if none. + */ Local Name() const; - // Create a symbol. If name is not empty, it will be used as the description. + /** + * Create a symbol. If name is not empty, it will be used as the description. + */ static Local New(Isolate* isolate, Local name = Local()); - // Access global symbol registry. - // Note that symbols created this way are never collected, so - // they should only be used for statically fixed properties. - // Also, there is only one global name space for the names used as keys. - // To minimize the potential for clashes, use qualified names as keys. + /** + * Access global symbol registry. + * Note that symbols created this way are never collected, so + * they should only be used for statically fixed properties. + * Also, there is only one global name space for the names used as keys. + * To minimize the potential for clashes, use qualified names as keys. + */ static Local For(Isolate *isolate, Local name); - // Retrieve a global symbol. Similar to |For|, but using a separate - // registry that is not accessible by (and cannot clash with) JavaScript code. + /** + * Retrieve a global symbol. Similar to |For|, but using a separate + * registry that is not accessible by (and cannot clash with) JavaScript code. + */ static Local ForApi(Isolate *isolate, Local name); // Well-known symbols @@ -2721,20 +2812,26 @@ class V8_EXPORT Symbol : public Name { */ class V8_EXPORT Private : public Data { public: - // Returns the print name string of the private symbol, or undefined if none. + /** + * Returns the print name string of the private symbol, or undefined if none. + */ Local Name() const; - // Create a private symbol. If name is not empty, it will be the description. + /** + * Create a private symbol. If name is not empty, it will be the description. + */ static Local New(Isolate* isolate, Local name = Local()); - // Retrieve a global private symbol. If a symbol with this name has not - // been retrieved in the same isolate before, it is created. - // Note that private symbols created this way are never collected, so - // they should only be used for statically fixed properties. - // Also, there is only one global name space for the names used as keys. - // To minimize the potential for clashes, use qualified names as keys, - // e.g., "Class#property". + /** + * Retrieve a global private symbol. If a symbol with this name has not + * been retrieved in the same isolate before, it is created. + * Note that private symbols created this way are never collected, so + * they should only be used for statically fixed properties. + * Also, there is only one global name space for the names used as keys. + * To minimize the potential for clashes, use qualified names as keys, + * e.g., "Class#property". + */ static Local ForApi(Isolate* isolate, Local name); private: @@ -2973,12 +3070,12 @@ class V8_EXPORT Object : public Value { Local context, Local key); /** - * Returns Object.getOwnPropertyDescriptor as per ES2016 section 19.1.2.6. + * Returns Object.getOwnPropertyDescriptor as per ES5 section 15.2.3.3. */ V8_DEPRECATED("Use maybe version", - Local GetOwnPropertyDescriptor(Local key)); + Local GetOwnPropertyDescriptor(Local key)); V8_WARN_UNUSED_RESULT MaybeLocal GetOwnPropertyDescriptor( - Local context, Local key); + Local context, Local key); V8_DEPRECATE_SOON("Use maybe version", bool Has(Local key)); /** @@ -3000,15 +3097,16 @@ class V8_EXPORT Object : public Value { Local key); V8_DEPRECATE_SOON("Use maybe version", bool Delete(Local key)); - // TODO(dcarney): mark V8_WARN_UNUSED_RESULT - Maybe Delete(Local context, Local key); + V8_WARN_UNUSED_RESULT Maybe Delete(Local context, + Local key); V8_DEPRECATED("Use maybe version", bool Has(uint32_t index)); - V8_WARN_UNUSED_RESULT Maybe Has(Local context, uint32_t index); + V8_WARN_UNUSED_RESULT Maybe Has(Local context, + uint32_t index); V8_DEPRECATED("Use maybe version", bool Delete(uint32_t index)); - // TODO(dcarney): mark V8_WARN_UNUSED_RESULT - Maybe Delete(Local context, uint32_t index); + V8_WARN_UNUSED_RESULT Maybe Delete(Local context, + uint32_t index); V8_DEPRECATED("Use maybe version", bool SetAccessor(Local name, @@ -3024,8 +3122,8 @@ class V8_EXPORT Object : public Value { Local data = Local(), AccessControl settings = DEFAULT, PropertyAttribute attribute = None)); - // TODO(dcarney): mark V8_WARN_UNUSED_RESULT - Maybe SetAccessor(Local context, Local name, + V8_WARN_UNUSED_RESULT Maybe SetAccessor(Local context, + Local name, AccessorNameGetterCallback getter, AccessorNameSetterCallback setter = 0, MaybeLocal data = MaybeLocal(), @@ -3480,34 +3578,16 @@ class ReturnValue { template class FunctionCallbackInfo { public: - /** The number of available arguments. */ V8_INLINE int Length() const; - /** Accessor for the available arguments. */ V8_INLINE Local operator[](int i) const; V8_INLINE V8_DEPRECATED("Use Data() to explicitly pass Callee instead", Local Callee() const); - /** Returns the receiver. This corresponds to the "this" value. */ V8_INLINE Local This() const; - /** - * If the callback was created without a Signature, this is the same - * value as This(). If there is a signature, and the signature didn't match - * This() but one of its hidden prototypes, this will be the respective - * hidden prototype. - * - * Note that this is not the prototype of This() on which the accessor - * referencing this callback was found (which in V8 internally is often - * referred to as holder [sic]). - */ V8_INLINE Local Holder() const; - /** For construct calls, this returns the "new.target" value. */ V8_INLINE Local NewTarget() const; - /** Indicates whether this is a regular call or a construct call. */ V8_INLINE bool IsConstructCall() const; - /** The data argument specified when creating the callback. */ V8_INLINE Local Data() const; - /** The current Isolate. */ V8_INLINE Isolate* GetIsolate() const; - /** The ReturnValue for the call. */ V8_INLINE ReturnValue GetReturnValue() const; // This shouldn't be public, but the arm compiler needs it. static const int kArgsLength = 8; @@ -3779,12 +3859,12 @@ class V8_EXPORT Promise : public Object { * Ignored if the promise is no longer pending. */ V8_DEPRECATE_SOON("Use maybe version", void Resolve(Local value)); - // TODO(dcarney): mark V8_WARN_UNUSED_RESULT - Maybe Resolve(Local context, Local value); + V8_WARN_UNUSED_RESULT Maybe Resolve(Local context, + Local value); V8_DEPRECATE_SOON("Use maybe version", void Reject(Local value)); - // TODO(dcarney): mark V8_WARN_UNUSED_RESULT - Maybe Reject(Local context, Local value); + V8_WARN_UNUSED_RESULT Maybe Reject(Local context, + Local value); V8_INLINE static Resolver* Cast(Value* obj); @@ -3933,11 +4013,44 @@ class V8_EXPORT Proxy : public Object { static void CheckCast(Value* obj); }; +// TODO(mtrofin): rename WasmCompiledModule to WasmModuleObject, for +// consistency with internal APIs. class V8_EXPORT WasmCompiledModule : public Object { public: typedef std::pair, size_t> SerializedModule; // A buffer that is owned by the caller. typedef std::pair CallerOwnedBuffer; + + // An opaque, native heap object for transferring wasm modules. It + // supports move semantics, and does not support copy semantics. + class TransferrableModule final { + public: + TransferrableModule(TransferrableModule&& src) = default; + TransferrableModule(const TransferrableModule& src) = delete; + + TransferrableModule& operator=(TransferrableModule&& src) = default; + TransferrableModule& operator=(const TransferrableModule& src) = delete; + + private: + typedef std::pair, size_t> OwnedBuffer; + friend class WasmCompiledModule; + TransferrableModule(OwnedBuffer&& code, OwnedBuffer&& bytes) + : compiled_code(std::move(code)), wire_bytes(std::move(bytes)) {} + + OwnedBuffer compiled_code = {nullptr, 0}; + OwnedBuffer wire_bytes = {nullptr, 0}; + }; + + // Get an in-memory, non-persistable, and context-independent (meaning, + // suitable for transfer to another Isolate and Context) representation + // of this wasm compiled module. + TransferrableModule GetTransferrableModule(); + + // Efficiently re-create a WasmCompiledModule, without recompiling, from + // a TransferrableModule. + static MaybeLocal FromTransferrableModule( + Isolate* isolate, const TransferrableModule&); + // Get the wasm-encoded bytes that were used to compile this module. Local GetWasmWireBytes(); @@ -3953,16 +4066,49 @@ class V8_EXPORT WasmCompiledModule : public Object { V8_INLINE static WasmCompiledModule* Cast(Value* obj); private: + // TODO(ahaas): please remove the friend once streamed compilation is + // implemented + friend class WasmModuleObjectBuilder; + static MaybeLocal Deserialize( Isolate* isolate, const CallerOwnedBuffer& serialized_module, const CallerOwnedBuffer& wire_bytes); static MaybeLocal Compile(Isolate* isolate, const uint8_t* start, size_t length); + static CallerOwnedBuffer AsCallerOwned( + const TransferrableModule::OwnedBuffer& buff) { + return {buff.first.get(), buff.second}; + } + WasmCompiledModule(); static void CheckCast(Value* obj); }; +class V8_EXPORT WasmModuleObjectBuilder final { + public: + WasmModuleObjectBuilder(Isolate* isolate) : isolate_(isolate) {} + // The buffer passed into OnBytesReceived is owned by the caller. + void OnBytesReceived(const uint8_t*, size_t size); + MaybeLocal Finish(); + + private: + Isolate* isolate_ = nullptr; + // TODO(ahaas): We probably need none of this below here once streamed + // compilation is implemented. + typedef std::pair, size_t> Buffer; + + // Disable copy semantics *in this implementation*. We can choose to + // relax this, albeit it's not clear why. + WasmModuleObjectBuilder(const WasmModuleObjectBuilder&) = delete; + WasmModuleObjectBuilder(WasmModuleObjectBuilder&&) = default; + WasmModuleObjectBuilder& operator=(const WasmModuleObjectBuilder&) = delete; + WasmModuleObjectBuilder& operator=(WasmModuleObjectBuilder&&) = default; + + std::vector received_buffers_; + size_t total_size_ = 0; +}; + #ifndef V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT // The number of required internal fields can be defined by embedder. #define V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT 2 @@ -4008,24 +4154,17 @@ class V8_EXPORT ArrayBuffer : public Object { */ virtual void* AllocateUninitialized(size_t length) = 0; - virtual void* Reserve(size_t length); - /** * Free the memory block of size |length|, pointed to by |data|. * That memory is guaranteed to be previously allocated by |Allocate|. */ virtual void Free(void* data, size_t length) = 0; - enum class AllocationMode { kNormal, kReservation }; - virtual void Free(void* data, size_t length, AllocationMode mode); - enum class Protection { kNoAccess, kReadWrite }; - virtual void SetProtection(void* data, size_t length, - Protection protection); - /** * malloc/free based convenience allocator. * - * Caller takes ownership. + * Caller takes ownership, i.e. the returned object needs to be freed using + * |delete allocator| once it is no longer in use. */ static Allocator* NewDefaultAllocator(); }; @@ -4069,8 +4208,11 @@ class V8_EXPORT ArrayBuffer : public Object { /** * Create a new ArrayBuffer over an existing memory block. * The created array buffer is by default immediately in externalized state. - * The memory block will not be reclaimed when a created ArrayBuffer - * is garbage-collected. + * In externalized state, the memory block will not be reclaimed when a + * created ArrayBuffer is garbage-collected. + * In internalized state, the memory block will be released using + * |Allocator::Free| once all ArrayBuffers referencing it are collected by + * the garbage collector. */ static Local New( Isolate* isolate, void* data, size_t byte_length, @@ -4121,6 +4263,7 @@ class V8_EXPORT ArrayBuffer : public Object { V8_INLINE static ArrayBuffer* Cast(Value* obj); static const int kInternalFieldCount = V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT; + static const int kEmbedderFieldCount = V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT; private: ArrayBuffer(); @@ -4174,6 +4317,8 @@ class V8_EXPORT ArrayBufferView : public Object { static const int kInternalFieldCount = V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT; + static const int kEmbedderFieldCount = + V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT; private: ArrayBufferView(); @@ -4583,11 +4728,12 @@ class V8_EXPORT RegExp : public Object { */ enum Flags { kNone = 0, - kGlobal = 1, - kIgnoreCase = 2, - kMultiline = 4, - kSticky = 8, - kUnicode = 16 + kGlobal = 1 << 0, + kIgnoreCase = 1 << 1, + kMultiline = 1 << 2, + kSticky = 1 << 3, + kUnicode = 1 << 4, + kDotAll = 1 << 5, }; /** @@ -4642,7 +4788,8 @@ class V8_EXPORT External : public Value { F(ArrayProto_entries, array_entries_iterator) \ F(ArrayProto_forEach, array_for_each_iterator) \ F(ArrayProto_keys, array_keys_iterator) \ - F(ArrayProto_values, array_values_iterator) + F(ArrayProto_values, array_values_iterator) \ + F(IteratorPrototype, initial_iterator_prototype) enum Intrinsic { #define V8_DECL_INTRINSIC(name, iname) k##name, @@ -5594,13 +5741,9 @@ class V8_EXPORT ObjectTemplate : public Template { friend class FunctionTemplate; }; + /** * A Signature specifies which receiver is valid for a function. - * - * A receiver matches a given signature if the receiver (or any of its - * hidden prototypes) was created from the signature's FunctionTemplate, or - * from a FunctionTemplate that inherits directly or indirectly from the - * signature's FunctionTemplate. */ class V8_EXPORT Signature : public Data { public: @@ -5731,12 +5874,8 @@ class V8_EXPORT ResourceConstraints { void set_max_old_space_size(int limit_in_mb) { max_old_space_size_ = limit_in_mb; } - V8_DEPRECATE_SOON("max_executable_size_ is subsumed by max_old_space_size_", - int max_executable_size() const) { - return max_executable_size_; - } - V8_DEPRECATE_SOON("max_executable_size_ is subsumed by max_old_space_size_", - void set_max_executable_size(int limit_in_mb)) { + int max_executable_size() const { return max_executable_size_; } + void set_max_executable_size(int limit_in_mb) { max_executable_size_ = limit_in_mb; } uint32_t* stack_limit() const { return stack_limit_; } @@ -5980,19 +6119,7 @@ typedef void (*FailedAccessCheckCallback)(Local target, typedef bool (*AllowCodeGenerationFromStringsCallback)(Local context); // --- WASM compilation callbacks --- - -/** - * Callback to check if a buffer source may be compiled to WASM, given - * the compilation is attempted as a promise or not. - */ - -typedef bool (*AllowWasmCompileCallback)(Isolate* isolate, Local source, - bool as_promise); - -typedef bool (*AllowWasmInstantiateCallback)(Isolate* isolate, - Local module_or_bytes, - MaybeLocal ffi, - bool as_promise); +typedef bool (*ExtensionCallback)(const FunctionCallbackInfo&); // --- Garbage Collection Callbacks --- @@ -6023,8 +6150,6 @@ enum GCType { * - kGCCallbackFlagCollectAllAvailableGarbage: The GC callback is called * in a phase where V8 is trying to collect all available garbage * (e.g., handling a low memory notification). - * - kGCCallbackScheduleIdleGarbageCollection: The GC callback is called to - * trigger an idle garbage collection. */ enum GCCallbackFlags { kNoGCCallbackFlags = 0, @@ -6033,7 +6158,6 @@ enum GCCallbackFlags { kGCCallbackFlagSynchronousPhantomCallbackProcessing = 1 << 3, kGCCallbackFlagCollectAllAvailableGarbage = 1 << 4, kGCCallbackFlagCollectAllExternalMemory = 1 << 5, - kGCCallbackScheduleIdleGarbageCollection = 1 << 6, }; typedef void (*GCCallback)(GCType type, GCCallbackFlags flags); @@ -6058,6 +6182,12 @@ class V8_EXPORT HeapStatistics { size_t heap_size_limit() { return heap_size_limit_; } size_t malloced_memory() { return malloced_memory_; } size_t peak_malloced_memory() { return peak_malloced_memory_; } + + /** + * Returns a 0/1 boolean, which signifies whether the |--zap_code_space| + * option is enabled or not, which makes V8 overwrite heap garbage with a bit + * pattern. + */ size_t does_zap_garbage() { return does_zap_garbage_; } private: @@ -6306,7 +6436,7 @@ class V8_EXPORT EmbedderHeapTracer { * wrappers from them when called through |AdvanceTracing|. */ virtual void RegisterV8References( - const std::vector >& internal_fields) = 0; + const std::vector >& embedder_fields) = 0; /** * Called at the beginning of a GC cycle. @@ -6369,6 +6499,9 @@ struct SerializeInternalFieldsCallback { CallbackFunction callback; void* data; }; +// Note that these fields are called "internal fields" in the API and called +// "embedder fields" within V8. +typedef SerializeInternalFieldsCallback SerializeEmbedderFieldsCallback; /** * Callback and supporting data used to implement embedder logic to deserialize @@ -6384,6 +6517,7 @@ struct DeserializeInternalFieldsCallback { void* data); void* data; }; +typedef DeserializeInternalFieldsCallback DeserializeEmbedderFieldsCallback; /** * Isolate represents an isolated instance of the V8 engine. V8 isolates have @@ -6415,8 +6549,9 @@ class V8_EXPORT Isolate { * The optional entry_hook allows the host application to provide the * address of a function that's invoked on entry to every V8-generated * function. Note that entry_hook is invoked at the very start of each - * generated function. Furthermore, if an entry_hook is given, V8 will - * not use a snapshot, including custom snapshots. + * generated function. + * An entry_hook can only be provided in no-snapshot builds; in snapshot + * builds it must be nullptr. */ FunctionEntryHook entry_hook; @@ -6706,6 +6841,12 @@ class V8_EXPORT Isolate { */ void Dispose(); + /** + * Dumps activated low-level V8 internal stats. This can be used instead + * of performing a full isolate disposal. + */ + void DumpAndResetStats(); + /** * Discards all V8 thread-specific data for the Isolate. Should be used * if a thread is terminating and it has used an Isolate that will outlive @@ -7230,6 +7371,14 @@ class V8_EXPORT Isolate { void SetAllowCodeGenerationFromStringsCallback( AllowCodeGenerationFromStringsCallback callback); + /** + * Embedder over{ride|load} injection points for wasm APIs. + */ + void SetWasmModuleCallback(ExtensionCallback callback); + void SetWasmCompileCallback(ExtensionCallback callback); + void SetWasmInstanceCallback(ExtensionCallback callback); + void SetWasmInstantiateCallback(ExtensionCallback callback); + /** * Check if V8 is dead and therefore unusable. This is the case after * fatal errors such as out-of-memory situations. @@ -7685,6 +7834,35 @@ class V8_EXPORT V8 { */ static void ShutdownPlatform(); +#if V8_OS_LINUX && V8_TARGET_ARCH_X64 && !V8_OS_ANDROID + /** + * Give the V8 signal handler a chance to handle a fault. + * + * This function determines whether a memory access violation can be recovered + * by V8. If so, it will return true and modify context to return to a code + * fragment that can recover from the fault. Otherwise, TryHandleSignal will + * return false. + * + * The parameters to this function correspond to those passed to a Linux + * signal handler. + * + * \param signal_number The signal number. + * + * \param info A pointer to the siginfo_t structure provided to the signal + * handler. + * + * \param context The third argument passed to the Linux signal handler, which + * points to a ucontext_t structure. + */ + static bool TryHandleSignal(int signal_number, void* info, void* context); +#endif // V8_OS_LINUX + + /** + * Enable the default signal handler rather than using one provided by the + * embedder. + */ + static bool RegisterDefaultSignalHandler(); + private: V8(); @@ -7811,20 +7989,33 @@ class Maybe { V8_INLINE bool IsNothing() const { return !has_value_; } V8_INLINE bool IsJust() const { return has_value_; } - // Will crash if the Maybe<> is nothing. + /** + * An alias for |FromJust|. Will crash if the Maybe<> is nothing. + */ V8_INLINE T ToChecked() const { return FromJust(); } + /** + * Converts this Maybe<> to a value of type T. If this Maybe<> is + * nothing (empty), |false| is returned and |out| is left untouched. + */ V8_WARN_UNUSED_RESULT V8_INLINE bool To(T* out) const { if (V8_LIKELY(IsJust())) *out = value_; return IsJust(); } - // Will crash if the Maybe<> is nothing. + /** + * Converts this Maybe<> to a value of type T. If this Maybe<> is + * nothing (empty), V8 will crash the process. + */ V8_INLINE T FromJust() const { if (V8_UNLIKELY(!IsJust())) V8::FromJustIsNothing(); return value_; } + /** + * Converts this Maybe<> to a value of type T, using a default value if this + * Maybe<> is nothing (empty). + */ V8_INLINE T FromMaybe(const T& default_value) const { return has_value_ ? value_ : default_value; } @@ -7973,11 +8164,6 @@ class V8_EXPORT TryCatch { */ void SetVerbose(bool value); - /** - * Returns true if verbosity is enabled. - */ - bool IsVerbose() const; - /** * Set whether or not this TryCatch should capture a Message object * which holds source information about where the exception @@ -8103,7 +8289,7 @@ class V8_EXPORT Context { * \param context_snapshot_index The index of the context snapshot to * deserialize from. Use v8::Context::New for the default snapshot. * - * \param internal_fields_deserializer Optional callback to deserialize + * \param embedder_fields_deserializer Optional callback to deserialize * internal fields. It should match the SerializeInternalFieldCallback used * to serialize. * @@ -8114,7 +8300,7 @@ class V8_EXPORT Context { static MaybeLocal FromSnapshot( Isolate* isolate, size_t context_snapshot_index, - DeserializeInternalFieldsCallback internal_fields_deserializer = + DeserializeInternalFieldsCallback embedder_fields_deserializer = DeserializeInternalFieldsCallback(), ExtensionConfiguration* extensions = nullptr, MaybeLocal global_object = MaybeLocal()); @@ -8695,11 +8881,11 @@ Local MaybeLocal::ToLocalChecked() { template void* WeakCallbackInfo::GetInternalField(int index) const { #ifdef V8_ENABLE_CHECKS - if (index < 0 || index >= kInternalFieldsInWeakCallback) { + if (index < 0 || index >= kEmbedderFieldsInWeakCallback) { V8::InternalFieldOutOfBounds(index); } #endif - return internal_fields_[index]; + return embedder_fields_[index]; } diff --git a/deps/v8/infra/config/cq.cfg b/deps/v8/infra/config/cq.cfg index 72381ee38801c8..e9bc8fdd3c2c9d 100644 --- a/deps/v8/infra/config/cq.cfg +++ b/deps/v8/infra/config/cq.cfg @@ -32,6 +32,10 @@ verifiers { buckets { name: "master.tryserver.v8" builders { name: "v8_android_arm_compile_rel" } + builders { + name: "v8_node_linux64_rel" + experiment_percentage: 100 + } builders { name: "v8_linux64_asan_rel_ng" } builders { name: "v8_linux64_asan_rel_ng_triggered" @@ -119,7 +123,7 @@ verifiers { } builders { name: "v8_linux64_sanitizer_coverage_rel" - experiment_percentage: 20 + experiment_percentage: 100 } } buckets { diff --git a/deps/v8/infra/mb/mb_config.pyl b/deps/v8/infra/mb/mb_config.pyl index 2a78d8627f52c0..0df30d457129f9 100644 --- a/deps/v8/infra/mb/mb_config.pyl +++ b/deps/v8/infra/mb/mb_config.pyl @@ -24,6 +24,18 @@ 'mips64el.debug': 'default_debug_mips64el', 'mips64el.optdebug': 'default_optdebug_mips64el', 'mips64el.release': 'default_release_mips64el', + 'ppc.debug': 'default_debug_ppc', + 'ppc.optdebug': 'default_optdebug_ppc', + 'ppc.release': 'default_release_ppc', + 'ppc64.debug': 'default_debug_ppc64', + 'ppc64.optdebug': 'default_optdebug_ppc64', + 'ppc64.release': 'default_release_ppc64', + 's390.debug': 'default_debug_s390', + 's390.optdebug': 'default_optdebug_s390', + 's390.release': 'default_release_s390', + 's390x.debug': 'default_debug_s390x', + 's390x.optdebug': 'default_optdebug_s390x', + 's390x.release': 'default_release_s390x', 'x64.debug': 'default_debug_x64', 'x64.optdebug': 'default_optdebug_x64', 'x64.release': 'default_release_x64', @@ -92,11 +104,11 @@ # original config also specified -O1, which we dropped because chromium # doesn't have it (anymore). 'V8 Linux64 - cfi': 'gyp_release_x64_cfi_symbolized', - 'V8 Linux - vtunejit': 'gyp_debug_x86_vtunejit', + 'V8 Linux - vtunejit': 'gn_debug_x86_vtunejit', 'V8 Linux64 - gcov coverage': 'gyp_release_x64_gcc_coverage', - 'V8 Linux - predictable': 'gyp_release_x86_predictable', + 'V8 Linux - predictable': 'gn_release_x86_predictable', 'V8 Linux - full debug': 'gyp_full_debug_x86', - 'V8 Linux - interpreted regexp': 'gyp_release_x86_interpreted_regexp', + 'V8 Linux - interpreted regexp': 'gn_release_x86_interpreted_regexp', 'V8 Random Deopt Fuzzer - debug': 'gyp_debug_x86', }, @@ -234,6 +246,34 @@ 'gn', 'debug', 'simulate_mips64el', 'v8_enable_slow_dchecks'], 'default_release_mips64el': [ 'gn', 'release', 'simulate_mips64el'], + 'default_debug_ppc': [ + 'gn', 'debug', 'simulate_ppc', 'v8_enable_slow_dchecks', + 'v8_full_debug'], + 'default_optdebug_ppc': [ + 'gn', 'debug', 'simulate_ppc', 'v8_enable_slow_dchecks'], + 'default_release_ppc': [ + 'gn', 'release', 'simulate_ppc'], + 'default_debug_ppc64': [ + 'gn', 'debug', 'simulate_ppc64', 'v8_enable_slow_dchecks', + 'v8_full_debug'], + 'default_optdebug_ppc64': [ + 'gn', 'debug', 'simulate_ppc64', 'v8_enable_slow_dchecks'], + 'default_release_ppc64': [ + 'gn', 'release', 'simulate_ppc64'], + 'default_debug_s390': [ + 'gn', 'debug', 'simulate_s390', 'v8_enable_slow_dchecks', + 'v8_full_debug'], + 'default_optdebug_s390': [ + 'gn', 'debug', 'simulate_s390', 'v8_enable_slow_dchecks'], + 'default_release_s390': [ + 'gn', 'release', 'simulate_s390'], + 'default_debug_s390x': [ + 'gn', 'debug', 'simulate_s390x', 'v8_enable_slow_dchecks', + 'v8_full_debug'], + 'default_optdebug_s390x': [ + 'gn', 'debug', 'simulate_s390x', 'v8_enable_slow_dchecks'], + 'default_release_s390x': [ + 'gn', 'release', 'simulate_s390x'], 'default_debug_x64': [ 'gn', 'debug', 'x64', 'v8_enable_slow_dchecks', 'v8_full_debug'], 'default_optdebug_x64': [ @@ -350,14 +390,15 @@ 'gn_debug_x86_minimal_symbols': [ 'gn', 'debug_bot', 'x86', 'minimal_symbols', 'swarming'], 'gn_debug_x86_no_i18n': [ - 'gn', 'debug_bot', 'x86', 'swarming', 'v8_disable_inspector', - 'v8_no_i18n'], + 'gn', 'debug_bot', 'x86', 'swarming', 'v8_no_i18n'], 'gn_debug_x86_no_snap': [ 'gn', 'debug_bot', 'x86', 'swarming', 'v8_snapshot_none'], 'gn_debug_x86_no_snap_trybot': [ 'gn', 'debug_trybot', 'x86', 'swarming', 'v8_snapshot_none'], 'gn_debug_x86_trybot': [ 'gn', 'debug_trybot', 'x86', 'swarming'], + 'gn_debug_x86_vtunejit': [ + 'gn', 'debug_bot', 'x86', 'v8_enable_vtunejit'], # GN release configs for x86. 'gn_release_x86': [ @@ -370,11 +411,12 @@ 'gn', 'release_bot', 'x86', 'gcmole', 'swarming'], 'gn_release_x86_gcmole_trybot': [ 'gn', 'release_trybot', 'x86', 'gcmole', 'swarming'], + 'gn_release_x86_interpreted_regexp': [ + 'gn', 'release_bot', 'x86', 'v8_interpreted_regexp'], 'gn_release_x86_minimal_symbols': [ 'gn', 'release_bot', 'x86', 'minimal_symbols', 'swarming'], 'gn_release_x86_no_i18n_trybot': [ - 'gn', 'release_trybot', 'x86', 'swarming', 'v8_disable_inspector', - 'v8_no_i18n'], + 'gn', 'release_trybot', 'x86', 'swarming', 'v8_no_i18n'], 'gn_release_x86_no_snap': [ 'gn', 'release_bot', 'x86', 'swarming', 'v8_snapshot_none'], 'gn_release_x86_no_snap_shared_minimal_symbols': [ @@ -382,6 +424,8 @@ 'v8_snapshot_none'], 'gn_release_x86_no_snap_trybot': [ 'gn', 'release_trybot', 'x86', 'swarming', 'v8_snapshot_none'], + 'gn_release_x86_predictable': [ + 'gn', 'release_bot', 'x86', 'v8_enable_verify_predictable'], 'gn_release_x86_shared_verify_heap': [ 'gn', 'release', 'x86', 'goma', 'shared', 'swarming', 'v8_verify_heap'], 'gn_release_x86_trybot': [ @@ -397,8 +441,6 @@ # Gyp debug configs for x86. 'gyp_debug_x86': [ 'gyp', 'debug_bot', 'x86', 'swarming'], - 'gyp_debug_x86_vtunejit': [ - 'gyp', 'debug_bot', 'x86', 'v8_enable_vtunejit'], 'gyp_full_debug_x86': [ 'gyp', 'debug', 'x86', 'goma', 'static', 'v8_enable_slow_dchecks', 'v8_full_debug'], @@ -432,10 +474,6 @@ # Gyp release configs for x86. 'gyp_release_x86_disassembler': [ 'gyp', 'release_bot', 'x86', 'v8_enable_disassembler'], - 'gyp_release_x86_interpreted_regexp': [ - 'gyp', 'release_bot', 'x86', 'v8_interpreted_regexp'], - 'gyp_release_x86_predictable': [ - 'gyp', 'release_bot', 'x86', 'v8_enable_verify_predictable'], }, 'mixins': { @@ -661,11 +699,6 @@ 'gn_args': 'v8_correctness_fuzzer=true v8_multi_arch_build=true', }, - 'v8_disable_inspector': { - 'gn_args': 'v8_enable_inspector=false', - 'gyp_defines': 'v8_enable_inspector=0 ', - }, - 'v8_enable_disassembler': { 'gn_args': 'v8_enable_disassembler=true', 'gyp_defines': 'v8_enable_disassembler=1', diff --git a/deps/v8/src/DEPS b/deps/v8/src/DEPS index e9026b130d6bf3..bfeca932415299 100644 --- a/deps/v8/src/DEPS +++ b/deps/v8/src/DEPS @@ -18,6 +18,9 @@ include_rules = [ "+src/interpreter/bytecode-register.h", "+src/interpreter/bytecodes.h", "+src/interpreter/interpreter.h", + "+src/interpreter/setup-interpreter.h", + "-src/trap-handler", + "+src/trap-handler/trap-handler.h", "+testing/gtest/include/gtest/gtest_prod.h", "-src/libplatform", "-include/libplatform" diff --git a/deps/v8/src/OWNERS b/deps/v8/src/OWNERS index 94b7fbb32e7b9a..3a05c3a95b5b64 100644 --- a/deps/v8/src/OWNERS +++ b/deps/v8/src/OWNERS @@ -1,4 +1,5 @@ per-file i18n.*=cira@chromium.org per-file i18n.*=mnita@google.com +per-file i18n.*=jshin@chromium.org per-file typing-asm.*=aseemgarg@chromium.org per-file typing-asm.*=bradnelson@chromium.org diff --git a/deps/v8/src/api-natives.cc b/deps/v8/src/api-natives.cc index 045ff470ab232e..0957c47823decd 100644 --- a/deps/v8/src/api-natives.cc +++ b/deps/v8/src/api-natives.cc @@ -36,7 +36,8 @@ class InvokeScope { MaybeHandle InstantiateObject(Isolate* isolate, Handle data, Handle new_target, - bool is_hidden_prototype); + bool is_hidden_prototype, + bool is_prototype); MaybeHandle InstantiateFunction(Isolate* isolate, Handle data, @@ -49,7 +50,7 @@ MaybeHandle Instantiate(Isolate* isolate, Handle data, Handle::cast(data), name); } else if (data->IsObjectTemplateInfo()) { return InstantiateObject(isolate, Handle::cast(data), - Handle(), false); + Handle(), false, false); } else { return data; } @@ -338,7 +339,8 @@ bool IsSimpleInstantiation(Isolate* isolate, ObjectTemplateInfo* info, MaybeHandle InstantiateObject(Isolate* isolate, Handle info, Handle new_target, - bool is_hidden_prototype) { + bool is_hidden_prototype, + bool is_prototype) { Handle constructor; int serial_number = Smi::cast(info->serial_number())->value(); if (!new_target.is_null()) { @@ -379,19 +381,26 @@ MaybeHandle InstantiateObject(Isolate* isolate, Handle object; ASSIGN_RETURN_ON_EXCEPTION(isolate, object, JSObject::New(constructor, new_target), JSObject); + + if (is_prototype) JSObject::OptimizeAsPrototype(object, FAST_PROTOTYPE); + ASSIGN_RETURN_ON_EXCEPTION( isolate, result, ConfigureInstance(isolate, object, info, is_hidden_prototype), JSObject); if (info->immutable_proto()) { JSObject::SetImmutableProto(object); } - // TODO(dcarney): is this necessary? - JSObject::MigrateSlowToFast(result, 0, "ApiNatives::InstantiateObject"); - - if (serial_number) { - CacheTemplateInstantiation(isolate, serial_number, result); - result = isolate->factory()->CopyJSObject(result); + if (!is_prototype) { + // Keep prototypes in slow-mode. Let them be lazily turned fast later on. + // TODO(dcarney): is this necessary? + JSObject::MigrateSlowToFast(result, 0, "ApiNatives::InstantiateObject"); + // Don't cache prototypes. + if (serial_number) { + CacheTemplateInstantiation(isolate, serial_number, result); + result = isolate->factory()->CopyJSObject(result); + } } + return result; } @@ -446,7 +455,7 @@ MaybeHandle InstantiateFunction(Isolate* isolate, InstantiateObject( isolate, handle(ObjectTemplateInfo::cast(prototype_templ), isolate), - Handle(), data->hidden_prototype()), + Handle(), data->hidden_prototype(), true), JSFunction); } Object* parent = data->parent_template(); @@ -514,7 +523,8 @@ MaybeHandle ApiNatives::InstantiateObject( Handle data, Handle new_target) { Isolate* isolate = data->GetIsolate(); InvokeScope invoke_scope(isolate); - return ::v8::internal::InstantiateObject(isolate, data, new_target, false); + return ::v8::internal::InstantiateObject(isolate, data, new_target, false, + false); } MaybeHandle ApiNatives::InstantiateRemoteObject( @@ -524,22 +534,14 @@ MaybeHandle ApiNatives::InstantiateRemoteObject( Handle constructor( FunctionTemplateInfo::cast(data->constructor())); - Handle shared = - FunctionTemplateInfo::GetOrCreateSharedFunctionInfo(isolate, constructor); - Handle initial_map = isolate->factory()->CreateSloppyFunctionMap( - FUNCTION_WITH_WRITEABLE_PROTOTYPE); - Handle object_function = - isolate->factory()->NewFunctionFromSharedFunctionInfo( - initial_map, shared, isolate->factory()->undefined_value()); Handle object_map = isolate->factory()->NewMap( JS_SPECIAL_API_OBJECT_TYPE, - JSObject::kHeaderSize + data->internal_field_count() * kPointerSize, + JSObject::kHeaderSize + data->embedder_field_count() * kPointerSize, FAST_HOLEY_SMI_ELEMENTS); - JSFunction::SetInitialMap(object_function, object_map, - isolate->factory()->null_value()); + object_map->SetConstructor(*constructor); object_map->set_is_access_check_needed(true); - Handle object = isolate->factory()->NewJSObject(object_function); + Handle object = isolate->factory()->NewJSObjectFromMap(object_map); JSObject::ForceSetPrototype(object, isolate->factory()->null_value()); return object; @@ -629,18 +631,18 @@ Handle ApiNatives::CreateApiFunction( DONT_ENUM); } - int internal_field_count = 0; + int embedder_field_count = 0; bool immutable_proto = false; if (!obj->instance_template()->IsUndefined(isolate)) { Handle instance_template = Handle( ObjectTemplateInfo::cast(obj->instance_template())); - internal_field_count = instance_template->internal_field_count(); + embedder_field_count = instance_template->embedder_field_count(); immutable_proto = instance_template->immutable_proto(); } // TODO(svenpanne) Kill ApiInstanceType and refactor things by generalizing // JSObject::GetHeaderSize. - int instance_size = kPointerSize * internal_field_count; + int instance_size = kPointerSize * embedder_field_count; InstanceType type; switch (instance_type) { case JavaScriptObjectType: diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 2610dc17104822..58094c1f68d786 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -29,7 +29,6 @@ #include "src/code-stubs.h" #include "src/compiler-dispatcher/compiler-dispatcher.h" #include "src/compiler.h" -#include "src/context-measure.h" #include "src/contexts.h" #include "src/conversions-inl.h" #include "src/counters.h" @@ -67,6 +66,7 @@ #include "src/snapshot/snapshot.h" #include "src/startup-data-util.h" #include "src/tracing/trace-event.h" +#include "src/trap-handler/trap-handler.h" #include "src/unicode-inl.h" #include "src/v8.h" #include "src/v8threads.h" @@ -437,21 +437,6 @@ void V8::SetSnapshotDataBlob(StartupData* snapshot_blob) { i::V8::SetSnapshotBlob(snapshot_blob); } -void* v8::ArrayBuffer::Allocator::Reserve(size_t length) { - UNIMPLEMENTED(); - return nullptr; -} - -void v8::ArrayBuffer::Allocator::Free(void* data, size_t length, - AllocationMode mode) { - UNIMPLEMENTED(); -} - -void v8::ArrayBuffer::Allocator::SetProtection( - void* data, size_t length, - v8::ArrayBuffer::Allocator::Protection protection) { - UNIMPLEMENTED(); -} namespace { @@ -510,7 +495,7 @@ struct SnapshotCreatorData { Persistent default_context_; PersistentValueVector contexts_; PersistentValueVector