From 41e63fb088a29fa05e16fb0d997255678134c043 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Thu, 2 Jul 2015 16:32:19 +0200 Subject: [PATCH] deps: upgrade v8 to 4.5.92 This commit includes two fix-ups to src/node_contextify.cc and lib/module.js to force-load the debugger when necessary. PR-URL: https://github.com/nodejs/io.js/pull/2091 Reviewed-By: Trevor Norris --- deps/v8/.gitignore | 2 + deps/v8/BUILD.gn | 73 +- deps/v8/ChangeLog | 612 +++ deps/v8/DEPS | 12 +- deps/v8/LICENSE | 7 +- deps/v8/Makefile | 21 +- deps/v8/Makefile.android | 65 +- deps/v8/build/android.gypi | 266 - deps/v8/build/features.gypi | 8 +- deps/v8/build/get_landmines.py | 2 + deps/v8/build/gyp_v8 | 11 +- deps/v8/build/standalone.gypi | 612 ++- deps/v8/build/toolchain.gypi | 44 +- deps/v8/include/v8-debug.h | 11 +- deps/v8/include/v8-platform.h | 11 + deps/v8/include/v8-profiler.h | 3 +- deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8.h | 616 ++- deps/v8/include/v8config.h | 53 +- deps/v8/infra/OWNERS | 3 + deps/v8/infra/README.md | 1 + .../commit_queue => infra/config}/OWNERS | 0 deps/v8/infra/config/cq.cfg | 51 + deps/v8/infra/project-config/README.md | 1 + .../infra/project-config/cr-buildbucket.cfg | 23 + deps/v8/samples/hello-world.cc | 69 + deps/v8/samples/process.cc | 4 +- deps/v8/samples/samples.gyp | 6 + deps/v8/samples/shell.cc | 2 +- deps/v8/src/accessors.cc | 187 +- deps/v8/src/accessors.h | 5 - deps/v8/src/allocation-site-scopes.cc | 3 +- deps/v8/src/allocation-tracker.cc | 3 +- deps/v8/src/allocation.cc | 3 +- deps/v8/src/api-natives.cc | 40 +- deps/v8/src/api.cc | 902 +++- deps/v8/src/api.h | 15 + deps/v8/src/arguments.cc | 3 +- deps/v8/src/arm/assembler-arm-inl.h | 27 +- deps/v8/src/arm/assembler-arm.cc | 557 +- deps/v8/src/arm/assembler-arm.h | 139 +- deps/v8/src/arm/builtins-arm.cc | 147 +- deps/v8/src/arm/code-stubs-arm.cc | 227 +- deps/v8/src/arm/codegen-arm.cc | 3 +- deps/v8/src/arm/constants-arm.cc | 3 +- deps/v8/src/arm/constants-arm.h | 5 + deps/v8/src/arm/cpu-arm.cc | 3 +- deps/v8/src/arm/debug-arm.cc | 24 +- deps/v8/src/arm/deoptimizer-arm.cc | 5 +- deps/v8/src/arm/disasm-arm.cc | 4 +- deps/v8/src/arm/frames-arm.cc | 14 +- deps/v8/src/arm/frames-arm.h | 29 +- deps/v8/src/arm/full-codegen-arm.cc | 698 +-- deps/v8/src/arm/interface-descriptors-arm.cc | 308 +- deps/v8/src/arm/lithium-arm.cc | 79 +- deps/v8/src/arm/lithium-arm.h | 83 +- deps/v8/src/arm/lithium-codegen-arm.cc | 332 +- deps/v8/src/arm/lithium-codegen-arm.h | 6 +- deps/v8/src/arm/lithium-gap-resolver-arm.cc | 3 +- deps/v8/src/arm/macro-assembler-arm.cc | 76 +- deps/v8/src/arm/macro-assembler-arm.h | 10 +- deps/v8/src/arm/regexp-macro-assembler-arm.cc | 3 +- deps/v8/src/arm/simulator-arm.cc | 29 +- deps/v8/src/arm/simulator-arm.h | 2 + deps/v8/src/arm64/assembler-arm64-inl.h | 25 +- deps/v8/src/arm64/assembler-arm64.cc | 101 +- deps/v8/src/arm64/assembler-arm64.h | 40 +- deps/v8/src/arm64/builtins-arm64.cc | 119 +- deps/v8/src/arm64/code-stubs-arm64.cc | 265 +- deps/v8/src/arm64/code-stubs-arm64.h | 6 +- deps/v8/src/arm64/codegen-arm64.cc | 3 +- deps/v8/src/arm64/constants-arm64.h | 2 + deps/v8/src/arm64/cpu-arm64.cc | 3 +- deps/v8/src/arm64/debug-arm64.cc | 22 +- deps/v8/src/arm64/decoder-arm64.cc | 3 +- deps/v8/src/arm64/delayed-masm-arm64.cc | 3 +- deps/v8/src/arm64/deoptimizer-arm64.cc | 5 +- deps/v8/src/arm64/disasm-arm64.cc | 24 +- deps/v8/src/arm64/frames-arm64.cc | 9 +- deps/v8/src/arm64/frames-arm64.h | 5 +- deps/v8/src/arm64/full-codegen-arm64.cc | 701 ++- deps/v8/src/arm64/instructions-arm64.cc | 30 +- deps/v8/src/arm64/instructions-arm64.h | 14 +- deps/v8/src/arm64/instrument-arm64.cc | 3 +- .../src/arm64/interface-descriptors-arm64.cc | 323 +- deps/v8/src/arm64/lithium-arm64.cc | 80 +- deps/v8/src/arm64/lithium-arm64.h | 83 +- deps/v8/src/arm64/lithium-codegen-arm64.cc | 329 +- deps/v8/src/arm64/lithium-codegen-arm64.h | 22 +- .../src/arm64/lithium-gap-resolver-arm64.cc | 3 +- deps/v8/src/arm64/macro-assembler-arm64.cc | 24 +- deps/v8/src/arm64/macro-assembler-arm64.h | 4 +- .../src/arm64/regexp-macro-assembler-arm64.cc | 3 +- .../src/arm64/regexp-macro-assembler-arm64.h | 1 + deps/v8/src/arm64/simulator-arm64.cc | 175 +- deps/v8/src/arm64/simulator-arm64.h | 19 +- deps/v8/src/arm64/utils-arm64.cc | 5 +- deps/v8/src/arm64/utils-arm64.h | 43 + deps/v8/src/array-iterator.js | 20 +- deps/v8/src/array.js | 283 +- deps/v8/src/arraybuffer.js | 29 +- deps/v8/src/assembler.cc | 215 +- deps/v8/src/assembler.h | 163 +- deps/v8/src/ast-literal-reindexer.cc | 311 ++ deps/v8/src/ast-literal-reindexer.h | 46 + deps/v8/src/ast-numbering.cc | 70 +- deps/v8/src/ast-value-factory.cc | 18 +- deps/v8/src/ast-value-factory.h | 28 +- deps/v8/src/ast.cc | 230 +- deps/v8/src/ast.h | 479 +- deps/v8/src/background-parsing-task.cc | 4 +- deps/v8/src/bailout-reason.cc | 4 +- deps/v8/src/bailout-reason.h | 2 + .../v8/src/base/atomicops_internals_arm_gcc.h | 6 +- deps/v8/src/base/bits.h | 24 + deps/v8/src/base/macros.h | 9 +- deps/v8/src/base/safe_math_impl.h | 4 +- deps/v8/src/basic-block-profiler.h | 3 - deps/v8/src/bignum-dtoa.cc | 3 +- deps/v8/src/bignum.cc | 3 +- deps/v8/src/bootstrapper.cc | 443 +- deps/v8/src/builtins.cc | 115 +- deps/v8/src/builtins.h | 144 +- deps/v8/src/cached-powers.cc | 3 +- deps/v8/src/char-predicates.cc | 4 +- deps/v8/src/code-factory.cc | 89 +- deps/v8/src/code-factory.h | 20 +- deps/v8/src/code-stubs-hydrogen.cc | 240 +- deps/v8/src/code-stubs.cc | 129 +- deps/v8/src/code-stubs.h | 435 +- deps/v8/src/codegen.cc | 3 +- deps/v8/src/codegen.h | 1 - deps/v8/src/collection-iterator.js | 31 +- deps/v8/src/collection.js | 146 +- deps/v8/src/compilation-cache.cc | 32 +- deps/v8/src/compilation-cache.h | 10 +- deps/v8/src/compilation-dependencies.cc | 4 +- deps/v8/src/compiler.cc | 254 +- deps/v8/src/compiler.h | 49 +- deps/v8/src/compiler/access-builder.cc | 80 +- deps/v8/src/compiler/access-builder.h | 44 +- .../v8/src/compiler/arm/code-generator-arm.cc | 84 +- .../src/compiler/arm/instruction-codes-arm.h | 1 + .../compiler/arm/instruction-selector-arm.cc | 44 +- deps/v8/src/compiler/arm/linkage-arm.cc | 6 + .../compiler/arm64/code-generator-arm64.cc | 106 +- .../compiler/arm64/instruction-codes-arm64.h | 1 + .../arm64/instruction-selector-arm64.cc | 452 +- deps/v8/src/compiler/arm64/linkage-arm64.cc | 12 +- deps/v8/src/compiler/ast-graph-builder.cc | 1635 ++++-- deps/v8/src/compiler/ast-graph-builder.h | 116 +- .../compiler/ast-loop-assignment-analyzer.cc | 9 +- deps/v8/src/compiler/change-lowering.cc | 32 +- deps/v8/src/compiler/coalesced-live-ranges.cc | 148 + deps/v8/src/compiler/coalesced-live-ranges.h | 109 + deps/v8/src/compiler/code-generator-impl.h | 8 + deps/v8/src/compiler/code-generator.cc | 146 +- deps/v8/src/compiler/code-generator.h | 4 + .../src/compiler/common-operator-reducer.cc | 308 +- .../v8/src/compiler/common-operator-reducer.h | 23 +- deps/v8/src/compiler/common-operator.cc | 111 +- deps/v8/src/compiler/common-operator.h | 37 +- deps/v8/src/compiler/control-builders.cc | 13 +- deps/v8/src/compiler/control-builders.h | 3 + .../v8/src/compiler/control-flow-optimizer.cc | 27 +- deps/v8/src/compiler/control-flow-optimizer.h | 15 +- deps/v8/src/compiler/control-reducer.cc | 603 --- deps/v8/src/compiler/control-reducer.h | 43 - deps/v8/src/compiler/dead-code-elimination.cc | 145 + deps/v8/src/compiler/dead-code-elimination.h | 52 + deps/v8/src/compiler/frame-elider.cc | 4 +- deps/v8/src/compiler/frame-states.cc | 40 +- deps/v8/src/compiler/frame-states.h | 83 +- deps/v8/src/compiler/gap-resolver.cc | 6 +- deps/v8/src/compiler/graph-reducer.cc | 63 +- deps/v8/src/compiler/graph-reducer.h | 46 +- deps/v8/src/compiler/graph-trimmer.cc | 48 + deps/v8/src/compiler/graph-trimmer.h | 57 + deps/v8/src/compiler/graph-visualizer.cc | 12 +- deps/v8/src/compiler/graph.cc | 16 +- deps/v8/src/compiler/graph.h | 16 +- deps/v8/src/compiler/greedy-allocator.cc | 350 ++ deps/v8/src/compiler/greedy-allocator.h | 111 + .../src/compiler/ia32/code-generator-ia32.cc | 51 +- .../compiler/ia32/instruction-codes-ia32.h | 1 + .../ia32/instruction-selector-ia32.cc | 53 +- deps/v8/src/compiler/ia32/linkage-ia32.cc | 2 + deps/v8/src/compiler/instruction-codes.h | 55 +- deps/v8/src/compiler/instruction-selector.cc | 74 +- deps/v8/src/compiler/instruction.cc | 31 +- deps/v8/src/compiler/instruction.h | 29 +- deps/v8/src/compiler/js-builtin-reducer.cc | 38 +- deps/v8/src/compiler/js-builtin-reducer.h | 4 +- .../src/compiler/js-context-specialization.cc | 40 +- .../src/compiler/js-context-specialization.h | 27 +- deps/v8/src/compiler/js-generic-lowering.cc | 489 +- deps/v8/src/compiler/js-generic-lowering.h | 3 - deps/v8/src/compiler/js-graph.cc | 15 +- deps/v8/src/compiler/js-graph.h | 7 +- deps/v8/src/compiler/js-inlining.cc | 267 +- deps/v8/src/compiler/js-inlining.h | 17 +- deps/v8/src/compiler/js-intrinsic-lowering.cc | 213 +- deps/v8/src/compiler/js-intrinsic-lowering.h | 18 +- deps/v8/src/compiler/js-operator.cc | 257 +- deps/v8/src/compiler/js-operator.h | 224 +- deps/v8/src/compiler/js-type-feedback.cc | 161 +- deps/v8/src/compiler/js-type-feedback.h | 47 +- deps/v8/src/compiler/js-typed-lowering.cc | 792 ++- deps/v8/src/compiler/js-typed-lowering.h | 18 +- deps/v8/src/compiler/linkage-impl.h | 37 +- deps/v8/src/compiler/linkage.cc | 39 +- deps/v8/src/compiler/linkage.h | 19 +- deps/v8/src/compiler/load-elimination.cc | 4 +- deps/v8/src/compiler/load-elimination.h | 4 +- deps/v8/src/compiler/loop-analysis.h | 3 +- deps/v8/src/compiler/machine-operator.cc | 31 +- deps/v8/src/compiler/machine-operator.h | 43 +- deps/v8/src/compiler/machine-type.h | 38 +- .../src/compiler/mips/code-generator-mips.cc | 93 +- .../compiler/mips/instruction-codes-mips.h | 4 + .../mips/instruction-selector-mips.cc | 58 +- deps/v8/src/compiler/mips/linkage-mips.cc | 5 + .../compiler/mips64/code-generator-mips64.cc | 136 +- .../mips64/instruction-codes-mips64.h | 4 + .../mips64/instruction-selector-mips64.cc | 64 +- deps/v8/src/compiler/mips64/linkage-mips64.cc | 5 + deps/v8/src/compiler/move-optimizer.cc | 2 +- deps/v8/src/compiler/node-marker.cc | 27 - deps/v8/src/compiler/node-marker.h | 36 +- deps/v8/src/compiler/node-matchers.h | 5 +- deps/v8/src/compiler/node-properties.cc | 50 +- deps/v8/src/compiler/node-properties.h | 10 +- deps/v8/src/compiler/node.cc | 305 +- deps/v8/src/compiler/node.h | 283 +- deps/v8/src/compiler/opcodes.cc | 6 + deps/v8/src/compiler/opcodes.h | 20 +- deps/v8/src/compiler/operator-properties.cc | 34 +- deps/v8/src/compiler/osr.cc | 64 +- deps/v8/src/compiler/pipeline.cc | 213 +- .../v8/src/compiler/ppc/code-generator-ppc.cc | 66 +- .../src/compiler/ppc/instruction-codes-ppc.h | 2 + .../compiler/ppc/instruction-selector-ppc.cc | 75 +- deps/v8/src/compiler/ppc/linkage-ppc.cc | 2 + deps/v8/src/compiler/register-allocator.cc | 601 +-- deps/v8/src/compiler/register-allocator.h | 72 +- .../v8/src/compiler/register-configuration.cc | 7 +- deps/v8/src/compiler/schedule.cc | 6 +- deps/v8/src/compiler/scheduler.cc | 4 +- deps/v8/src/compiler/simplified-lowering.cc | 37 +- deps/v8/src/compiler/simplified-lowering.h | 1 - .../compiler/simplified-operator-reducer.cc | 61 +- .../compiler/simplified-operator-reducer.h | 9 +- deps/v8/src/compiler/simplified-operator.cc | 1 - deps/v8/src/compiler/simplified-operator.h | 1 - deps/v8/src/compiler/source-position.cc | 7 +- deps/v8/src/compiler/source-position.h | 10 +- deps/v8/src/compiler/typer.cc | 527 +- deps/v8/src/compiler/typer.h | 56 +- deps/v8/src/compiler/verifier.cc | 90 +- .../v8/src/compiler/x64/code-generator-x64.cc | 93 +- .../src/compiler/x64/instruction-codes-x64.h | 1 + .../compiler/x64/instruction-selector-x64.cc | 94 +- deps/v8/src/compiler/x64/linkage-x64.cc | 11 + deps/v8/src/compiler/x87/OWNERS | 2 + .../v8/src/compiler/x87/code-generator-x87.cc | 1851 +++++++ .../src/compiler/x87/instruction-codes-x87.h | 122 + .../compiler/x87/instruction-selector-x87.cc | 1341 +++++ deps/v8/src/compiler/x87/linkage-x87.cc | 64 + deps/v8/src/contexts.cc | 57 +- deps/v8/src/contexts.h | 42 +- deps/v8/src/conversions.cc | 3 +- deps/v8/src/counters.cc | 3 +- deps/v8/src/cpu-profiler.cc | 3 +- deps/v8/src/d8-debug.cc | 4 +- deps/v8/src/d8.cc | 742 ++- deps/v8/src/d8.gyp | 7 +- deps/v8/src/d8.h | 149 +- deps/v8/src/date.cc | 3 +- deps/v8/src/date.js | 112 +- deps/v8/src/dateparser.cc | 3 +- deps/v8/src/debug.cc | 447 +- deps/v8/src/debug.h | 41 +- deps/v8/src/deoptimizer.cc | 3242 +++++------- deps/v8/src/deoptimizer.h | 593 ++- deps/v8/src/disassembler.cc | 3 +- deps/v8/src/diy-fp.cc | 3 +- deps/v8/src/dtoa.cc | 3 +- deps/v8/src/elements-kind.cc | 13 +- deps/v8/src/elements.cc | 1036 ++-- deps/v8/src/elements.h | 103 +- deps/v8/src/execution.cc | 34 +- deps/v8/src/execution.h | 3 - deps/v8/src/expression-classifier.h | 255 + .../externalize-string-extension.cc | 45 +- .../src/extensions/free-buffer-extension.cc | 3 +- deps/v8/src/extensions/gc-extension.cc | 10 +- .../v8/src/extensions/statistics-extension.cc | 26 +- .../extensions/trigger-failure-extension.cc | 3 +- deps/v8/src/factory.cc | 309 +- deps/v8/src/factory.h | 93 +- deps/v8/src/fast-dtoa.cc | 3 +- deps/v8/src/fixed-dtoa.cc | 3 +- deps/v8/src/flag-definitions.h | 65 +- deps/v8/src/flags.cc | 3 +- deps/v8/src/frames.cc | 278 +- deps/v8/src/frames.h | 55 +- deps/v8/src/full-codegen.cc | 132 +- deps/v8/src/full-codegen.h | 71 +- deps/v8/src/func-name-inferrer.cc | 3 +- deps/v8/src/generator.js | 31 +- deps/v8/src/global-handles.cc | 10 +- deps/v8/src/globals.h | 109 +- deps/v8/src/handles-inl.h | 14 +- deps/v8/src/handles.cc | 4 +- deps/v8/src/handles.h | 30 +- deps/v8/src/harmony-array-includes.js | 4 +- deps/v8/src/harmony-array.js | 176 +- deps/v8/src/harmony-atomics.js | 143 + deps/v8/src/harmony-object.js | 17 +- deps/v8/src/harmony-reflect.js | 4 +- deps/v8/src/harmony-regexp.js | 2 +- deps/v8/src/harmony-sharedarraybuffer.js | 56 + deps/v8/src/harmony-spread.js | 8 +- deps/v8/src/harmony-tostring.js | 4 +- deps/v8/src/harmony-typedarray.js | 389 +- deps/v8/src/heap-profiler.cc | 3 +- deps/v8/src/heap-snapshot-generator.cc | 40 +- deps/v8/src/heap-snapshot-generator.h | 3 +- deps/v8/src/heap/gc-idle-time-handler.cc | 49 +- deps/v8/src/heap/gc-idle-time-handler.h | 12 +- deps/v8/src/heap/gc-tracer.cc | 230 +- deps/v8/src/heap/gc-tracer.h | 74 +- deps/v8/src/heap/heap-inl.h | 34 +- deps/v8/src/heap/heap.cc | 964 ++-- deps/v8/src/heap/heap.h | 276 +- deps/v8/src/heap/identity-map.cc | 6 +- deps/v8/src/heap/incremental-marking.cc | 35 +- deps/v8/src/heap/incremental-marking.h | 4 +- deps/v8/src/heap/mark-compact.cc | 928 ++-- deps/v8/src/heap/mark-compact.h | 101 +- deps/v8/src/heap/objects-visiting-inl.h | 72 +- deps/v8/src/heap/objects-visiting.cc | 16 +- deps/v8/src/heap/objects-visiting.h | 2 - deps/v8/src/heap/spaces-inl.h | 95 +- deps/v8/src/heap/spaces.cc | 53 +- deps/v8/src/heap/spaces.h | 104 +- deps/v8/src/heap/store-buffer.cc | 63 +- deps/v8/src/hydrogen-bce.cc | 11 +- deps/v8/src/hydrogen-bch.cc | 3 +- deps/v8/src/hydrogen-canonicalize.cc | 3 +- deps/v8/src/hydrogen-check-elimination.cc | 3 +- deps/v8/src/hydrogen-dce.cc | 3 +- deps/v8/src/hydrogen-dehoist.cc | 3 +- deps/v8/src/hydrogen-environment-liveness.cc | 3 +- deps/v8/src/hydrogen-escape-analysis.cc | 3 +- deps/v8/src/hydrogen-gvn.cc | 3 +- deps/v8/src/hydrogen-infer-representation.cc | 3 +- deps/v8/src/hydrogen-infer-types.cc | 3 +- deps/v8/src/hydrogen-instructions.cc | 112 +- deps/v8/src/hydrogen-instructions.h | 393 +- deps/v8/src/hydrogen-load-elimination.cc | 3 +- deps/v8/src/hydrogen-mark-deoptimize.cc | 3 +- deps/v8/src/hydrogen-mark-unreachable.cc | 3 +- deps/v8/src/hydrogen-osr.cc | 3 +- deps/v8/src/hydrogen-range-analysis.cc | 3 +- deps/v8/src/hydrogen-redundant-phi.cc | 3 +- deps/v8/src/hydrogen-removable-simulates.cc | 3 +- .../v8/src/hydrogen-representation-changes.cc | 3 +- deps/v8/src/hydrogen-sce.cc | 3 +- deps/v8/src/hydrogen-store-elimination.cc | 3 +- deps/v8/src/hydrogen-types.cc | 3 +- deps/v8/src/hydrogen-uint32-analysis.cc | 3 +- deps/v8/src/hydrogen.cc | 413 +- deps/v8/src/hydrogen.h | 32 +- deps/v8/src/i18n.cc | 3 +- deps/v8/src/i18n.js | 611 ++- deps/v8/src/ia32/assembler-ia32-inl.h | 12 +- deps/v8/src/ia32/assembler-ia32.cc | 23 +- deps/v8/src/ia32/assembler-ia32.h | 32 +- deps/v8/src/ia32/builtins-ia32.cc | 99 +- deps/v8/src/ia32/code-stubs-ia32.cc | 231 +- deps/v8/src/ia32/codegen-ia32.cc | 3 +- deps/v8/src/ia32/cpu-ia32.cc | 3 +- deps/v8/src/ia32/debug-ia32.cc | 22 +- deps/v8/src/ia32/deoptimizer-ia32.cc | 5 +- deps/v8/src/ia32/disasm-ia32.cc | 2 +- deps/v8/src/ia32/frames-ia32.cc | 9 +- deps/v8/src/ia32/frames-ia32.h | 1 - deps/v8/src/ia32/full-codegen-ia32.cc | 671 ++- .../v8/src/ia32/interface-descriptors-ia32.cc | 294 +- deps/v8/src/ia32/lithium-codegen-ia32.cc | 262 +- deps/v8/src/ia32/lithium-codegen-ia32.h | 6 +- deps/v8/src/ia32/lithium-gap-resolver-ia32.cc | 3 +- deps/v8/src/ia32/lithium-ia32.cc | 77 +- deps/v8/src/ia32/lithium-ia32.h | 81 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 6 +- .../src/ia32/regexp-macro-assembler-ia32.cc | 3 +- deps/v8/src/ic/access-compiler.cc | 4 +- deps/v8/src/ic/access-compiler.h | 10 +- deps/v8/src/ic/arm/access-compiler-arm.cc | 4 +- deps/v8/src/ic/arm/handler-compiler-arm.cc | 4 +- deps/v8/src/ic/arm/ic-arm.cc | 222 +- deps/v8/src/ic/arm/ic-compiler-arm.cc | 4 +- deps/v8/src/ic/arm/stub-cache-arm.cc | 8 +- deps/v8/src/ic/arm64/access-compiler-arm64.cc | 4 +- .../v8/src/ic/arm64/handler-compiler-arm64.cc | 4 +- deps/v8/src/ic/arm64/ic-arm64.cc | 263 +- deps/v8/src/ic/arm64/ic-compiler-arm64.cc | 4 +- deps/v8/src/ic/arm64/stub-cache-arm64.cc | 8 +- deps/v8/src/ic/call-optimization.cc | 4 +- deps/v8/src/ic/handler-compiler.cc | 37 +- deps/v8/src/ic/handler-compiler.h | 3 +- deps/v8/src/ic/ia32/access-compiler-ia32.cc | 4 +- deps/v8/src/ic/ia32/handler-compiler-ia32.cc | 11 +- deps/v8/src/ic/ia32/ic-compiler-ia32.cc | 4 +- deps/v8/src/ic/ia32/ic-ia32.cc | 224 +- deps/v8/src/ic/ia32/stub-cache-ia32.cc | 12 +- deps/v8/src/ic/ic-compiler.cc | 98 +- deps/v8/src/ic/ic-compiler.h | 10 +- deps/v8/src/ic/ic-inl.h | 61 +- deps/v8/src/ic/ic-state.cc | 30 +- deps/v8/src/ic/ic-state.h | 68 +- deps/v8/src/ic/ic.cc | 787 +-- deps/v8/src/ic/ic.h | 158 +- deps/v8/src/ic/mips/access-compiler-mips.cc | 4 +- deps/v8/src/ic/mips/handler-compiler-mips.cc | 4 +- deps/v8/src/ic/mips/ic-compiler-mips.cc | 4 +- deps/v8/src/ic/mips/ic-mips.cc | 222 +- deps/v8/src/ic/mips/stub-cache-mips.cc | 8 +- .../src/ic/mips64/access-compiler-mips64.cc | 4 +- .../src/ic/mips64/handler-compiler-mips64.cc | 4 +- deps/v8/src/ic/mips64/ic-compiler-mips64.cc | 4 +- deps/v8/src/ic/mips64/ic-mips64.cc | 221 +- deps/v8/src/ic/mips64/stub-cache-mips64.cc | 14 +- deps/v8/src/ic/ppc/access-compiler-ppc.cc | 4 +- deps/v8/src/ic/ppc/handler-compiler-ppc.cc | 10 +- deps/v8/src/ic/ppc/ic-compiler-ppc.cc | 4 +- deps/v8/src/ic/ppc/ic-ppc.cc | 228 +- deps/v8/src/ic/ppc/stub-cache-ppc.cc | 8 +- deps/v8/src/ic/stub-cache.cc | 4 +- deps/v8/src/ic/x64/access-compiler-x64.cc | 4 +- deps/v8/src/ic/x64/handler-compiler-x64.cc | 4 +- deps/v8/src/ic/x64/ic-compiler-x64.cc | 4 +- deps/v8/src/ic/x64/ic-x64.cc | 226 +- deps/v8/src/ic/x64/stub-cache-x64.cc | 8 +- deps/v8/src/ic/x87/access-compiler-x87.cc | 4 +- deps/v8/src/ic/x87/handler-compiler-x87.cc | 21 +- deps/v8/src/ic/x87/ic-compiler-x87.cc | 4 +- deps/v8/src/ic/x87/ic-x87.cc | 224 +- deps/v8/src/ic/x87/stub-cache-x87.cc | 13 +- deps/v8/src/icu_util.cc | 3 +- deps/v8/src/interface-descriptors.cc | 363 +- deps/v8/src/interface-descriptors.h | 210 +- deps/v8/src/interpreter-irregexp.cc | 3 +- deps/v8/src/isolate.cc | 174 +- deps/v8/src/isolate.h | 47 +- deps/v8/src/iterator-prototype.js | 21 + deps/v8/src/json-parser.h | 35 +- deps/v8/src/json-stringifier.h | 13 +- deps/v8/src/json.js | 80 +- deps/v8/src/jsregexp.cc | 402 +- deps/v8/src/jsregexp.h | 68 +- deps/v8/src/layout-descriptor-inl.h | 4 +- deps/v8/src/layout-descriptor.cc | 4 +- deps/v8/src/libplatform/default-platform.cc | 51 +- deps/v8/src/libplatform/default-platform.h | 12 + deps/v8/src/list-inl.h | 42 +- deps/v8/src/list.h | 10 +- deps/v8/src/lithium-allocator.cc | 3 +- deps/v8/src/lithium-codegen.cc | 103 +- deps/v8/src/lithium-codegen.h | 6 + deps/v8/src/lithium.cc | 21 +- deps/v8/src/lithium.h | 22 +- deps/v8/src/liveedit.cc | 40 +- deps/v8/src/liveedit.h | 2 +- deps/v8/src/log-utils.cc | 3 +- deps/v8/src/log-utils.h | 2 +- deps/v8/src/log.cc | 91 +- deps/v8/src/log.h | 10 - deps/v8/src/lookup-inl.h | 61 +- deps/v8/src/lookup.cc | 150 +- deps/v8/src/lookup.h | 126 +- deps/v8/src/macro-assembler.h | 24 +- deps/v8/src/macros.py | 18 +- deps/v8/src/math.js | 69 +- deps/v8/src/messages.cc | 157 +- deps/v8/src/messages.h | 236 +- deps/v8/src/messages.js | 300 +- deps/v8/src/mips/assembler-mips.cc | 382 +- deps/v8/src/mips/assembler-mips.h | 79 +- deps/v8/src/mips/builtins-mips.cc | 135 +- deps/v8/src/mips/code-stubs-mips.cc | 204 +- deps/v8/src/mips/codegen-mips.cc | 3 +- deps/v8/src/mips/constants-mips.cc | 35 +- deps/v8/src/mips/constants-mips.h | 202 +- deps/v8/src/mips/cpu-mips.cc | 3 +- deps/v8/src/mips/debug-mips.cc | 22 +- deps/v8/src/mips/deoptimizer-mips.cc | 5 +- deps/v8/src/mips/disasm-mips.cc | 294 +- deps/v8/src/mips/frames-mips.cc | 9 +- deps/v8/src/mips/frames-mips.h | 5 +- deps/v8/src/mips/full-codegen-mips.cc | 685 ++- .../v8/src/mips/interface-descriptors-mips.cc | 295 +- deps/v8/src/mips/lithium-codegen-mips.cc | 296 +- deps/v8/src/mips/lithium-codegen-mips.h | 6 +- deps/v8/src/mips/lithium-gap-resolver-mips.cc | 3 +- deps/v8/src/mips/lithium-mips.cc | 79 +- deps/v8/src/mips/lithium-mips.h | 83 +- deps/v8/src/mips/macro-assembler-mips.cc | 24 +- .../src/mips/regexp-macro-assembler-mips.cc | 3 +- deps/v8/src/mips/simulator-mips.cc | 1203 ++++- deps/v8/src/mips/simulator-mips.h | 30 +- deps/v8/src/mips64/assembler-mips64-inl.h | 49 +- deps/v8/src/mips64/assembler-mips64.cc | 490 +- deps/v8/src/mips64/assembler-mips64.h | 100 +- deps/v8/src/mips64/builtins-mips64.cc | 136 +- deps/v8/src/mips64/code-stubs-mips64.cc | 218 +- deps/v8/src/mips64/codegen-mips64.cc | 3 +- deps/v8/src/mips64/constants-mips64.cc | 53 +- deps/v8/src/mips64/constants-mips64.h | 243 +- deps/v8/src/mips64/cpu-mips64.cc | 3 +- deps/v8/src/mips64/debug-mips64.cc | 22 +- deps/v8/src/mips64/deoptimizer-mips64.cc | 5 +- deps/v8/src/mips64/disasm-mips64.cc | 318 +- deps/v8/src/mips64/frames-mips64.cc | 9 +- deps/v8/src/mips64/frames-mips64.h | 5 +- deps/v8/src/mips64/full-codegen-mips64.cc | 690 ++- .../mips64/interface-descriptors-mips64.cc | 295 +- deps/v8/src/mips64/lithium-codegen-mips64.cc | 551 +- deps/v8/src/mips64/lithium-codegen-mips64.h | 9 +- .../src/mips64/lithium-gap-resolver-mips64.cc | 3 +- deps/v8/src/mips64/lithium-mips64.cc | 112 +- deps/v8/src/mips64/lithium-mips64.h | 147 +- deps/v8/src/mips64/macro-assembler-mips64.cc | 270 +- deps/v8/src/mips64/macro-assembler-mips64.h | 20 +- .../mips64/regexp-macro-assembler-mips64.cc | 3 +- deps/v8/src/mips64/simulator-mips64.cc | 1319 ++++- deps/v8/src/mips64/simulator-mips64.h | 94 +- deps/v8/src/mirror-debugger.js | 55 +- deps/v8/src/modules.cc | 4 +- deps/v8/src/object-observe.js | 49 +- deps/v8/src/objects-debug.cc | 38 +- deps/v8/src/objects-inl.h | 1091 ++-- deps/v8/src/objects-printer.cc | 56 +- deps/v8/src/objects.cc | 4561 +++++++---------- deps/v8/src/objects.h | 1360 ++--- deps/v8/src/optimizing-compile-dispatcher.cc | 4 +- deps/v8/src/parser.cc | 1343 ++--- deps/v8/src/parser.h | 257 +- deps/v8/src/pattern-rewriter.cc | 423 ++ .../src/pending-compilation-error-handler.cc | 29 +- .../src/pending-compilation-error-handler.h | 13 +- deps/v8/src/perf-jit.cc | 148 - deps/v8/src/perf-jit.h | 113 - deps/v8/src/ppc/assembler-ppc-inl.h | 185 +- deps/v8/src/ppc/assembler-ppc.cc | 170 +- deps/v8/src/ppc/assembler-ppc.h | 134 +- deps/v8/src/ppc/builtins-ppc.cc | 174 +- deps/v8/src/ppc/code-stubs-ppc.cc | 260 +- deps/v8/src/ppc/codegen-ppc.cc | 4 +- deps/v8/src/ppc/constants-ppc.cc | 4 +- deps/v8/src/ppc/constants-ppc.h | 5 + deps/v8/src/ppc/cpu-ppc.cc | 4 +- deps/v8/src/ppc/debug-ppc.cc | 25 +- deps/v8/src/ppc/deoptimizer-ppc.cc | 8 +- deps/v8/src/ppc/disasm-ppc.cc | 4 +- deps/v8/src/ppc/frames-ppc.cc | 18 +- deps/v8/src/ppc/frames-ppc.h | 12 +- deps/v8/src/ppc/full-codegen-ppc.cc | 714 +-- deps/v8/src/ppc/interface-descriptors-ppc.cc | 296 +- deps/v8/src/ppc/lithium-codegen-ppc.cc | 305 +- deps/v8/src/ppc/lithium-codegen-ppc.h | 8 +- deps/v8/src/ppc/lithium-gap-resolver-ppc.cc | 4 +- deps/v8/src/ppc/lithium-ppc.cc | 80 +- deps/v8/src/ppc/lithium-ppc.h | 81 +- deps/v8/src/ppc/macro-assembler-ppc.cc | 159 +- deps/v8/src/ppc/macro-assembler-ppc.h | 32 +- deps/v8/src/ppc/regexp-macro-assembler-ppc.cc | 4 +- deps/v8/src/ppc/simulator-ppc.cc | 42 +- deps/v8/src/ppc/simulator-ppc.h | 3 + deps/v8/src/preparse-data-format.h | 5 +- deps/v8/src/preparse-data.cc | 10 +- deps/v8/src/preparse-data.h | 43 +- deps/v8/src/preparser.cc | 96 +- deps/v8/src/preparser.h | 1206 +++-- deps/v8/src/prettyprinter.cc | 117 +- deps/v8/src/prettyprinter.h | 1 + deps/v8/src/profile-generator.cc | 3 +- deps/v8/src/prologue.js | 232 + deps/v8/src/promise.js | 15 +- deps/v8/src/property.cc | 3 +- deps/v8/src/proxy.js | 32 +- .../v8/src/regexp-macro-assembler-irregexp.cc | 3 +- deps/v8/src/regexp-macro-assembler-tracer.cc | 9 +- deps/v8/src/regexp-macro-assembler-tracer.h | 1 + deps/v8/src/regexp-macro-assembler.cc | 3 +- deps/v8/src/regexp-macro-assembler.h | 3 + deps/v8/src/regexp-stack.cc | 3 +- deps/v8/src/regexp.js | 86 +- deps/v8/src/rewriter.cc | 5 +- deps/v8/src/runtime-profiler.cc | 9 +- deps/v8/src/runtime.js | 108 +- deps/v8/src/runtime/runtime-array.cc | 154 +- deps/v8/src/runtime/runtime-atomics.cc | 824 +++ deps/v8/src/runtime/runtime-classes.cc | 116 +- deps/v8/src/runtime/runtime-collections.cc | 100 +- deps/v8/src/runtime/runtime-compiler.cc | 40 +- deps/v8/src/runtime/runtime-date.cc | 30 +- deps/v8/src/runtime/runtime-debug.cc | 457 +- deps/v8/src/runtime/runtime-forin.cc | 75 + deps/v8/src/runtime/runtime-function.cc | 57 +- deps/v8/src/runtime/runtime-generator.cc | 6 +- deps/v8/src/runtime/runtime-i18n.cc | 23 +- deps/v8/src/runtime/runtime-internal.cc | 65 +- deps/v8/src/runtime/runtime-json.cc | 4 +- deps/v8/src/runtime/runtime-literals.cc | 62 +- deps/v8/src/runtime/runtime-liveedit.cc | 4 +- deps/v8/src/runtime/runtime-maths.cc | 4 +- deps/v8/src/runtime/runtime-numbers.cc | 4 +- deps/v8/src/runtime/runtime-object.cc | 576 +-- deps/v8/src/runtime/runtime-observe.cc | 6 +- deps/v8/src/runtime/runtime-proxy.cc | 4 +- deps/v8/src/runtime/runtime-regexp.cc | 17 +- deps/v8/src/runtime/runtime-scopes.cc | 63 +- deps/v8/src/runtime/runtime-strings.cc | 20 +- deps/v8/src/runtime/runtime-symbol.cc | 36 +- deps/v8/src/runtime/runtime-test.cc | 38 +- deps/v8/src/runtime/runtime-typedarray.cc | 72 +- deps/v8/src/runtime/runtime-uri.cc | 4 +- deps/v8/src/runtime/runtime-utils.h | 12 + deps/v8/src/runtime/runtime.h | 204 +- deps/v8/src/safepoint-table.cc | 4 +- deps/v8/src/sampler.cc | 3 +- deps/v8/src/scanner-character-streams.cc | 92 +- deps/v8/src/scanner-character-streams.h | 24 +- deps/v8/src/scanner.cc | 152 +- deps/v8/src/scanner.h | 10 +- deps/v8/src/scopeinfo.cc | 163 +- deps/v8/src/scopes.cc | 210 +- deps/v8/src/scopes.h | 71 +- deps/v8/src/snapshot/natives-external.cc | 3 +- deps/v8/src/snapshot/serialize.cc | 457 +- deps/v8/src/snapshot/serialize.h | 115 +- deps/v8/src/snapshot/snapshot-common.cc | 10 +- deps/v8/src/snapshot/snapshot-empty.cc | 3 +- deps/v8/src/snapshot/snapshot-external.cc | 3 +- deps/v8/src/snapshot/snapshot-source-sink.cc | 3 +- deps/v8/src/snapshot/snapshot.h | 3 +- deps/v8/src/string-builder.cc | 24 +- deps/v8/src/string-builder.h | 2 +- deps/v8/src/string-iterator.js | 35 +- deps/v8/src/string-search.cc | 3 +- deps/v8/src/string-stream.cc | 21 +- deps/v8/src/string-stream.h | 31 +- deps/v8/src/string.js | 135 +- deps/v8/src/strings-storage.cc | 4 +- deps/v8/src/strtod.cc | 3 +- deps/v8/src/symbol.js | 23 +- deps/v8/src/templates.js | 16 +- deps/v8/src/third_party/fdlibm/fdlibm.cc | 4 +- deps/v8/src/third_party/fdlibm/fdlibm.js | 45 +- .../kernel/tools/perf/util/jitdump.h | 83 - deps/v8/src/third_party/valgrind/LICENSE | 54 + deps/v8/src/third_party/vtune/LICENSE | 59 + deps/v8/src/token.cc | 3 +- deps/v8/src/transitions.cc | 35 +- deps/v8/src/transitions.h | 5 +- deps/v8/src/type-feedback-vector-inl.h | 8 +- deps/v8/src/type-feedback-vector.cc | 267 +- deps/v8/src/type-feedback-vector.h | 89 +- deps/v8/src/type-info.cc | 26 +- deps/v8/src/type-info.h | 8 +- deps/v8/src/typedarray.js | 101 +- deps/v8/src/types.cc | 6 +- deps/v8/src/types.h | 22 +- deps/v8/src/typing.cc | 39 +- deps/v8/src/uri.js | 42 +- deps/v8/src/utils.cc | 3 +- deps/v8/src/utils.h | 51 +- deps/v8/src/v8.cc | 3 +- deps/v8/src/v8natives.js | 295 +- deps/v8/src/variables.cc | 7 +- deps/v8/src/variables.h | 13 +- deps/v8/src/vector.h | 29 +- deps/v8/src/version.cc | 3 +- deps/v8/src/weak-collection.js | 38 +- deps/v8/src/x64/assembler-x64-inl.h | 6 +- deps/v8/src/x64/assembler-x64.cc | 23 +- deps/v8/src/x64/assembler-x64.h | 31 +- deps/v8/src/x64/builtins-x64.cc | 111 +- deps/v8/src/x64/code-stubs-x64.cc | 215 +- deps/v8/src/x64/codegen-x64.cc | 3 +- deps/v8/src/x64/cpu-x64.cc | 3 +- deps/v8/src/x64/debug-x64.cc | 22 +- deps/v8/src/x64/deoptimizer-x64.cc | 5 +- deps/v8/src/x64/disasm-x64.cc | 2 +- deps/v8/src/x64/frames-x64.cc | 9 +- deps/v8/src/x64/frames-x64.h | 1 - deps/v8/src/x64/full-codegen-x64.cc | 671 ++- deps/v8/src/x64/interface-descriptors-x64.cc | 295 +- deps/v8/src/x64/lithium-codegen-x64.cc | 278 +- deps/v8/src/x64/lithium-codegen-x64.h | 6 +- deps/v8/src/x64/lithium-gap-resolver-x64.cc | 3 +- deps/v8/src/x64/lithium-x64.cc | 77 +- deps/v8/src/x64/lithium-x64.h | 82 +- deps/v8/src/x64/macro-assembler-x64.cc | 8 +- deps/v8/src/x64/regexp-macro-assembler-x64.cc | 3 +- deps/v8/src/x87/assembler-x87-inl.h | 12 +- deps/v8/src/x87/assembler-x87.cc | 76 +- deps/v8/src/x87/assembler-x87.h | 49 +- deps/v8/src/x87/builtins-x87.cc | 99 +- deps/v8/src/x87/code-stubs-x87.cc | 227 +- deps/v8/src/x87/codegen-x87.cc | 3 +- deps/v8/src/x87/cpu-x87.cc | 3 +- deps/v8/src/x87/debug-x87.cc | 22 +- deps/v8/src/x87/deoptimizer-x87.cc | 5 +- deps/v8/src/x87/disasm-x87.cc | 17 +- deps/v8/src/x87/frames-x87.cc | 9 +- deps/v8/src/x87/frames-x87.h | 1 - deps/v8/src/x87/full-codegen-x87.cc | 671 ++- deps/v8/src/x87/interface-descriptors-x87.cc | 235 +- deps/v8/src/x87/lithium-codegen-x87.cc | 254 +- deps/v8/src/x87/lithium-codegen-x87.h | 6 +- deps/v8/src/x87/lithium-gap-resolver-x87.cc | 3 +- deps/v8/src/x87/lithium-x87.cc | 61 +- deps/v8/src/x87/lithium-x87.h | 69 +- deps/v8/src/x87/macro-assembler-x87.cc | 8 +- deps/v8/src/x87/regexp-macro-assembler-x87.cc | 3 +- deps/v8/src/zone-containers.h | 6 +- deps/v8/test/cctest/cctest.gyp | 4 +- deps/v8/test/cctest/cctest.h | 28 +- deps/v8/test/cctest/cctest.status | 36 +- deps/v8/test/cctest/compiler/c-signature.h | 147 +- deps/v8/test/cctest/compiler/call-tester.h | 366 +- deps/v8/test/cctest/compiler/codegen-tester.h | 81 +- .../v8/test/cctest/compiler/function-tester.h | 21 +- .../cctest/compiler/graph-builder-tester.h | 21 +- .../compiler/instruction-selector-tester.h | 127 - .../compiler/simplified-graph-builder.cc | 2 +- .../compiler/simplified-graph-builder.h | 3 - .../cctest/compiler/test-changes-lowering.cc | 10 +- .../cctest/compiler/test-codegen-deopt.cc | 301 -- .../cctest/compiler/test-control-reducer.cc | 1641 ------ .../cctest/compiler/test-js-constant-cache.cc | 14 +- .../test-js-context-specialization.cc | 40 +- .../cctest/compiler/test-js-typed-lowering.cc | 74 +- .../cctest/compiler/test-jump-threading.cc | 2 +- deps/v8/test/cctest/compiler/test-linkage.cc | 5 +- .../cctest/compiler/test-loop-analysis.cc | 2 +- .../compiler/test-machine-operator-reducer.cc | 2 +- deps/v8/test/cctest/compiler/test-osr.cc | 38 +- deps/v8/test/cctest/compiler/test-pipeline.cc | 23 +- .../compiler/test-representation-change.cc | 8 +- .../v8/test/cctest/compiler/test-run-deopt.cc | 88 +- .../test/cctest/compiler/test-run-inlining.cc | 129 +- .../cctest/compiler/test-run-intrinsics.cc | 51 +- .../test/cctest/compiler/test-run-jscalls.cc | 2 + .../cctest/compiler/test-run-jsexceptions.cc | 43 +- .../v8/test/cctest/compiler/test-run-jsops.cc | 2 - .../test/cctest/compiler/test-run-machops.cc | 163 +- .../v8/test/cctest/compiler/test-run-stubs.cc | 137 +- .../compiler/test-simplified-lowering.cc | 46 +- deps/v8/test/cctest/gay-fixed.cc | 3 +- deps/v8/test/cctest/gay-precision.cc | 3 +- deps/v8/test/cctest/gay-shortest.cc | 3 +- deps/v8/test/cctest/print-extension.cc | 3 +- deps/v8/test/cctest/profiler-extension.cc | 3 +- deps/v8/test/cctest/test-accessors.cc | 2 +- deps/v8/test/cctest/test-api-interceptors.cc | 45 +- deps/v8/test/cctest/test-api.cc | 1248 ++++- deps/v8/test/cctest/test-assembler-arm.cc | 184 +- deps/v8/test/cctest/test-assembler-mips.cc | 3952 ++++++++++++-- deps/v8/test/cctest/test-assembler-mips64.cc | 4281 ++++++++++++++-- deps/v8/test/cctest/test-assembler-ppc.cc | 88 +- deps/v8/test/cctest/test-code-stubs-arm64.cc | 4 +- deps/v8/test/cctest/test-code-stubs-mips64.cc | 3 +- deps/v8/test/cctest/test-compiler.cc | 95 +- deps/v8/test/cctest/test-constantpool.cc | 502 +- deps/v8/test/cctest/test-debug.cc | 299 +- deps/v8/test/cctest/test-decls.cc | 8 +- deps/v8/test/cctest/test-deoptimization.cc | 19 - deps/v8/test/cctest/test-disasm-arm64.cc | 9 +- deps/v8/test/cctest/test-disasm-mips.cc | 287 +- deps/v8/test/cctest/test-disasm-mips64.cc | 299 +- deps/v8/test/cctest/test-extra.js | 14 + deps/v8/test/cctest/test-feedback-vector.cc | 21 +- deps/v8/test/cctest/test-fuzz-arm64.cc | 4 +- deps/v8/test/cctest/test-global-object.cc | 6 +- deps/v8/test/cctest/test-hashing.cc | 2 +- deps/v8/test/cctest/test-hashmap.cc | 2 +- deps/v8/test/cctest/test-heap.cc | 936 +++- deps/v8/test/cctest/test-hydrogen-types.cc | 1 - deps/v8/test/cctest/test-log.cc | 2 +- .../v8/test/cctest/test-microtask-delivery.cc | 25 +- deps/v8/test/cctest/test-migrations.cc | 3 +- deps/v8/test/cctest/test-parsing.cc | 652 ++- deps/v8/test/cctest/test-reloc-info.cc | 7 +- deps/v8/test/cctest/test-serialize.cc | 137 +- deps/v8/test/cctest/test-spaces.cc | 16 +- deps/v8/test/cctest/test-strings.cc | 2 +- .../v8/test/cctest/test-thread-termination.cc | 16 +- deps/v8/test/cctest/test-threads.cc | 11 +- deps/v8/test/cctest/test-typedarrays.cc | 2 +- deps/v8/test/cctest/test-types.cc | 78 +- deps/v8/test/cctest/test-unboxed-doubles.cc | 10 +- deps/v8/test/cctest/test-utils-arm64.h | 6 +- deps/v8/test/cctest/test-version.cc | 3 +- deps/v8/test/cctest/test-weakmaps.cc | 16 +- deps/v8/test/cctest/test-weaksets.cc | 13 +- deps/v8/test/cctest/trace-extension.cc | 3 +- deps/v8/test/js-perf-test/Exceptions/run.js | 26 + .../test/js-perf-test/Exceptions/try-catch.js | 110 + deps/v8/test/js-perf-test/JSTests.json | 22 +- deps/v8/test/js-perf-test/Scope/run.js | 26 + deps/v8/test/js-perf-test/Scope/with.js | 90 + deps/v8/test/js-perf-test/base.js | 12 +- deps/v8/test/message/arrow-bare-rest-param.js | 7 + .../v8/test/message/arrow-bare-rest-param.out | 4 + deps/v8/test/message/arrow-missing.js | 7 + deps/v8/test/message/arrow-missing.out | 4 + .../test/message/arrow-param-after-rest-2.js | 7 + .../test/message/arrow-param-after-rest-2.out | 4 + .../v8/test/message/arrow-param-after-rest.js | 7 + .../test/message/arrow-param-after-rest.out | 4 + .../arrow-strict-eval-bare-parameter.js | 8 + .../arrow-strict-eval-bare-parameter.out | 4 + deps/v8/test/message/arrow-two-rest-params.js | 7 + .../v8/test/message/arrow-two-rest-params.out | 4 + .../message/class-constructor-accessor.js | 4 +- .../message/class-constructor-generator.js | 4 +- .../message/destructuring-modify-const.js | 9 + .../message/destructuring-modify-const.out | 5 + deps/v8/test/message/invalid-spread-2.js | 7 + deps/v8/test/message/invalid-spread-2.out | 4 + deps/v8/test/message/invalid-spread.js | 7 + deps/v8/test/message/invalid-spread.out | 4 + deps/v8/test/message/message.status | 7 - .../message/rest-param-class-setter-strict.js | 12 + .../rest-param-class-setter-strict.out | 4 + .../rest-param-object-setter-sloppy.js | 11 + .../rest-param-object-setter-sloppy.out | 4 + .../rest-param-object-setter-strict.js | 12 + .../rest-param-object-setter-strict.out | 4 + .../test/message/strong-object-freeze-prop.js | 11 + .../message/strong-object-freeze-prop.out | 9 + .../test/message/strong-object-set-proto.js | 9 + .../test/message/strong-object-set-proto.out | 9 + .../super-constructor-extra-statement.js | 4 +- deps/v8/test/message/super-constructor.js | 4 +- deps/v8/test/message/super-in-function.js | 4 +- deps/v8/test/mjsunit/arguments.js | 16 + deps/v8/test/mjsunit/array-length.js | 13 + deps/v8/test/mjsunit/array-sort.js | 16 + deps/v8/test/mjsunit/asm/atomics-add.js | 93 + deps/v8/test/mjsunit/asm/atomics-and.js | 94 + .../mjsunit/asm/atomics-compareexchange.js | 121 + deps/v8/test/mjsunit/asm/atomics-exchange.js | 92 + deps/v8/test/mjsunit/asm/atomics-load.js | 102 + deps/v8/test/mjsunit/asm/atomics-or.js | 93 + deps/v8/test/mjsunit/asm/atomics-store.js | 109 + deps/v8/test/mjsunit/asm/atomics-sub.js | 94 + deps/v8/test/mjsunit/asm/atomics-xor.js | 93 + deps/v8/test/mjsunit/big-array-literal.js | 1 - deps/v8/test/mjsunit/call-counts.js | 40 + .../compiler/deopt-tonumber-compare.js | 44 + .../mjsunit/compiler/deopt-tonumber-shift.js | 40 + deps/v8/test/mjsunit/compiler/jsnatives.js | 4 +- deps/v8/test/mjsunit/compiler/optimize_max.js | 69 + deps/v8/test/mjsunit/compiler/optimize_min.js | 69 + .../v8/test/mjsunit/compiler/osr-array-len.js | 22 + deps/v8/test/mjsunit/compiler/osr-maze1.js | 2 +- deps/v8/test/mjsunit/compiler/osr-maze2.js | 2 +- deps/v8/test/mjsunit/compiler/regress-4206.js | 28 + deps/v8/test/mjsunit/compiler/regress-4207.js | 15 + .../test/mjsunit/compiler/regress-445907.js | 2 - .../test/mjsunit/compiler/regress-446647.js | 2 +- .../test/mjsunit/compiler/regress-447567.js | 2 - .../test/mjsunit/compiler/regress-491578.js | 15 + .../mjsunit/compiler/regress-uint8-deopt.js | 2 +- .../compiler/regress-variable-liveness.js | 22 + .../test/mjsunit/compiler/stubs/floor-stub.js | 54 + deps/v8/test/mjsunit/compiler/try-binop.js | 45 + deps/v8/test/mjsunit/compiler/try-deopt.js | 3 +- deps/v8/test/mjsunit/compiler/try-osr.js | 51 + ...1878.js => d8-worker-sharedarraybuffer.js} | 50 +- ...t-literal.js => d8-worker-spawn-worker.js} | 19 +- deps/v8/test/mjsunit/d8-worker.js | 137 + deps/v8/test/mjsunit/date.js | 14 + deps/v8/test/mjsunit/debug-backtrace-text.js | 2 +- deps/v8/test/mjsunit/debug-break-inline.js | 2 +- .../mjsunit/debug-clearbreakpointgroup.js | 1 - .../test/mjsunit/debug-evaluate-arguments.js | 2 +- .../v8/test/mjsunit/debug-evaluate-closure.js | 1 - deps/v8/test/mjsunit/debug-evaluate-with.js | 1 - .../mjsunit/debug-liveedit-breakpoints.js | 2 + .../mjsunit/debug-liveedit-patch-positions.js | 3 + .../mjsunit/debug-liveedit-stack-padding.js | 4 +- deps/v8/test/mjsunit/debug-receiver.js | 2 +- deps/v8/test/mjsunit/debug-references.js | 3 +- deps/v8/test/mjsunit/debug-scopes.js | 6 +- .../test/mjsunit/debug-script-breakpoints.js | 3 + deps/v8/test/mjsunit/debug-script.js | 5 +- deps/v8/test/mjsunit/debug-step-2.js | 1 - .../v8/test/mjsunit/debug-stepin-positions.js | 11 +- .../test/mjsunit/debug-stepout-scope-part1.js | 2 +- .../test/mjsunit/debug-stepout-scope-part2.js | 2 +- .../test/mjsunit/debug-stepout-scope-part3.js | 2 +- .../test/mjsunit/debug-stepout-scope-part4.js | 2 +- .../test/mjsunit/debug-stepout-scope-part5.js | 2 +- .../test/mjsunit/debug-stepout-scope-part6.js | 2 +- .../test/mjsunit/debug-stepout-scope-part7.js | 2 +- .../test/mjsunit/debug-stepout-scope-part8.js | 2 +- deps/v8/test/mjsunit/declare-locally.js | 2 +- deps/v8/test/mjsunit/deserialize-script-id.js | 5 + deps/v8/test/mjsunit/elements-kind.js | 2 +- deps/v8/test/mjsunit/enumeration-order.js | 8 +- .../v8/test/mjsunit/es6/arguments-iterator.js | 5 +- deps/v8/test/mjsunit/es6/block-for.js | 27 +- .../mjsunit/es6/block-non-strict-errors.js | 2 - .../class-property-name-eval-arguments.js | 2 +- .../{harmony => es6}/classes-experimental.js | 2 - .../{harmony => es6}/classes-lazy-parsing.js | 15 +- .../mjsunit/{harmony => es6}/classes-maps.js | 2 +- .../classes-subclass-arrays.js | 3 +- .../test/mjsunit/{harmony => es6}/classes.js | 2 +- deps/v8/test/mjsunit/es6/debug-blockscopes.js | 10 +- .../mjsunit/es6/debug-evaluate-blockscopes.js | 8 +- .../debug-step-into-class-extends.js | 2 +- .../debug-step-into-constructor.js | 2 +- .../v8/test/mjsunit/es6/debug-stepnext-for.js | 23 +- .../test/mjsunit/es6/generators-relocation.js | 6 +- .../v8/test/mjsunit/es6/generators-runtime.js | 33 +- .../mjsunit/es6/indexed-integer-exotics.js | 21 +- .../v8/test/mjsunit/es6/iterator-prototype.js | 58 + .../method-name-eval-arguments.js | 2 - .../object-literals-method.js | 16 +- .../object-literals-property-shorthand.js | 2 - .../mjsunit/es6/promise-internal-setter.js | 17 + .../test/mjsunit/es6/regress/regress-2506.js | 16 +- .../{harmony => es6}/regress/regress-3750.js | 3 +- .../test/mjsunit/es6/regress/regress-4097.js | 37 + .../regress/regress-455141.js | 2 +- .../mjsunit/es6/regress/regress-cr493566.js | 80 + deps/v8/test/mjsunit/es6/string-html.js | 42 + deps/v8/test/mjsunit/es6/templates.js | 20 + .../test/mjsunit/{harmony => es6}/toMethod.js | 2 +- .../v8/test/mjsunit/external-array-no-sse2.js | 715 --- deps/v8/test/mjsunit/for-in.js | 12 + deps/v8/test/mjsunit/function-bind-name.js | 13 + .../mjsunit/get-caller-js-function-throws.js | 14 + .../v8/test/mjsunit/get-caller-js-function.js | 21 + .../mjsunit/global-deleted-property-keyed.js | 6 +- deps/v8/test/mjsunit/global-hash.js | 19 + deps/v8/test/mjsunit/handle-count-ast.js | 12 + .../mjsunit/handle-count-runtime-literals.js | 1230 +++++ deps/v8/test/mjsunit/harmony/array-concat.js | 24 +- deps/v8/test/mjsunit/harmony/array-find.js | 24 +- .../test/mjsunit/harmony/array-findindex.js | 24 +- deps/v8/test/mjsunit/harmony/array-from.js | 28 + deps/v8/test/mjsunit/harmony/array-of.js | 30 + .../arrow-functions-lexical-arguments.js | 2 +- .../mjsunit/harmony/arrow-functions-this.js | 81 + .../test/mjsunit/harmony/arrow-rest-params.js | 142 + deps/v8/test/mjsunit/harmony/atomics.js | 444 ++ .../class-computed-property-names-super.js | 2 +- .../computed-property-names-classes.js | 2 +- .../harmony/computed-property-names-deopt.js | 30 + ...-property-names-object-literals-methods.js | 2 +- .../harmony/computed-property-names-super.js | 3 +- ...ucturing-parameters-literalcount-nolazy.js | 41 + .../destructuring-parameters-literalcount.js | 41 + deps/v8/test/mjsunit/harmony/destructuring.js | 738 +++ deps/v8/test/mjsunit/harmony/new-target.js | 370 ++ .../mjsunit/harmony/object-literals-super.js | 51 +- deps/v8/test/mjsunit/harmony/private.js | 52 +- deps/v8/test/mjsunit/harmony/proxies-for.js | 17 +- deps/v8/test/mjsunit/harmony/proxies.js | 3 +- .../mjsunit/harmony/regress/regress-4160.js | 29 + .../regress/regress-arrow-duplicate-params.js | 7 + .../harmony/regress/regress-crbug-451770.js | 2 +- .../harmony/rest-params-lazy-parsing.js | 18 +- deps/v8/test/mjsunit/harmony/rest-params.js | 2 +- .../test/mjsunit/harmony/set-prototype-of.js | 18 + .../test/mjsunit/harmony/sharedarraybuffer.js | 577 +++ deps/v8/test/mjsunit/harmony/spread-array.js | 179 + .../harmony/spread-call-super-property.js | 20 + deps/v8/test/mjsunit/harmony/super.js | 151 +- .../mjsunit/harmony/typedarray-copywithin.js | 175 + .../test/mjsunit/harmony/typedarray-fill.js | 47 + .../test/mjsunit/harmony/typedarray-find.js | 189 + .../mjsunit/harmony/typedarray-findindex.js | 189 + .../test/mjsunit/harmony/typedarray-from.js | 123 + .../mjsunit/harmony/typedarray-indexing.js | 73 + .../mjsunit/harmony/typedarray-iteration.js | 196 + .../test/mjsunit/harmony/typedarray-reduce.js | 252 + .../mjsunit/harmony/typedarray-reverse.js | 56 + .../test/mjsunit/harmony/typedarray-slice.js | 73 + .../test/mjsunit/harmony/typedarray-sort.js | 57 + .../mjsunit/harmony/typedarray-tostring.js | 88 + .../test/mjsunit/harmony/typedarrays-every.js | 13 +- .../mjsunit/harmony/typedarrays-foreach.js | 19 +- deps/v8/test/mjsunit/harmony/typedarrays.js | 37 + .../has-own-property-evaluation-order.js | 13 + .../json-replacer-number-wrapper-tostring.js | 20 + deps/v8/test/mjsunit/json-replacer-order.js | 26 + deps/v8/test/mjsunit/math-abs.js | 16 + deps/v8/test/mjsunit/math-floor-negative.js | 2 +- .../mjsunit/math-floor-of-div-minus-zero.js | 2 +- .../test/mjsunit/math-floor-of-div-nosudiv.js | 2 +- deps/v8/test/mjsunit/math-floor-of-div.js | 2 +- deps/v8/test/mjsunit/messages.js | 96 +- deps/v8/test/mjsunit/mjsunit.status | 43 +- deps/v8/test/mjsunit/own-symbols.js | 55 - deps/v8/test/mjsunit/proto-accessor.js | 18 + deps/v8/test/mjsunit/regexp-sort.js | 48 + .../mjsunit/regress/poly_count_operation.js | 2 +- deps/v8/test/mjsunit/regress/regress-1119.js | 2 +- deps/v8/test/mjsunit/regress/regress-1130.js | 2 +- deps/v8/test/mjsunit/regress/regress-1132.js | 2 +- .../v8/test/mjsunit/regress/regress-115452.js | 2 +- .../test/mjsunit/regress/regress-1170187.js | 1 - .../v8/test/mjsunit/regress/regress-119609.js | 1 - .../test/mjsunit/regress/regress-1199637.js | 2 +- .../v8/test/mjsunit/regress/regress-131994.js | 1 - deps/v8/test/mjsunit/regress/regress-1419.js | 10 +- deps/v8/test/mjsunit/regress/regress-1586.js | 6 +- .../v8/test/mjsunit/regress/regress-166553.js | 2 +- deps/v8/test/mjsunit/regress/regress-2318.js | 3 +- deps/v8/test/mjsunit/regress/regress-2593.js | 2 +- deps/v8/test/mjsunit/regress/regress-2653.js | 2 +- .../v8/test/mjsunit/regress/regress-325676.js | 1 - .../v8/test/mjsunit/regress/regress-360733.js | 2 +- .../v8/test/mjsunit/regress/regress-370384.js | 2 +- deps/v8/test/mjsunit/regress/regress-3718.js | 21 + deps/v8/test/mjsunit/regress/regress-3960.js | 2 +- deps/v8/test/mjsunit/regress/regress-4121.js | 3 + deps/v8/test/mjsunit/regress/regress-4169.js | 9 + .../test/mjsunit/regress/regress-417709a.js | 2 +- deps/v8/test/mjsunit/regress/regress-4214.js | 6 + .../v8/test/mjsunit/regress/regress-4255-1.js | 26 + .../v8/test/mjsunit/regress/regress-4255-2.js | 24 + .../v8/test/mjsunit/regress/regress-4255-3.js | 24 + .../v8/test/mjsunit/regress/regress-4255-4.js | 24 + .../v8/test/mjsunit/regress/regress-436896.js | 2 +- .../v8/test/mjsunit/regress/regress-479528.js | 13 + .../v8/test/mjsunit/regress/regress-487981.js | 22 + .../v8/test/mjsunit/regress/regress-489151.js | 12 + .../v8/test/mjsunit/regress/regress-491481.js | 15 + .../v8/test/mjsunit/regress/regress-499790.js | 14 + .../v8/test/mjsunit/regress/regress-500173.js | 12 + .../v8/test/mjsunit/regress/regress-500176.js | 13 + .../v8/test/mjsunit/regress/regress-500831.js | 94 + .../v8/test/mjsunit/regress/regress-500980.js | 7 + deps/v8/test/mjsunit/regress/regress-581.js | 6 +- deps/v8/test/mjsunit/regress/regress-747.js | 2 +- deps/v8/test/mjsunit/regress/regress-78270.js | 2 - .../mjsunit/regress/regress-arguments-gc.js | 2 +- .../regress-assignment-in-test-context.js | 3 +- .../mjsunit/regress/regress-binop-nosse2.js | 167 - .../mjsunit/regress/regress-crbug-107996.js | 1 - .../mjsunit/regress/regress-crbug-171715.js | 1 - .../mjsunit/regress/regress-crbug-217858.js | 2 +- .../mjsunit/regress/regress-crbug-222893.js | 1 - .../mjsunit/regress/regress-crbug-424142.js | 3 + .../mjsunit/regress/regress-crbug-450960.js | 8 +- .../mjsunit/regress/regress-crbug-467180.js | 41 + .../mjsunit/regress/regress-crbug-471659.js | 22 + .../mjsunit/regress/regress-crbug-474297.js | 5 + .../mjsunit/regress/regress-crbug-480819.js | 2 +- .../mjsunit/regress/regress-crbug-481896.js | 56 + .../mjsunit/regress/regress-crbug-482998.js | 23 + .../mjsunit/regress/regress-crbug-487105.js | 9 + .../mjsunit/regress/regress-crbug-487289.js | 20 + .../mjsunit/regress/regress-crbug-487608.js | 22 + .../mjsunit/regress/regress-crbug-489293.js | 16 + .../mjsunit/regress/regress-crbug-489597.js | 12 + .../regress/regress-crbug-489597.js-script | 5 + .../mjsunit/regress/regress-crbug-490680.js | 18 + .../mjsunit/regress/regress-crbug-491062.js | 22 + .../mjsunit/regress/regress-crbug-491943.js | 25 + .../mjsunit/regress/regress-crbug-492526.js | 7 + .../mjsunit/regress/regress-crbug-493284.js | 10 + .../mjsunit/regress/regress-crbug-493290.js | 9 + .../mjsunit/regress/regress-crbug-493568.js | 12 + .../mjsunit/regress/regress-crbug-493779.js | 11 + .../mjsunit/regress/regress-crbug-498022.js | 15 + .../mjsunit/regress/regress-crbug-498142.js | 8 + .../mjsunit/regress/regress-crbug-498811.js | 9 + .../mjsunit/regress/regress-crbug-500435.js | 22 + .../mjsunit/regress/regress-crbug-500497.js | 36 + .../mjsunit/regress/regress-crbug-500824.js | 23 + .../mjsunit/regress/regress-crbug-501711.js | 14 + .../mjsunit/regress/regress-crbug-501808.js | 6 + .../mjsunit/regress/regress-crbug-501809.js | 9 + .../mjsunit/regress/regress-crbug-502930.js | 27 + .../mjsunit/regress/regress-crbug-503578.js | 14 + .../mjsunit/regress/regress-crbug-503698.js | 9 + .../mjsunit/regress/regress-crbug-503968.js | 13 + .../mjsunit/regress/regress-crbug-503991.js | 9 + .../mjsunit/regress/regress-crbug-504136.js | 9 + .../mjsunit/regress/regress-crbug-504727.js | 9 + .../mjsunit/regress/regress-crbug-504729.js | 9 + .../mjsunit/regress/regress-crbug-504787.js | 15 + .../mjsunit/regress/regress-crbug-505007-1.js | 14 + .../mjsunit/regress/regress-crbug-505007-2.js | 15 + .../mjsunit/regress/regress-crbug-505354.js | 14 + .../mjsunit/regress/regress-crbug-505370.js | 22 + .../mjsunit/regress/regress-crbug-505778.js | 8 + .../regress-debug-code-recompilation.js | 3 + .../regress-debug-deopt-while-recompile.js | 1 - .../mjsunit/regress/regress-eval-context.js | 20 + .../regress-existing-shared-function-info.js | 18 + .../regress/regress-opt-after-debug-deopt.js | 1 - .../regress-prepare-break-while-recompile.js | 2 + .../regress/regress-regexp-codeflush.js | 2 +- .../regress/regress-splice-large-index.js | 1 + deps/v8/test/mjsunit/regress/regress-x87.js | 2 +- .../mjsunit/regress/string-set-char-deopt.js | 2 +- deps/v8/test/mjsunit/samevalue.js | 2 +- deps/v8/test/mjsunit/strict-mode.js | 2 - deps/v8/test/mjsunit/string-normalize.js | 11 + deps/v8/test/mjsunit/strong/classes.js | 3 +- .../mjsunit/strong/declaration-after-use.js | 14 +- deps/v8/test/mjsunit/strong/function-arity.js | 355 ++ deps/v8/test/mjsunit/strong/functions.js | 4 +- .../strong/implicit-conversions-constants.js | 203 + .../strong/implicit-conversions-count.js | 168 + .../strong/implicit-conversions-inlining.js | 231 +- .../mjsunit/strong/implicit-conversions.js | 214 +- deps/v8/test/mjsunit/strong/literals.js | 352 ++ deps/v8/test/mjsunit/strong/load-builtins.js | 42 + .../load-element-mutate-backing-store.js | 239 + deps/v8/test/mjsunit/strong/load-element.js | 267 + .../load-property-mutate-backing-store.js | 174 + deps/v8/test/mjsunit/strong/load-property.js | 203 + deps/v8/test/mjsunit/strong/object-delete.js | 255 + .../mjsunit/strong/object-freeze-property.js | 75 + .../mjsunit/strong/object-set-prototype.js | 83 + deps/v8/test/mjsunit/strong/super.js | 62 + deps/v8/test/mjsunit/testcfg.py | 3 +- .../mjsunit/third_party/object-keys/LICENSE | 30 + .../{ => object-keys}/object-keys.js | 0 .../mjsunit/third_party/regexp-pcre/LICENSE | 68 + .../{ => regexp-pcre}/regexp-pcre.js | 0 deps/v8/test/mjsunit/this-dynamic-lookup.js | 10 + .../mjsunit/unbox-double-field-indexed.js | 23 + deps/v8/test/mjsunit/unbox-double-field.js | 22 + .../test/mjsunit/unbox-smi-field-indexed.js | 23 + deps/v8/test/mjsunit/unbox-smi-field.js | 22 + deps/v8/test/mjsunit/undetectable-compare.js | 96 + deps/v8/test/mjsunit/undetectable.js | 87 + deps/v8/test/mjsunit/uri.js | 10 + deps/v8/test/mozilla/mozilla.status | 1 + deps/v8/test/simdjs/SimdJs.json | 315 ++ deps/v8/test/simdjs/generate.py | 61 + deps/v8/test/simdjs/harness-adapt.js | 29 + deps/v8/test/simdjs/harness-finish.js | 26 + deps/v8/test/simdjs/simdjs.status | 26 + deps/v8/test/simdjs/testcfg.py | 101 + deps/v8/test/test262-es6/README | 4 +- deps/v8/test/test262-es6/test262-es6.status | 1064 ++-- deps/v8/test/test262-es6/testcfg.py | 34 +- deps/v8/test/test262/test262.status | 1 + deps/v8/test/unittests/base/bits-unittest.cc | 19 + .../instruction-selector-arm64-unittest.cc | 379 +- .../common-operator-reducer-unittest.cc | 342 +- .../compiler/common-operator-unittest.cc | 52 +- .../compiler/control-equivalence-unittest.cc | 6 +- .../control-flow-optimizer-unittest.cc | 20 +- .../compiler/control-reducer-unittest.cc | 326 -- .../dead-code-elimination-unittest.cc | 375 ++ .../compiler/graph-reducer-unittest.cc | 165 +- .../compiler/graph-reducer-unittest.h | 1 + .../compiler/graph-trimmer-unittest.cc | 85 + .../test/unittests/compiler/graph-unittest.cc | 19 +- .../test/unittests/compiler/graph-unittest.h | 2 + .../compiler/instruction-selector-unittest.cc | 107 +- .../compiler/instruction-selector-unittest.h | 21 +- .../compiler/instruction-sequence-unittest.cc | 4 +- .../compiler/js-builtin-reducer-unittest.cc | 34 +- .../js-intrinsic-lowering-unittest.cc | 71 +- .../compiler/js-operator-unittest.cc | 9 +- .../compiler/js-type-feedback-unittest.cc | 389 +- .../compiler/js-typed-lowering-unittest.cc | 306 +- .../compiler/liveness-analyzer-unittest.cc | 10 +- .../compiler/load-elimination-unittest.cc | 4 +- .../compiler/loop-peeling-unittest.cc | 3 +- .../compiler/machine-operator-unittest.cc | 237 +- .../compiler/node-properties-unittest.cc | 114 +- .../unittests/compiler/node-test-utils.cc | 194 +- .../test/unittests/compiler/node-test-utils.h | 18 +- .../test/unittests/compiler/node-unittest.cc | 92 +- .../compiler/raw-machine-assembler.cc | 81 +- .../compiler/raw-machine-assembler.h | 46 +- .../unittests/compiler/scheduler-unittest.cc | 1382 +---- .../compiler/simplified-operator-unittest.cc | 1 - .../tail-call-optimization-unittest.cc | 22 +- deps/v8/test/unittests/counters-unittest.cc | 28 +- .../heap/gc-idle-time-handler-unittest.cc | 52 +- deps/v8/test/unittests/heap/heap-unittest.cc | 48 + .../libplatform/default-platform-unittest.cc | 72 + deps/v8/test/unittests/unittests.gyp | 6 +- .../webkit/cyclic-prototypes-expected.txt | 2 +- .../Object-getOwnPropertyNames-expected.txt | 6 +- .../fast/js/Object-getOwnPropertyNames.js | 6 +- .../webkit/fast/js/arguments-expected.txt | 2 +- ...ve-property-access-edge-cases-expected.txt | 6 +- deps/v8/test/webkit/webkit.status | 4 +- deps/v8/testing/commit_queue/config.json | 89 - deps/v8/tools/blink_tests/TestExpectations | 13 +- deps/v8/tools/gc-nvp-to-csv.py | 30 + deps/v8/tools/gc-nvp-trace-processor.py | 40 +- deps/v8/tools/gc_nvp_common.py | 32 + deps/v8/tools/gdb-v8-support.py | 31 + deps/v8/tools/gdbinit | 2 +- deps/v8/tools/grokdump.py | 154 +- deps/v8/tools/gyp/v8.gyp | 53 +- deps/v8/tools/js2c.py | 2 +- deps/v8/tools/jsmin.py | 2 +- deps/v8/tools/parser-shell.cc | 5 +- deps/v8/tools/presubmit.py | 8 +- deps/v8/tools/release/check_clusterfuzz.py | 36 + deps/v8/tools/release/chromium_roll.py | 10 +- deps/v8/tools/release/test_scripts.py | 2 +- deps/v8/tools/run-deopt-fuzzer.py | 1 + deps/v8/tools/run-tests.py | 82 +- deps/v8/tools/run_perf.py | 50 +- deps/v8/tools/testrunner/local/commands.py | 119 +- deps/v8/tools/testrunner/local/execution.py | 69 +- deps/v8/tools/testrunner/local/progress.py | 53 +- deps/v8/tools/testrunner/local/statusfile.py | 3 +- deps/v8/tools/testrunner/local/testsuite.py | 2 +- .../testrunner/network/network_execution.py | 4 +- deps/v8/tools/testrunner/objects/testcase.py | 2 +- deps/v8/tools/v8heapconst.py | 340 +- deps/v8/tools/verify_source_deps.py | 106 + lib/module.js | 4 + src/node_contextify.cc | 6 + 1238 files changed, 81931 insertions(+), 41204 deletions(-) delete mode 100644 deps/v8/build/android.gypi create mode 100644 deps/v8/infra/OWNERS create mode 100644 deps/v8/infra/README.md rename deps/v8/{testing/commit_queue => infra/config}/OWNERS (100%) create mode 100644 deps/v8/infra/config/cq.cfg create mode 100644 deps/v8/infra/project-config/README.md create mode 100644 deps/v8/infra/project-config/cr-buildbucket.cfg create mode 100644 deps/v8/samples/hello-world.cc create mode 100644 deps/v8/src/ast-literal-reindexer.cc create mode 100644 deps/v8/src/ast-literal-reindexer.h create mode 100644 deps/v8/src/compiler/coalesced-live-ranges.cc create mode 100644 deps/v8/src/compiler/coalesced-live-ranges.h delete mode 100644 deps/v8/src/compiler/control-reducer.cc delete mode 100644 deps/v8/src/compiler/control-reducer.h create mode 100644 deps/v8/src/compiler/dead-code-elimination.cc create mode 100644 deps/v8/src/compiler/dead-code-elimination.h create mode 100644 deps/v8/src/compiler/graph-trimmer.cc create mode 100644 deps/v8/src/compiler/graph-trimmer.h create mode 100644 deps/v8/src/compiler/greedy-allocator.cc create mode 100644 deps/v8/src/compiler/greedy-allocator.h create mode 100644 deps/v8/src/compiler/x87/OWNERS create mode 100644 deps/v8/src/compiler/x87/code-generator-x87.cc create mode 100644 deps/v8/src/compiler/x87/instruction-codes-x87.h create mode 100644 deps/v8/src/compiler/x87/instruction-selector-x87.cc create mode 100644 deps/v8/src/compiler/x87/linkage-x87.cc create mode 100644 deps/v8/src/expression-classifier.h create mode 100644 deps/v8/src/harmony-atomics.js create mode 100644 deps/v8/src/harmony-sharedarraybuffer.js create mode 100644 deps/v8/src/iterator-prototype.js create mode 100644 deps/v8/src/pattern-rewriter.cc delete mode 100644 deps/v8/src/perf-jit.cc delete mode 100644 deps/v8/src/perf-jit.h create mode 100644 deps/v8/src/prologue.js create mode 100644 deps/v8/src/runtime/runtime-atomics.cc create mode 100644 deps/v8/src/runtime/runtime-forin.cc delete mode 100644 deps/v8/src/third_party/kernel/tools/perf/util/jitdump.h create mode 100644 deps/v8/src/third_party/valgrind/LICENSE create mode 100644 deps/v8/src/third_party/vtune/LICENSE delete mode 100644 deps/v8/test/cctest/compiler/instruction-selector-tester.h delete mode 100644 deps/v8/test/cctest/compiler/test-codegen-deopt.cc delete mode 100644 deps/v8/test/cctest/compiler/test-control-reducer.cc create mode 100644 deps/v8/test/cctest/test-extra.js create mode 100644 deps/v8/test/js-perf-test/Exceptions/run.js create mode 100644 deps/v8/test/js-perf-test/Exceptions/try-catch.js create mode 100644 deps/v8/test/js-perf-test/Scope/run.js create mode 100644 deps/v8/test/js-perf-test/Scope/with.js create mode 100644 deps/v8/test/message/arrow-bare-rest-param.js create mode 100644 deps/v8/test/message/arrow-bare-rest-param.out create mode 100644 deps/v8/test/message/arrow-missing.js create mode 100644 deps/v8/test/message/arrow-missing.out create mode 100644 deps/v8/test/message/arrow-param-after-rest-2.js create mode 100644 deps/v8/test/message/arrow-param-after-rest-2.out create mode 100644 deps/v8/test/message/arrow-param-after-rest.js create mode 100644 deps/v8/test/message/arrow-param-after-rest.out create mode 100644 deps/v8/test/message/arrow-strict-eval-bare-parameter.js create mode 100644 deps/v8/test/message/arrow-strict-eval-bare-parameter.out create mode 100644 deps/v8/test/message/arrow-two-rest-params.js create mode 100644 deps/v8/test/message/arrow-two-rest-params.out create mode 100644 deps/v8/test/message/destructuring-modify-const.js create mode 100644 deps/v8/test/message/destructuring-modify-const.out create mode 100644 deps/v8/test/message/invalid-spread-2.js create mode 100644 deps/v8/test/message/invalid-spread-2.out create mode 100644 deps/v8/test/message/invalid-spread.js create mode 100644 deps/v8/test/message/invalid-spread.out create mode 100644 deps/v8/test/message/rest-param-class-setter-strict.js create mode 100644 deps/v8/test/message/rest-param-class-setter-strict.out create mode 100644 deps/v8/test/message/rest-param-object-setter-sloppy.js create mode 100644 deps/v8/test/message/rest-param-object-setter-sloppy.out create mode 100644 deps/v8/test/message/rest-param-object-setter-strict.js create mode 100644 deps/v8/test/message/rest-param-object-setter-strict.out create mode 100644 deps/v8/test/message/strong-object-freeze-prop.js create mode 100644 deps/v8/test/message/strong-object-freeze-prop.out create mode 100644 deps/v8/test/message/strong-object-set-proto.js create mode 100644 deps/v8/test/message/strong-object-set-proto.out create mode 100644 deps/v8/test/mjsunit/asm/atomics-add.js create mode 100644 deps/v8/test/mjsunit/asm/atomics-and.js create mode 100644 deps/v8/test/mjsunit/asm/atomics-compareexchange.js create mode 100644 deps/v8/test/mjsunit/asm/atomics-exchange.js create mode 100644 deps/v8/test/mjsunit/asm/atomics-load.js create mode 100644 deps/v8/test/mjsunit/asm/atomics-or.js create mode 100644 deps/v8/test/mjsunit/asm/atomics-store.js create mode 100644 deps/v8/test/mjsunit/asm/atomics-sub.js create mode 100644 deps/v8/test/mjsunit/asm/atomics-xor.js create mode 100644 deps/v8/test/mjsunit/call-counts.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-tonumber-compare.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-tonumber-shift.js create mode 100644 deps/v8/test/mjsunit/compiler/optimize_max.js create mode 100644 deps/v8/test/mjsunit/compiler/optimize_min.js create mode 100644 deps/v8/test/mjsunit/compiler/osr-array-len.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-4206.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-4207.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-491578.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-variable-liveness.js create mode 100644 deps/v8/test/mjsunit/compiler/stubs/floor-stub.js create mode 100644 deps/v8/test/mjsunit/compiler/try-binop.js create mode 100644 deps/v8/test/mjsunit/compiler/try-osr.js rename deps/v8/test/mjsunit/{regress/regress-1878.js => d8-worker-sharedarraybuffer.js} (59%) rename deps/v8/test/mjsunit/{regress/regress-parse-object-literal.js => d8-worker-spawn-worker.js} (79%) create mode 100644 deps/v8/test/mjsunit/d8-worker.js rename deps/v8/test/mjsunit/{harmony => es6}/class-property-name-eval-arguments.js (96%) rename deps/v8/test/mjsunit/{harmony => es6}/classes-experimental.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/classes-lazy-parsing.js (52%) rename deps/v8/test/mjsunit/{harmony => es6}/classes-maps.js (96%) rename deps/v8/test/mjsunit/{harmony => es6}/classes-subclass-arrays.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/classes.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/debug-step-into-class-extends.js (94%) rename deps/v8/test/mjsunit/{harmony => es6}/debug-step-into-constructor.js (97%) create mode 100644 deps/v8/test/mjsunit/es6/iterator-prototype.js rename deps/v8/test/mjsunit/{harmony => es6}/method-name-eval-arguments.js (93%) rename deps/v8/test/mjsunit/{harmony => es6}/object-literals-method.js (93%) rename deps/v8/test/mjsunit/{harmony => es6}/object-literals-property-shorthand.js (97%) create mode 100644 deps/v8/test/mjsunit/es6/promise-internal-setter.js rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-3750.js (88%) create mode 100644 deps/v8/test/mjsunit/es6/regress/regress-4097.js rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-455141.js (88%) create mode 100644 deps/v8/test/mjsunit/es6/regress/regress-cr493566.js rename deps/v8/test/mjsunit/{harmony => es6}/toMethod.js (97%) delete mode 100644 deps/v8/test/mjsunit/external-array-no-sse2.js create mode 100644 deps/v8/test/mjsunit/function-bind-name.js create mode 100644 deps/v8/test/mjsunit/get-caller-js-function-throws.js create mode 100644 deps/v8/test/mjsunit/get-caller-js-function.js create mode 100644 deps/v8/test/mjsunit/global-hash.js create mode 100644 deps/v8/test/mjsunit/handle-count-ast.js create mode 100644 deps/v8/test/mjsunit/handle-count-runtime-literals.js create mode 100644 deps/v8/test/mjsunit/harmony/arrow-functions-this.js create mode 100644 deps/v8/test/mjsunit/harmony/arrow-rest-params.js create mode 100644 deps/v8/test/mjsunit/harmony/atomics.js create mode 100644 deps/v8/test/mjsunit/harmony/computed-property-names-deopt.js create mode 100644 deps/v8/test/mjsunit/harmony/destructuring-parameters-literalcount-nolazy.js create mode 100644 deps/v8/test/mjsunit/harmony/destructuring-parameters-literalcount.js create mode 100644 deps/v8/test/mjsunit/harmony/destructuring.js create mode 100644 deps/v8/test/mjsunit/harmony/new-target.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-4160.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-arrow-duplicate-params.js create mode 100644 deps/v8/test/mjsunit/harmony/sharedarraybuffer.js create mode 100644 deps/v8/test/mjsunit/harmony/spread-array.js create mode 100644 deps/v8/test/mjsunit/harmony/spread-call-super-property.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarray-copywithin.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarray-fill.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarray-find.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarray-findindex.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarray-from.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarray-indexing.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarray-iteration.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarray-reduce.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarray-reverse.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarray-slice.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarray-sort.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarray-tostring.js create mode 100644 deps/v8/test/mjsunit/has-own-property-evaluation-order.js create mode 100644 deps/v8/test/mjsunit/json-replacer-number-wrapper-tostring.js create mode 100644 deps/v8/test/mjsunit/json-replacer-order.js delete mode 100644 deps/v8/test/mjsunit/own-symbols.js create mode 100644 deps/v8/test/mjsunit/regexp-sort.js create mode 100644 deps/v8/test/mjsunit/regress/regress-3718.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4169.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4214.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4255-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4255-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4255-3.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4255-4.js create mode 100644 deps/v8/test/mjsunit/regress/regress-479528.js create mode 100644 deps/v8/test/mjsunit/regress/regress-487981.js create mode 100644 deps/v8/test/mjsunit/regress/regress-489151.js create mode 100644 deps/v8/test/mjsunit/regress/regress-491481.js create mode 100644 deps/v8/test/mjsunit/regress/regress-499790.js create mode 100644 deps/v8/test/mjsunit/regress/regress-500173.js create mode 100644 deps/v8/test/mjsunit/regress/regress-500176.js create mode 100644 deps/v8/test/mjsunit/regress/regress-500831.js create mode 100644 deps/v8/test/mjsunit/regress/regress-500980.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-binop-nosse2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-467180.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-471659.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-481896.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-482998.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-487105.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-487289.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-487608.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-489293.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-489597.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-489597.js-script create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-490680.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-491062.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-491943.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-492526.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-493284.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-493290.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-493568.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-493779.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-498022.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-498142.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-498811.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-500435.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-500497.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-500824.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-501711.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-501808.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-501809.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-502930.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-503578.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-503698.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-503968.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-503991.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-504136.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-504727.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-504729.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-504787.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-505007-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-505007-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-505354.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-505370.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-505778.js create mode 100644 deps/v8/test/mjsunit/regress/regress-eval-context.js create mode 100644 deps/v8/test/mjsunit/regress/regress-existing-shared-function-info.js create mode 100644 deps/v8/test/mjsunit/string-normalize.js create mode 100644 deps/v8/test/mjsunit/strong/function-arity.js create mode 100644 deps/v8/test/mjsunit/strong/implicit-conversions-constants.js create mode 100644 deps/v8/test/mjsunit/strong/implicit-conversions-count.js create mode 100644 deps/v8/test/mjsunit/strong/literals.js create mode 100644 deps/v8/test/mjsunit/strong/load-builtins.js create mode 100644 deps/v8/test/mjsunit/strong/load-element-mutate-backing-store.js create mode 100644 deps/v8/test/mjsunit/strong/load-element.js create mode 100644 deps/v8/test/mjsunit/strong/load-property-mutate-backing-store.js create mode 100644 deps/v8/test/mjsunit/strong/load-property.js create mode 100644 deps/v8/test/mjsunit/strong/object-delete.js create mode 100644 deps/v8/test/mjsunit/strong/object-freeze-property.js create mode 100644 deps/v8/test/mjsunit/strong/object-set-prototype.js create mode 100644 deps/v8/test/mjsunit/strong/super.js create mode 100644 deps/v8/test/mjsunit/third_party/object-keys/LICENSE rename deps/v8/test/mjsunit/third_party/{ => object-keys}/object-keys.js (100%) create mode 100644 deps/v8/test/mjsunit/third_party/regexp-pcre/LICENSE rename deps/v8/test/mjsunit/third_party/{ => regexp-pcre}/regexp-pcre.js (100%) create mode 100644 deps/v8/test/mjsunit/this-dynamic-lookup.js create mode 100644 deps/v8/test/mjsunit/unbox-double-field-indexed.js create mode 100644 deps/v8/test/mjsunit/unbox-double-field.js create mode 100644 deps/v8/test/mjsunit/unbox-smi-field-indexed.js create mode 100644 deps/v8/test/mjsunit/unbox-smi-field.js create mode 100644 deps/v8/test/mjsunit/undetectable-compare.js create mode 100644 deps/v8/test/mjsunit/undetectable.js create mode 100644 deps/v8/test/simdjs/SimdJs.json create mode 100755 deps/v8/test/simdjs/generate.py create mode 100644 deps/v8/test/simdjs/harness-adapt.js create mode 100644 deps/v8/test/simdjs/harness-finish.js create mode 100644 deps/v8/test/simdjs/simdjs.status create mode 100644 deps/v8/test/simdjs/testcfg.py delete mode 100644 deps/v8/test/unittests/compiler/control-reducer-unittest.cc create mode 100644 deps/v8/test/unittests/compiler/dead-code-elimination-unittest.cc create mode 100644 deps/v8/test/unittests/compiler/graph-trimmer-unittest.cc rename deps/v8/{src => test/unittests}/compiler/raw-machine-assembler.cc (70%) rename deps/v8/{src => test/unittests}/compiler/raw-machine-assembler.h (90%) create mode 100644 deps/v8/test/unittests/heap/heap-unittest.cc delete mode 100644 deps/v8/testing/commit_queue/config.json create mode 100755 deps/v8/tools/gc-nvp-to-csv.py create mode 100644 deps/v8/tools/gc_nvp_common.py create mode 100755 deps/v8/tools/verify_source_deps.py diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index cc424333d31334..d0a859c12dacf9 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -60,6 +60,8 @@ shell_g /test/promises-aplus/promises-tests /test/promises-aplus/promises-tests.tar.gz /test/promises-aplus/sinon +/test/simdjs/ecmascript_simd* +/test/simdjs/data* /test/test262/data /test/test262/data.old /test/test262/tc39-test262-* diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index feaec2505e8359..5e8166c07230dd 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -52,7 +52,7 @@ config("internal_config") { include_dirs = [ "." ] - if (component_mode == "shared_library") { + if (is_component_build) { defines = [ "V8_SHARED", "BUILDING_V8_SHARED", @@ -202,8 +202,9 @@ action("js2c") { sources = [ "src/macros.py", - "src/messages.h", + "src/messages.h", "src/runtime.js", + "src/prologue.js", "src/v8natives.js", "src/symbol.js", "src/array.js", @@ -215,6 +216,7 @@ action("js2c") { "src/regexp.js", "src/arraybuffer.js", "src/typedarray.js", + "src/iterator-prototype.js", "src/generator.js", "src/object-observe.js", "src/collection.js", @@ -264,9 +266,10 @@ action("js2c_experimental") { sources = [ "src/macros.py", - "src/messages.h", + "src/messages.h", "src/proxy.js", "src/generator.js", + "src/harmony-atomics.js", "src/harmony-array.js", "src/harmony-array-includes.js", "src/harmony-typedarray.js", @@ -274,7 +277,8 @@ action("js2c_experimental") { "src/harmony-regexp.js", "src/harmony-reflect.js", "src/harmony-spread.js", - "src/harmony-object.js" + "src/harmony-object.js", + "src/harmony-sharedarraybuffer.js" ] outputs = [ @@ -474,9 +478,13 @@ source_set("v8_snapshot") { ":js2c", ":js2c_experimental", ":js2c_extras", - ":run_mksnapshot", ":v8_base", ] + public_deps = [ + # This should be public so downstream targets can declare the snapshot + # output file as their inputs. + ":run_mksnapshot", + ] sources = [ "$target_gen_dir/libraries.cc", @@ -502,9 +510,11 @@ if (v8_use_external_startup_data) { ":js2c", ":js2c_experimental", ":js2c_extras", - ":run_mksnapshot", ":v8_base", + ] + public_deps = [ ":natives_blob", + ":run_mksnapshot", ] sources = [ @@ -526,6 +536,14 @@ source_set("v8_base") { visibility = [ ":*" ] # Only targets in this file can depend on this. sources = [ + "include/v8-debug.h", + "include/v8-platform.h", + "include/v8-profiler.h", + "include/v8-testing.h", + "include/v8-util.h", + "include/v8-version.h", + "include/v8.h", + "include/v8config.h", "src/accessors.cc", "src/accessors.h", "src/allocation.cc", @@ -544,6 +562,8 @@ source_set("v8_base") { "src/assembler.h", "src/assert-scope.h", "src/assert-scope.cc", + "src/ast-literal-reindexer.cc", + "src/ast-literal-reindexer.h", "src/ast-numbering.cc", "src/ast-numbering.h", "src/ast-value-factory.cc", @@ -602,6 +622,8 @@ source_set("v8_base") { "src/compiler/basic-block-instrumentor.h", "src/compiler/change-lowering.cc", "src/compiler/change-lowering.h", + "src/compiler/coalesced-live-ranges.cc", + "src/compiler/coalesced-live-ranges.h", "src/compiler/code-generator-impl.h", "src/compiler/code-generator.cc", "src/compiler/code-generator.h", @@ -617,8 +639,8 @@ source_set("v8_base") { "src/compiler/control-equivalence.h", "src/compiler/control-flow-optimizer.cc", "src/compiler/control-flow-optimizer.h", - "src/compiler/control-reducer.cc", - "src/compiler/control-reducer.h", + "src/compiler/dead-code-elimination.cc", + "src/compiler/dead-code-elimination.h", "src/compiler/diamond.h", "src/compiler/frame.h", "src/compiler/frame-elider.cc", @@ -632,10 +654,14 @@ source_set("v8_base") { "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", "src/compiler/graph-visualizer.h", "src/compiler/graph.cc", "src/compiler/graph.h", + "src/compiler/greedy-allocator.cc", + "src/compiler/greedy-allocator.h", "src/compiler/instruction-codes.h", "src/compiler/instruction-selector-impl.h", "src/compiler/instruction-selector.cc", @@ -703,8 +729,6 @@ source_set("v8_base") { "src/compiler/pipeline.h", "src/compiler/pipeline-statistics.cc", "src/compiler/pipeline-statistics.h", - "src/compiler/raw-machine-assembler.cc", - "src/compiler/raw-machine-assembler.h", "src/compiler/register-allocator.cc", "src/compiler/register-allocator.h", "src/compiler/register-allocator-verifier.cc", @@ -774,6 +798,7 @@ source_set("v8_base") { "src/elements.h", "src/execution.cc", "src/execution.h", + "src/expression-classifier.h", "src/extensions/externalize-string-extension.cc", "src/extensions/externalize-string-extension.h", "src/extensions/free-buffer-extension.cc", @@ -958,12 +983,11 @@ source_set("v8_base") { "src/optimizing-compile-dispatcher.h", "src/ostreams.cc", "src/ostreams.h", + "src/pattern-rewriter.cc", "src/parser.cc", "src/parser.h", "src/pending-compilation-error-handler.cc", "src/pending-compilation-error-handler.h", - "src/perf-jit.cc", - "src/perf-jit.h", "src/preparse-data-format.h", "src/preparse-data.cc", "src/preparse-data.h", @@ -992,11 +1016,13 @@ source_set("v8_base") { "src/runtime-profiler.cc", "src/runtime-profiler.h", "src/runtime/runtime-array.cc", + "src/runtime/runtime-atomics.cc", "src/runtime/runtime-classes.cc", "src/runtime/runtime-collections.cc", "src/runtime/runtime-compiler.cc", "src/runtime/runtime-date.cc", "src/runtime/runtime-debug.cc", + "src/runtime/runtime-forin.cc", "src/runtime/runtime-function.cc", "src/runtime/runtime-generator.cc", "src/runtime/runtime-i18n.cc", @@ -1032,6 +1058,7 @@ source_set("v8_base") { "src/scopes.cc", "src/scopes.h", "src/signature.h", + "src/simulator.h", "src/small-pointer-list.h", "src/smart-pointers.h", "src/snapshot/natives.h", @@ -1040,6 +1067,8 @@ source_set("v8_base") { "src/snapshot/snapshot-common.cc", "src/snapshot/snapshot-source-sink.cc", "src/snapshot/snapshot-source-sink.h", + "src/splay-tree.h", + "src/splay-tree-inl.h", "src/snapshot/snapshot.h", "src/string-builder.cc", "src/string-builder.h", @@ -1089,6 +1118,8 @@ source_set("v8_base") { "src/vm-state.h", "src/zone.cc", "src/zone.h", + "src/zone-allocator.h", + "src/zone-containers.h", "src/third_party/fdlibm/fdlibm.cc", "src/third_party/fdlibm/fdlibm.h", ] @@ -1201,6 +1232,7 @@ source_set("v8_base") { "src/arm/regexp-macro-assembler-arm.cc", "src/arm/regexp-macro-assembler-arm.h", "src/arm/simulator-arm.cc", + "src/arm/simulator-arm.h", "src/compiler/arm/code-generator-arm.cc", "src/compiler/arm/instruction-codes-arm.h", "src/compiler/arm/instruction-selector-arm.cc", @@ -1295,6 +1327,7 @@ source_set("v8_base") { "src/mips/regexp-macro-assembler-mips.cc", "src/mips/regexp-macro-assembler-mips.h", "src/mips/simulator-mips.cc", + "src/mips/simulator-mips.h", "src/compiler/mips/code-generator-mips.cc", "src/compiler/mips/instruction-codes-mips.h", "src/compiler/mips/instruction-selector-mips.cc", @@ -1336,6 +1369,7 @@ source_set("v8_base") { "src/mips64/regexp-macro-assembler-mips64.cc", "src/mips64/regexp-macro-assembler-mips64.h", "src/mips64/simulator-mips64.cc", + "src/mips64/simulator-mips64.h", "src/ic/mips64/access-compiler-mips64.cc", "src/ic/mips64/handler-compiler-mips64.cc", "src/ic/mips64/ic-mips64.cc", @@ -1399,6 +1433,8 @@ source_set("v8_libbase") { "src/base/atomicops_internals_atomicword_compat.h", "src/base/atomicops_internals_mac.h", "src/base/atomicops_internals_mips_gcc.h", + "src/base/atomicops_internals_mips64_gcc.h", + "src/base/atomicops_internals_portable.h", "src/base/atomicops_internals_tsan.h", "src/base/atomicops_internals_x86_gcc.cc", "src/base/atomicops_internals_x86_gcc.h", @@ -1558,7 +1594,7 @@ if (current_toolchain == snapshot_toolchain) { # Public targets # -if (component_mode == "shared_library") { +if (is_component_build) { component("v8") { sources = [ "src/v8dll-main.cc", @@ -1567,11 +1603,17 @@ if (component_mode == "shared_library") { if (v8_use_snapshot && v8_use_external_startup_data) { deps = [ ":v8_base", + ] + public_deps = [ ":v8_external_snapshot", ] } else if (v8_use_snapshot) { deps = [ ":v8_base", + ] + # v8_snapshot should be public so downstream targets can declare the + # snapshot file as their input. + public_deps = [ ":v8_snapshot", ] } else { @@ -1607,6 +1649,8 @@ if (component_mode == "shared_library") { } else if (v8_use_snapshot) { deps = [ ":v8_base", + ] + public_deps = [ ":v8_snapshot", ] } else { @@ -1657,9 +1701,10 @@ if ((current_toolchain == host_toolchain && v8_toolset_for_d8 == "host") || sources += [ "src/d8-windows.cc" ] } - if (component_mode != "shared_library") { + if (!is_component_build) { sources += [ "src/d8-debug.cc", + "src/d8-debug.h", "$target_gen_dir/d8-js.cc", ] } diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index c665f1763eb431..9ebdad7d7e3635 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,615 @@ +2015-07-02: Version 4.5.92 + + Performance and stability improvements on all platforms. + + +2015-07-01: Version 4.5.91 + + Performance and stability improvements on all platforms. + + +2015-07-01: Version 4.5.90 + + Performance and stability improvements on all platforms. + + +2015-07-01: Version 4.5.89 + + Performance and stability improvements on all platforms. + + +2015-06-30: Version 4.5.88 + + Performance and stability improvements on all platforms. + + +2015-06-30: Version 4.5.87 + + Performance and stability improvements on all platforms. + + +2015-06-30: Version 4.5.86 + + Ensure mjsunit tests use dashes not underscores in flags directives + (Chromium issue 505228). + + Performance and stability improvements on all platforms. + + +2015-06-29: Version 4.5.85 + + Fix flag convention in handle count tests and comment (Chromium issue + 505228). + + Performance and stability improvements on all platforms. + + +2015-06-29: Version 4.5.84 + + Performance and stability improvements on all platforms. + + +2015-06-27: Version 4.5.83 + + Performance and stability improvements on all platforms. + + +2015-06-26: Version 4.5.82 + + Performance and stability improvements on all platforms. + + +2015-06-26: Version 4.5.81 + + Remove obsolete options in ScriptCompiler::CompileOptions (Chromium + issue 399580). + + Performance and stability improvements on all platforms. + + +2015-06-25: Version 4.5.80 + + Performance and stability improvements on all platforms. + + +2015-06-25: Version 4.5.79 + + Performance and stability improvements on all platforms. + + +2015-06-25: Version 4.5.78 + + Serializer: clear next link in weak cells (Chromium issue 503552). + + Performance and stability improvements on all platforms. + + +2015-06-24: Version 4.5.77 + + Performance and stability improvements on all platforms. + + +2015-06-24: Version 4.5.76 + + Performance and stability improvements on all platforms. + + +2015-06-24: Version 4.5.75 + + Date() should not depend on Date.prototype.toString (issue 4225). + + Performance and stability improvements on all platforms. + + +2015-06-23: Version 4.5.74 + + Expose Map/Set methods through the API (issue 3340). + + [turbofan] NaN is never truish (issue 4207). + + Performance and stability improvements on all platforms. + + +2015-06-23: Version 4.5.73 + + Re-ship Harmony Array/TypedArray methods (issue 3578). + + Performance and stability improvements on all platforms. + + +2015-06-23: Version 4.5.72 + + Performance and stability improvements on all platforms. + + +2015-06-23: Version 4.5.71 + + Performance and stability improvements on all platforms. + + +2015-06-20: Version 4.5.70 + + Ship Harmony Array/TypedArray methods (issue 3578). + + Performance and stability improvements on all platforms. + + +2015-06-20: Version 4.5.69 + + Ship arrow functions (issue 2700). + + Performance and stability improvements on all platforms. + + +2015-06-19: Version 4.5.68 + + Performance and stability improvements on all platforms. + + +2015-06-19: Version 4.5.67 + + Performance and stability improvements on all platforms. + + +2015-06-19: Version 4.5.66 + + Ship arrow functions (issue 2700). + + Performance and stability improvements on all platforms. + + +2015-06-18: Version 4.5.65 + + Performance and stability improvements on all platforms. + + +2015-06-18: Version 4.5.64 + + Performance and stability improvements on all platforms. + + +2015-06-18: Version 4.5.63 + + Performance and stability improvements on all platforms. + + +2015-06-17: Version 4.5.62 + + Hydrogen object literals: always initialize in-object properties + (Chromium issue 500497). + + Performance and stability improvements on all platforms. + + +2015-06-17: Version 4.5.61 + + Add %TypedArray% to proto chain (issue 4085). + + Performance and stability improvements on all platforms. + + +2015-06-17: Version 4.5.60 + + Performance and stability improvements on all platforms. + + +2015-06-17: Version 4.5.59 + + [crankshaft] Fix wrong bailout points in for-in loop body (Chromium + issue 500435). + + Performance and stability improvements on all platforms. + + +2015-06-16: Version 4.5.58 + + Performance and stability improvements on all platforms. + + +2015-06-16: Version 4.5.57 + + Inline code generation for %_IsTypedArray (issue 4085). + + Allow TypedArrays to be initialized with iterables (issue 4090). + + Performance and stability improvements on all platforms. + + +2015-06-15: Version 4.5.56 + + Performance and stability improvements on all platforms. + + +2015-06-15: Version 4.5.55 + + Performance and stability improvements on all platforms. + + +2015-06-14: Version 4.5.54 + + Performance and stability improvements on all platforms. + + +2015-06-13: Version 4.5.53 + + Performance and stability improvements on all platforms. + + +2015-06-12: Version 4.5.52 + + Map::TryUpdate() must be in sync with Map::Update() (issue 4173). + + Add ToObject call in Array.prototype.sort (issue 4125). + + In Array.of and Array.from, fall back to DefineOwnProperty (issue 4168). + + Performance and stability improvements on all platforms. + + +2015-06-12: Version 4.5.51 + + Performance and stability improvements on all platforms. + + +2015-06-11: Version 4.5.50 + + Performance and stability improvements on all platforms. + + +2015-06-11: Version 4.5.49 + + Performance and stability improvements on all platforms. + + +2015-06-11: Version 4.5.48 + + Support rest parameters in arrow functions (issue 2700). + + Performance and stability improvements on all platforms. + + +2015-06-10: Version 4.5.47 + + Implement %TypedArray%.prototype.slice (issue 3578). + + Performance and stability improvements on all platforms. + + +2015-06-09: Version 4.5.46 + + Stage ES6 arrow functions (issue 2700). + + Performance and stability improvements on all platforms. + + +2015-06-09: Version 4.5.45 + + Performance and stability improvements on all platforms. + + +2015-06-09: Version 4.5.44 + + Performance and stability improvements on all platforms. + + +2015-06-08: Version 4.5.43 + + [for-in] Make ForInNext and ForInFilter deal properly with exceptions + (Chromium issue 496331). + + Performance and stability improvements on all platforms. + + +2015-06-08: Version 4.5.42 + + Performance and stability improvements on all platforms. + + +2015-06-06: Version 4.5.41 + + Performance and stability improvements on all platforms. + + +2015-06-05: Version 4.5.40 + + Performance and stability improvements on all platforms. + + +2015-06-05: Version 4.5.39 + + Stage ES6 Array and TypedArray methods (issue 3578). + + Performance and stability improvements on all platforms. + + +2015-06-05: Version 4.5.38 + + Implement %TypedArray%.prototype.{reduce,reduceRight} (issue 3578). + + Add support for Embedded Constant Pools for PPC and Arm (Chromium issue + 478811). + + Performance and stability improvements on all platforms. + + +2015-06-04: Version 4.5.37 + + Performance and stability improvements on all platforms. + + +2015-06-04: Version 4.5.36 + + Performance and stability improvements on all platforms. + + +2015-06-04: Version 4.5.35 + + Flatten the Arrays returned and consumed by the v8::Map API (Chromium + issue 478263). + + Performance and stability improvements on all platforms. + + +2015-06-03: Version 4.5.34 + + Also allocate small typed arrays on heap when initialized from an array- + like (issue 3996). + + Implement %TypedArray%.prototype.{reduce,reduceRight} (issue 3578). + + Performance and stability improvements on all platforms. + + +2015-06-03: Version 4.5.33 + + Add support for Embedded Constant Pools for PPC and Arm (Chromium issue + 478811). + + Implement %TypedArray%.prototype.{toString,toLocaleString,join} (issue + 3578). + + Performance and stability improvements on all platforms. + + +2015-06-03: Version 4.5.32 + + Performance and stability improvements on all platforms. + + +2015-06-02: Version 4.5.31 + + Performance and stability improvements on all platforms. + + +2015-06-02: Version 4.5.30 + + Performance and stability improvements on all platforms. + + +2015-06-01: Version 4.5.29 + + Reland "Re-enable on-heap typed array allocation" (issue 3996). + + Performance and stability improvements on all platforms. + + +2015-06-01: Version 4.5.28 + + Re-enable on-heap typed array allocation (issue 3996). + + Also expose DefineOwnProperty (Chromium issue 475206). + + Performance and stability improvements on all platforms. + + +2015-06-01: Version 4.5.27 + + Performance and stability improvements on all platforms. + + +2015-05-31: Version 4.5.26 + + Performance and stability improvements on all platforms. + + +2015-05-30: Version 4.5.25 + + Performance and stability improvements on all platforms. + + +2015-05-29: Version 4.5.24 + + Debugger: consider try-finally scopes not catching wrt debug events + (Chromium issue 492522). + + Performance and stability improvements on all platforms. + + +2015-05-29: Version 4.5.23 + + Performance and stability improvements on all platforms. + + +2015-05-29: Version 4.5.22 + + Do not eagerly convert exception to string when creating a message + object (Chromium issue 490680). + + Performance and stability improvements on all platforms. + + +2015-05-28: Version 4.5.21 + + Performance and stability improvements on all platforms. + + +2015-05-28: Version 4.5.20 + + Introduce v8::Object::CreateDataProperty (Chromium issue 475206). + + Performance and stability improvements on all platforms. + + +2015-05-27: Version 4.5.19 + + Performance and stability improvements on all platforms. + + +2015-05-27: Version 4.5.18 + + Add {Map,Set}::FromArray to the API (issue 3340). + + Add {Map,Set}::AsArray to the API (issue 3340). + + Add basic API support for Map & Set (issue 3340). + + Performance and stability improvements on all platforms. + + +2015-05-26: Version 4.5.17 + + Correctly hook up materialized receiver into the evaluation context + chain (Chromium issue 491943). + + Implement bookmarks for ExternalStreamingStream (Chromium issue 470930). + + Performance and stability improvements on all platforms. + + +2015-05-26: Version 4.5.16 + + Performance and stability improvements on all platforms. + + +2015-05-26: Version 4.5.15 + + Performance and stability improvements on all platforms. + + +2015-05-23: Version 4.5.14 + + Performance and stability improvements on all platforms. + + +2015-05-22: Version 4.5.13 + + Remove v8::Private. + + Performance and stability improvements on all platforms. + + +2015-05-22: Version 4.5.12 + + Performance and stability improvements on all platforms. + + +2015-05-22: Version 4.5.11 + + Performance and stability improvements on all platforms. + + +2015-05-21: Version 4.5.10 + + Re-land %TypedArray%.prototype.{map,filter,some} (issue 3578). + + Performance and stability improvements on all platforms. + + +2015-05-21: Version 4.5.9 + + Performance and stability improvements on all platforms. + + +2015-05-20: Version 4.5.8 + + Performance and stability improvements on all platforms. + + +2015-05-20: Version 4.5.7 + + Implement %TypedArray%.{lastI,i}ndexOf (issue 3578). + + Implement %TypedArray%.prototype.sort (issue 3578). + + Implement %TypedArray%.reverse (issue 3578). + + Implement %TypedArray%.prototype.{map,filter,some,reduce,reduceRight} + (issue 3578). + + Fix has_pending_exception logic in API's Array::CloneElementAt (issue + 4103). + + Adding api to get last gc object statistics for chrome://tracing + (Chromium issue 476013). + + Fix harmless HGraph verification failure after hoisting inlined bounds + checks (Chromium issue 487608). + + Performance and stability improvements on all platforms. + + +2015-05-20: Version 4.5.6 + + Add TypedArray.from method (issue 3578). + + Performance and stability improvements on all platforms. + + +2015-05-19: Version 4.5.5 + + ARM64: Propagate notification about aborted compilation from + RegExpEngine to MacroAssembler (Chromium issue 489290). + + Performance and stability improvements on all platforms. + + +2015-05-18: Version 4.5.4 + + Performance and stability improvements on all platforms. + + +2015-05-18: Version 4.5.3 + + Performance and stability improvements on all platforms. + + +2015-05-17: Version 4.5.2 + + Performance and stability improvements on all platforms. + + +2015-05-16: Version 4.5.1 + + Test that TypedArray methods don't read length (issue 3578). + + Implement %TypedArray%.{fill,find,findIndex} (issue 3578). + + TypedArray.prototype.copyWithin method (issue 3578). + + Provide accessor for object internal properties that doesn't require + debugger to be active (Chromium issue 481845). + + Don't create debug context if debug listener is not set (Chromium issue + 482290). + + Performance and stability improvements on all platforms. + + +2015-05-13: Version 4.4.65 + + Deprecate Isolate::New. + + Factor out core of Array.forEach and .every, for use in TypedArrays + (issue 3578). + + Performance and stability improvements on all platforms. + + +2015-05-12: Version 4.4.64 + + Performance and stability improvements on all platforms. + + 2015-05-11: Version 4.4.63 Let Runtime_GrowArrayElements accept non-Smi numbers as |key| (Chromium diff --git a/deps/v8/DEPS b/deps/v8/DEPS index 711cc53b7e3574..2466cd74772eb7 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -8,23 +8,23 @@ vars = { deps = { "v8/build/gyp": - Var("git_url") + "/external/gyp.git" + "@" + "0bb67471bca068996e15b56738fa4824dfa19de0", + Var("git_url") + "/external/gyp.git" + "@" + "5122240c5e5c4d8da12c543d82b03d6089eb77c5", "v8/third_party/icu": - Var("git_url") + "/chromium/deps/icu.git" + "@" + "f8c0e585b0a046d83d72b5d37356cb50d5b2031a", + Var("git_url") + "/chromium/deps/icu.git" + "@" + "1b697da5c2c0112e2b70e7e75d3e3d985f464a8f", "v8/buildtools": - Var("git_url") + "/chromium/buildtools.git" + "@" + "b0ede9c89f9d5fbe5387d961ad4c0ec665b6c821", + Var("git_url") + "/chromium/buildtools.git" + "@" + "ecc8e253abac3b6186a97573871a084f4c0ca3ae", "v8/testing/gtest": - Var("git_url") + "/external/googletest.git" + "@" + "be1868139ffe0ccd0e8e3b37292b84c821d9c8ad", + Var("git_url") + "/external/googletest.git" + "@" + "23574bf2333f834ff665f894c97bef8a5b33a0a9", "v8/testing/gmock": Var("git_url") + "/external/googlemock.git" + "@" + "29763965ab52f24565299976b936d1265cb6a271", # from svn revision 501 "v8/tools/clang": - Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "5bab78c6ced45a71a8e095a09697ca80492e57e1", + Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "73ec8804ed395b0886d6edf82a9f33583f4a7902", } deps_os = { "android": { "v8/third_party/android_tools": - Var("git_url") + "/android_tools.git" + "@" + "4f723e2a5fa5b7b8a198072ac19b92344be2b271", + Var("git_url") + "/android_tools.git" + "@" + "21f4bcbd6cd927e4b4227cfde7d5f13486be1236", }, "win": { "v8/third_party/cygwin": diff --git a/deps/v8/LICENSE b/deps/v8/LICENSE index 2f5bce83697d0f..da779eebb27bcf 100644 --- a/deps/v8/LICENSE +++ b/deps/v8/LICENSE @@ -3,12 +3,12 @@ maintained libraries. The externally maintained libraries used by V8 are: - PCRE test suite, located in - test/mjsunit/third_party/regexp-pcre.js. This is based on the + test/mjsunit/third_party/regexp-pcre/regexp-pcre.js. This is based on the test suite from PCRE-7.3, which is copyrighted by the University of Cambridge and Google, Inc. The copyright notice and license are embedded in regexp-pcre.js. - - Layout tests, located in test/mjsunit/third_party. These are + - Layout tests, located in test/mjsunit/third_party/object-keys. These are based on layout tests from webkit.org which are copyrighted by Apple Computer, Inc. and released under a 3-clause BSD license. @@ -26,6 +26,9 @@ are: These libraries have their own licenses; we recommend you read them, as their terms may differ from the terms below. +Further license information can be found in LICENSE files located in +sub-directories. + Copyright 2014, the V8 project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff --git a/deps/v8/Makefile b/deps/v8/Makefile index db6cf3b7da534a..97612655a7b1ae 100644 --- a/deps/v8/Makefile +++ b/deps/v8/Makefile @@ -31,9 +31,7 @@ OUTDIR ?= out TESTJOBS ?= GYPFLAGS ?= TESTFLAGS ?= -ANDROID_NDK_ROOT ?= ANDROID_NDK_HOST_ARCH ?= -ANDROID_TOOLCHAIN ?= ANDROID_V8 ?= /data/local/tmp/v8 NACL_SDK_ROOT ?= @@ -145,10 +143,14 @@ ifeq ($(i18nsupport), off) GYPFLAGS += -Dv8_enable_i18n_support=0 TESTFLAGS += --noi18n endif -# deprecation_warnings=on +# deprecationwarnings=on ifeq ($(deprecationwarnings), on) GYPFLAGS += -Dv8_deprecation_warnings=1 endif +# imminentdeprecationwarnings=on +ifeq ($(imminentdeprecationwarnings), on) + GYPFLAGS += -Dv8_imminent_deprecation_warnings=1 +endif # asan=on ifeq ($(asan), on) GYPFLAGS += -Dasan=1 -Dclang=1 @@ -246,7 +248,7 @@ NACL_ARCHES = nacl_ia32 nacl_x64 GYPFILES = third_party/icu/icu.gypi third_party/icu/icu.gyp \ build/shim_headers.gypi build/features.gypi build/standalone.gypi \ build/toolchain.gypi build/all.gyp build/mac/asan.gyp \ - build/android.gypi test/cctest/cctest.gyp \ + test/cctest/cctest.gyp \ test/unittests/unittests.gyp tools/gyp/v8.gyp \ tools/parser-shell.gyp testing/gmock.gyp testing/gtest.gyp \ buildtools/third_party/libc++abi/libc++abi.gyp \ @@ -277,7 +279,6 @@ ENVFILE = $(OUTDIR)/environment $(ARCHES) $(MODES) $(BUILDS) $(CHECKS) $(addsuffix .clean,$(ARCHES)) \ $(addsuffix .check,$(MODES)) $(addsuffix .check,$(ARCHES)) \ $(ANDROID_ARCHES) $(ANDROID_BUILDS) $(ANDROID_CHECKS) \ - must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN \ $(NACL_ARCHES) $(NACL_BUILDS) $(NACL_CHECKS) \ must-set-NACL_SDK_ROOT @@ -311,8 +312,7 @@ native: $(OUTDIR)/Makefile.native $(ANDROID_ARCHES): $(addprefix $$@.,$(MODES)) -$(ANDROID_BUILDS): $(GYPFILES) $(ENVFILE) build/android.gypi \ - must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN Makefile.android +$(ANDROID_BUILDS): $(GYPFILES) $(ENVFILE) Makefile.android @$(MAKE) -f Makefile.android $@ \ ARCH="$(basename $@)" \ MODE="$(subst .,,$(suffix $@))" \ @@ -448,13 +448,6 @@ $(OUTDIR)/Makefile.native: $(GYPFILES) $(ENVFILE) build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ -Ibuild/standalone.gypi --depth=. -S.native $(GYPFLAGS) -must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN: -ifndef ANDROID_NDK_ROOT -ifndef ANDROID_TOOLCHAIN - $(error ANDROID_NDK_ROOT or ANDROID_TOOLCHAIN must be set)) -endif -endif - # Note that NACL_SDK_ROOT must be set to point to an appropriate # Native Client SDK before using this makefile. You can download # an SDK here: diff --git a/deps/v8/Makefile.android b/deps/v8/Makefile.android index f89fd21fda004e..c49cb85b9b6514 100644 --- a/deps/v8/Makefile.android +++ b/deps/v8/Makefile.android @@ -35,75 +35,28 @@ MODES = release debug ANDROID_BUILDS = $(foreach mode,$(MODES), \ $(addsuffix .$(mode),$(ANDROID_ARCHES))) -HOST_OS = $(shell uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/') -ANDROID_NDK_HOST_ARCH ?= $(shell uname -m | sed -e 's/i[3456]86/x86/') -ifeq ($(HOST_OS), linux) - TOOLCHAIN_DIR = linux-$(ANDROID_NDK_HOST_ARCH) -else ifeq ($(HOST_OS), mac) - TOOLCHAIN_DIR = darwin-$(ANDROID_NDK_HOST_ARCH) -else - $(error Host platform "${HOST_OS}" is not supported) -endif - ifeq ($(ARCH), android_arm) - DEFINES = target_arch=arm v8_target_arch=arm android_target_arch=arm android_target_platform=14 - DEFINES += arm_neon=0 arm_version=7 - TOOLCHAIN_ARCH = arm-linux-androideabi - TOOLCHAIN_PREFIX = $(TOOLCHAIN_ARCH) - TOOLCHAIN_VER = 4.8 + DEFINES = target_arch=arm v8_target_arch=arm else ifeq ($(ARCH), android_arm64) - DEFINES = target_arch=arm64 v8_target_arch=arm64 android_target_arch=arm64 android_target_platform=21 - TOOLCHAIN_ARCH = aarch64-linux-android - TOOLCHAIN_PREFIX = $(TOOLCHAIN_ARCH) - TOOLCHAIN_VER = 4.9 + DEFINES = target_arch=arm64 v8_target_arch=arm64 else ifeq ($(ARCH), android_mipsel) - DEFINES = target_arch=mipsel v8_target_arch=mipsel android_target_platform=14 - DEFINES += android_target_arch=mips mips_arch_variant=mips32r2 - TOOLCHAIN_ARCH = mipsel-linux-android - TOOLCHAIN_PREFIX = $(TOOLCHAIN_ARCH) - TOOLCHAIN_VER = 4.8 + DEFINES = target_arch=mipsel v8_target_arch=mipsel else ifeq ($(ARCH), android_ia32) - DEFINES = target_arch=ia32 v8_target_arch=ia32 android_target_arch=x86 android_target_platform=14 - TOOLCHAIN_ARCH = x86 - TOOLCHAIN_PREFIX = i686-linux-android - TOOLCHAIN_VER = 4.8 + DEFINES = target_arch=ia32 v8_target_arch=ia32 else ifeq ($(ARCH), android_x64) - DEFINES = target_arch=x64 v8_target_arch=x64 android_target_arch=x86_64 android_target_platform=21 - TOOLCHAIN_ARCH = x86_64 - TOOLCHAIN_PREFIX = x86_64-linux-android - TOOLCHAIN_VER = 4.9 + DEFINES = target_arch=x64 v8_target_arch=x64 else ifeq ($(ARCH), android_x87) - DEFINES = target_arch=x87 v8_target_arch=x87 android_target_arch=x86 android_target_platform=14 - TOOLCHAIN_ARCH = x86 - TOOLCHAIN_PREFIX = i686-linux-android - TOOLCHAIN_VER = 4.8 + DEFINES = target_arch=ia32 v8_target_arch=x87 else $(error Target architecture "${ARCH}" is not supported) endif -TOOLCHAIN_PATH = \ - ${ANDROID_NDK_ROOT}/toolchains/${TOOLCHAIN_ARCH}-${TOOLCHAIN_VER}/prebuilt -ANDROID_TOOLCHAIN ?= ${TOOLCHAIN_PATH}/${TOOLCHAIN_DIR} - -ifeq ($(wildcard $(ANDROID_TOOLCHAIN)),) - $(error Cannot find Android toolchain in "${ANDROID_TOOLCHAIN}". Please \ - check that ANDROID_NDK_ROOT and ANDROID_NDK_HOST_ARCH are set \ - correctly) -endif - -# For mksnapshot host generation. -DEFINES += host_os=${HOST_OS} +# Common flags. DEFINES += OS=android .SECONDEXPANSION: $(ANDROID_BUILDS): $(OUTDIR)/Makefile.$$@ @$(MAKE) -C "$(OUTDIR)" -f Makefile.$@ \ - CXX="$(ANDROID_TOOLCHAIN)/bin/${TOOLCHAIN_PREFIX}-g++" \ - AR="$(ANDROID_TOOLCHAIN)/bin/${TOOLCHAIN_PREFIX}-ar" \ - RANLIB="$(ANDROID_TOOLCHAIN)/bin/${TOOLCHAIN_PREFIX}-ranlib" \ - CC="$(ANDROID_TOOLCHAIN)/bin/${TOOLCHAIN_PREFIX}-gcc" \ - LD="$(ANDROID_TOOLCHAIN)/bin/${TOOLCHAIN_PREFIX}-ld" \ - LINK="$(ANDROID_TOOLCHAIN)/bin/${TOOLCHAIN_PREFIX}-g++" \ BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \ python -c "print raw_input().capitalize()") \ builddir="$(shell pwd)/$(OUTDIR)/$@" @@ -113,9 +66,7 @@ ANDROID_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(ANDROID_BUILDS)) $(ANDROID_MAKEFILES): GYP_GENERATORS=make-android \ GYP_DEFINES="${DEFINES}" \ - CC="${ANDROID_TOOLCHAIN}/bin/${TOOLCHAIN_PREFIX}-gcc" \ - CXX="${ANDROID_TOOLCHAIN}/bin/${TOOLCHAIN_PREFIX}-g++" \ PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/build:$(PYTHONPATH)" \ build/gyp/gyp --generator-output="${OUTDIR}" build/all.gyp \ - -Ibuild/standalone.gypi --depth=. -Ibuild/android.gypi \ + -Ibuild/standalone.gypi --depth=. \ -S$(suffix $(basename $@))$(suffix $@) ${GYPFLAGS} diff --git a/deps/v8/build/android.gypi b/deps/v8/build/android.gypi deleted file mode 100644 index 7bbf12eed6d99b..00000000000000 --- a/deps/v8/build/android.gypi +++ /dev/null @@ -1,266 +0,0 @@ -# Copyright 2012 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Definitions for building standalone V8 binaries to run on Android. -# This is mostly excerpted from: -# http://src.chromium.org/viewvc/chrome/trunk/src/build/common.gypi - -{ - 'variables': { - # Location of Android NDK. - 'variables': { - 'android_ndk_root%': ' GetDebugContext(); @@ -259,6 +260,14 @@ class V8_EXPORT Debug { * unexpectedly used. LiveEdit is enabled by default. */ static void SetLiveEditEnabled(Isolate* isolate, bool enable); + + /** + * Returns array of internal properties specific to the value type. Result has + * the following format: [, ,...,, ]. Result array + * will be allocated in the current context. + */ + static MaybeLocal GetInternalProperties(Isolate* isolate, + Local value); }; diff --git a/deps/v8/include/v8-platform.h b/deps/v8/include/v8-platform.h index 67fb384c99ba52..be9e5c0c6b46ed 100644 --- a/deps/v8/include/v8-platform.h +++ b/deps/v8/include/v8-platform.h @@ -56,6 +56,17 @@ class Platform { */ virtual void CallOnForegroundThread(Isolate* isolate, Task* task) = 0; + /** + * Schedules a task to be invoked on a foreground thread wrt a specific + * |isolate| after the given number of seconds |delay_in_seconds|. + * Tasks posted for the same isolate should be execute in order of + * scheduling. The definition of "foreground" is opaque to V8. + */ + virtual void CallDelayedOnForegroundThread(Isolate* isolate, Task* task, + double delay_in_seconds) { + // TODO(ulan): Make this function abstract after V8 roll in Chromium. + } + /** * Monotonically increasing time in seconds from an arbitrary fixed point in * the past. This function is expected to return at least diff --git a/deps/v8/include/v8-profiler.h b/deps/v8/include/v8-profiler.h index 82a14d66003001..d0375a79ec4e20 100644 --- a/deps/v8/include/v8-profiler.h +++ b/deps/v8/include/v8-profiler.h @@ -275,7 +275,8 @@ class V8_EXPORT HeapGraphNode { // snapshot items together. kConsString = 10, // Concatenated string. A pair of pointers to strings. kSlicedString = 11, // Sliced string. A fragment of another string. - kSymbol = 12 // A Symbol (ES6). + kSymbol = 12, // A Symbol (ES6). + kSimdValue = 13 // A SIMD value stored in the heap (Proposed ES7). }; /** Returns node type (see HeapGraphNode::Type). */ diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 2f2ea5533387d0..7ab7da1e8e2dd2 100644 --- a/deps/v8/include/v8-version.h +++ b/deps/v8/include/v8-version.h @@ -9,9 +9,9 @@ // NOTE these macros are used by some of the tool scripts and the build // system so their names cannot be changed without changing the scripts. #define V8_MAJOR_VERSION 4 -#define V8_MINOR_VERSION 4 -#define V8_BUILD_NUMBER 63 -#define V8_PATCH_LEVEL 12 +#define V8_MINOR_VERSION 5 +#define V8_BUILD_NUMBER 92 +#define V8_PATCH_LEVEL 0 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index 910279b52e6b29..fafd1681715f4a 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -94,6 +94,7 @@ class Primitive; class Promise; class RawOperationDescriptor; class Script; +class SharedArrayBuffer; class Signature; class StartupData; class StackFrame; @@ -102,7 +103,6 @@ class String; class StringObject; class Symbol; class SymbolObject; -class Private; class Uint32; class Utils; class Value; @@ -311,7 +311,6 @@ class Local { friend class String; friend class Object; friend class Context; - friend class Private; template friend class internal::CustomArguments; friend Local Undefined(Isolate* isolate); friend Local Null(Isolate* isolate); @@ -418,11 +417,11 @@ class WeakCallbackInfo { V8_INLINE void* GetInternalField(int index) const; V8_INLINE V8_DEPRECATE_SOON("use indexed version", - void* GetInternalField1()) const { + void* GetInternalField1() const) { return internal_fields_[0]; } V8_INLINE V8_DEPRECATE_SOON("use indexed version", - void* GetInternalField2()) const { + void* GetInternalField2() const) { return internal_fields_[1]; } @@ -835,8 +834,11 @@ class Global : public PersistentBase { typedef void MoveOnlyTypeForCPP03; private: + template + friend class ReturnValue; Global(Global&) = delete; void operator=(Global&) = delete; + V8_INLINE T* operator*() const { return this->val_; } }; @@ -972,6 +974,38 @@ class V8_EXPORT Data { }; +/** + * The optional attributes of ScriptOrigin. + */ +class ScriptOriginOptions { + public: + V8_INLINE ScriptOriginOptions(bool is_embedder_debug_script = false, + bool is_shared_cross_origin = false, + bool is_opaque = false) + : flags_((is_embedder_debug_script ? kIsEmbedderDebugScript : 0) | + (is_shared_cross_origin ? kIsSharedCrossOrigin : 0) | + (is_opaque ? kIsOpaque : 0)) {} + V8_INLINE ScriptOriginOptions(int flags) + : flags_(flags & + (kIsEmbedderDebugScript | kIsSharedCrossOrigin | kIsOpaque)) {} + bool IsEmbedderDebugScript() const { + return (flags_ & kIsEmbedderDebugScript) != 0; + } + bool IsSharedCrossOrigin() const { + return (flags_ & kIsSharedCrossOrigin) != 0; + } + bool IsOpaque() const { return (flags_ & kIsOpaque) != 0; } + int Flags() const { return flags_; } + + private: + enum { + kIsEmbedderDebugScript = 1, + kIsSharedCrossOrigin = 1 << 1, + kIsOpaque = 1 << 2 + }; + const int flags_; +}; + /** * The origin, within a file, of a script. */ @@ -984,31 +1018,23 @@ class ScriptOrigin { Handle resource_is_shared_cross_origin = Handle(), Handle script_id = Handle(), Handle resource_is_embedder_debug_script = Handle(), - Handle source_map_url = Handle()) - : resource_name_(resource_name), - resource_line_offset_(resource_line_offset), - resource_column_offset_(resource_column_offset), - resource_is_embedder_debug_script_(resource_is_embedder_debug_script), - resource_is_shared_cross_origin_(resource_is_shared_cross_origin), - script_id_(script_id), - source_map_url_(source_map_url) {} + Handle source_map_url = Handle(), + Handle resource_is_opaque = Handle()); V8_INLINE Handle ResourceName() const; V8_INLINE Handle ResourceLineOffset() const; V8_INLINE Handle ResourceColumnOffset() const; /** * Returns true for embedder's debugger scripts */ - V8_INLINE Handle ResourceIsEmbedderDebugScript() const; - V8_INLINE Handle ResourceIsSharedCrossOrigin() const; V8_INLINE Handle ScriptID() const; V8_INLINE Handle SourceMapUrl() const; + V8_INLINE ScriptOriginOptions Options() const { return options_; } private: Handle resource_name_; Handle resource_line_offset_; Handle resource_column_offset_; - Handle resource_is_embedder_debug_script_; - Handle resource_is_shared_cross_origin_; + ScriptOriginOptions options_; Handle script_id_; Handle source_map_url_; }; @@ -1160,8 +1186,7 @@ class V8_EXPORT ScriptCompiler { Handle resource_name; Handle resource_line_offset; Handle resource_column_offset; - Handle resource_is_embedder_debug_script; - Handle resource_is_shared_cross_origin; + ScriptOriginOptions resource_options; Handle source_map_url; // Cached data from previous compilation (if a kConsume*Cache flag is @@ -1174,7 +1199,7 @@ class V8_EXPORT ScriptCompiler { * For streaming incomplete script data to V8. The embedder should implement a * subclass of this class. */ - class ExternalSourceStream { + class V8_EXPORT ExternalSourceStream { public: virtual ~ExternalSourceStream() {} @@ -1196,6 +1221,23 @@ class V8_EXPORT ScriptCompiler { * V8 has parsed the data it received so far. */ virtual size_t GetMoreData(const uint8_t** src) = 0; + + /** + * V8 calls this method to set a 'bookmark' at the current position in + * the source stream, for the purpose of (maybe) later calling + * ResetToBookmark. If ResetToBookmark is called later, then subsequent + * calls to GetMoreData should return the same data as they did when + * SetBookmark was called earlier. + * + * The embedder may return 'false' to indicate it cannot provide this + * functionality. + */ + virtual bool SetBookmark(); + + /** + * V8 calls this to return to a previously set bookmark. + */ + virtual void ResetToBookmark(); }; @@ -1242,10 +1284,7 @@ class V8_EXPORT ScriptCompiler { kProduceParserCache, kConsumeParserCache, kProduceCodeCache, - kConsumeCodeCache, - - // Support the previous API for a transition period. - kProduceDataToCache + kConsumeCodeCache }; /** @@ -1390,7 +1429,7 @@ class V8_EXPORT Message { public: Local Get() const; - V8_DEPRECATE_SOON("Use maybe version", Local GetSourceLine()) const; + V8_DEPRECATE_SOON("Use maybe version", Local GetSourceLine() const); V8_WARN_UNUSED_RESULT MaybeLocal GetSourceLine( Local context) const; @@ -1416,7 +1455,7 @@ class V8_EXPORT Message { /** * Returns the number, 1-based, of the line where the error occurred. */ - V8_DEPRECATE_SOON("Use maybe version", int GetLineNumber()) const; + V8_DEPRECATE_SOON("Use maybe version", int GetLineNumber() const); V8_WARN_UNUSED_RESULT Maybe GetLineNumber(Local context) const; /** @@ -1435,14 +1474,14 @@ class V8_EXPORT Message { * Returns the index within the line of the first character where * the error occurred. */ - V8_DEPRECATE_SOON("Use maybe version", int GetStartColumn()) const; + V8_DEPRECATE_SOON("Use maybe version", int GetStartColumn() const); V8_WARN_UNUSED_RESULT Maybe GetStartColumn(Local context) const; /** * Returns the index within the line of the last character where * the error occurred. */ - V8_DEPRECATE_SOON("Use maybe version", int GetEndColumn()) const; + V8_DEPRECATE_SOON("Use maybe version", int GetEndColumn() const); V8_WARN_UNUSED_RESULT Maybe GetEndColumn(Local context) const; /** @@ -1450,6 +1489,7 @@ class V8_EXPORT Message { * this Message was generated to V8. */ bool IsSharedCrossOrigin() const; + bool IsOpaque() const; // TODO(1245381): Print to a string instead of on a FILE. static void PrintCurrentStackTrace(Isolate* isolate, FILE* out); @@ -1781,37 +1821,31 @@ class V8_EXPORT Value : public Data { /** * Returns true if this value is a Map. - * This is an experimental feature. */ bool IsMap() const; /** * Returns true if this value is a Set. - * This is an experimental feature. */ bool IsSet() const; /** * Returns true if this value is a Map Iterator. - * This is an experimental feature. */ bool IsMapIterator() const; /** * Returns true if this value is a Set Iterator. - * This is an experimental feature. */ bool IsSetIterator() const; /** * Returns true if this value is a WeakMap. - * This is an experimental feature. */ bool IsWeakMap() const; /** * Returns true if this value is a WeakSet. - * This is an experimental feature. */ bool IsWeakSet() const; @@ -1887,12 +1921,25 @@ class V8_EXPORT Value : public Data { */ bool IsFloat64Array() const; + /** + * Returns true if this value is a SIMD Float32x4. + * This is an experimental feature. + */ + bool IsFloat32x4() const; + /** * Returns true if this value is a DataView. * This is an experimental feature. */ bool IsDataView() const; + /** + * Returns true if this value is a SharedArrayBuffer. + * This is an experimental feature. + */ + bool IsSharedArrayBuffer() const; + + V8_WARN_UNUSED_RESULT MaybeLocal ToBoolean( Local context) const; V8_WARN_UNUSED_RESULT MaybeLocal ToNumber( @@ -1910,39 +1957,39 @@ class V8_EXPORT Value : public Data { V8_WARN_UNUSED_RESULT MaybeLocal ToInt32(Local context) const; V8_DEPRECATE_SOON("Use maybe version", - Local ToBoolean(Isolate* isolate)) const; + Local ToBoolean(Isolate* isolate) const); V8_DEPRECATE_SOON("Use maybe version", - Local ToNumber(Isolate* isolate)) const; + Local ToNumber(Isolate* isolate) const); V8_DEPRECATE_SOON("Use maybe version", - Local ToString(Isolate* isolate)) const; + Local ToString(Isolate* isolate) const); V8_DEPRECATE_SOON("Use maybe version", - Local ToDetailString(Isolate* isolate)) const; + Local ToDetailString(Isolate* isolate) const); V8_DEPRECATE_SOON("Use maybe version", - Local ToObject(Isolate* isolate)) const; + Local ToObject(Isolate* isolate) const); V8_DEPRECATE_SOON("Use maybe version", - Local ToInteger(Isolate* isolate)) const; + Local ToInteger(Isolate* isolate) const); V8_DEPRECATE_SOON("Use maybe version", - Local ToUint32(Isolate* isolate)) const; + Local ToUint32(Isolate* isolate) const); V8_DEPRECATE_SOON("Use maybe version", - Local ToInt32(Isolate* isolate)) const; + Local ToInt32(Isolate* isolate) const); inline V8_DEPRECATE_SOON("Use maybe version", - Local ToBoolean()) const; - inline V8_DEPRECATE_SOON("Use maybe version", Local ToNumber()) const; - inline V8_DEPRECATE_SOON("Use maybe version", Local ToString()) const; + Local ToBoolean() const); + inline V8_DEPRECATE_SOON("Use maybe version", Local ToNumber() const); + inline V8_DEPRECATE_SOON("Use maybe version", Local ToString() const); inline V8_DEPRECATE_SOON("Use maybe version", - Local ToDetailString()) const; - inline V8_DEPRECATE_SOON("Use maybe version", Local ToObject()) const; + Local ToDetailString() const); + inline V8_DEPRECATE_SOON("Use maybe version", Local ToObject() const); inline V8_DEPRECATE_SOON("Use maybe version", - Local ToInteger()) const; - inline V8_DEPRECATE_SOON("Use maybe version", Local ToUint32()) const; - inline V8_DEPRECATE_SOON("Use maybe version", Local ToInt32()) const; + Local ToInteger() const); + inline V8_DEPRECATE_SOON("Use maybe version", Local ToUint32() const); + inline V8_DEPRECATE_SOON("Use maybe version", Local ToInt32() const); /** * Attempts to convert a string to an array index. * Returns an empty handle if the conversion fails. */ - V8_DEPRECATE_SOON("Use maybe version", Local ToArrayIndex()) const; + V8_DEPRECATE_SOON("Use maybe version", Local ToArrayIndex() const); V8_WARN_UNUSED_RESULT MaybeLocal ToArrayIndex( Local context) const; @@ -1954,14 +2001,14 @@ class V8_EXPORT Value : public Data { Local context) const; V8_WARN_UNUSED_RESULT Maybe Int32Value(Local context) const; - V8_DEPRECATE_SOON("Use maybe version", bool BooleanValue()) const; - V8_DEPRECATE_SOON("Use maybe version", double NumberValue()) const; - V8_DEPRECATE_SOON("Use maybe version", int64_t IntegerValue()) const; - V8_DEPRECATE_SOON("Use maybe version", uint32_t Uint32Value()) const; - V8_DEPRECATE_SOON("Use maybe version", int32_t Int32Value()) const; + V8_DEPRECATE_SOON("Use maybe version", bool BooleanValue() const); + V8_DEPRECATE_SOON("Use maybe version", double NumberValue() const); + V8_DEPRECATE_SOON("Use maybe version", int64_t IntegerValue() const); + V8_DEPRECATE_SOON("Use maybe version", uint32_t Uint32Value() const); + V8_DEPRECATE_SOON("Use maybe version", int32_t Int32Value() const); /** JS == */ - V8_DEPRECATE_SOON("Use maybe version", bool Equals(Handle that)) const; + V8_DEPRECATE_SOON("Use maybe version", bool Equals(Handle that) const); V8_WARN_UNUSED_RESULT Maybe Equals(Local context, Handle that) const; bool StrictEquals(Handle that) const; @@ -2424,34 +2471,6 @@ class V8_EXPORT Symbol : public Name { }; -/** - * A private symbol - * - * This is an experimental feature. Use at your own risk. - */ -class V8_EXPORT Private : public Data { - public: - // 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. - 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". - static Local ForApi(Isolate *isolate, Local name); - - private: - Private(); -}; - - /** * A JavaScript number value (ECMA-262, 4.3.20) */ @@ -2571,6 +2590,30 @@ class V8_EXPORT Object : public Value { V8_WARN_UNUSED_RESULT Maybe Set(Local context, uint32_t index, Local value); + // Implements CreateDataProperty (ECMA-262, 7.3.4). + // + // Defines a configurable, writable, enumerable property with the given value + // on the object unless the property already exists and is not configurable + // or the object is not extensible. + // + // Returns true on success. + V8_WARN_UNUSED_RESULT Maybe CreateDataProperty(Local context, + Local key, + Local value); + V8_WARN_UNUSED_RESULT Maybe CreateDataProperty(Local context, + uint32_t index, + Local value); + + // Implements DefineOwnProperty. + // + // In general, CreateDataProperty will be faster, however, does not allow + // for specifying attributes. + // + // Returns true on success. + V8_WARN_UNUSED_RESULT Maybe DefineOwnProperty( + Local context, Local key, Local value, + PropertyAttribute attributes = None); + // Sets an own property on this object bypassing interceptors and // overriding accessors or read-only properties. // @@ -2579,12 +2622,13 @@ class V8_EXPORT Object : public Value { // will only be returned if the interceptor doesn't return a value. // // Note also that this only works for named properties. - V8_DEPRECATE_SOON("Use maybe version", + V8_DEPRECATE_SOON("Use CreateDataProperty", bool ForceSet(Handle key, Handle value, PropertyAttribute attribs = None)); - // TODO(dcarney): mark V8_WARN_UNUSED_RESULT - Maybe ForceSet(Local context, Local key, - Local value, PropertyAttribute attribs = None); + V8_DEPRECATE_SOON("Use CreateDataProperty", + Maybe ForceSet(Local context, + Local key, Local value, + PropertyAttribute attribs = None)); V8_DEPRECATE_SOON("Use maybe version", Local Get(Handle key)); V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context, @@ -2655,18 +2699,6 @@ class V8_EXPORT Object : public Value { PropertyAttribute attribute = None, AccessControl settings = DEFAULT); - /** - * Functionality for private properties. - * This is an experimental feature, use at your own risk. - * Note: Private properties are inherited. Do not rely on this, since it may - * change. - */ - // TODO(dcarney): convert these or remove? - bool HasPrivate(Handle key); - bool SetPrivate(Handle key, Handle value); - bool DeletePrivate(Handle key); - Local GetPrivate(Handle key); - /** * Returns an array containing the names of the enumerable properties * of this object, including properties from prototype objects. The @@ -2941,6 +2973,89 @@ class V8_EXPORT Array : public Object { }; +/** + * An instance of the built-in Map constructor (ECMA-262, 6th Edition, 23.1.1). + */ +class V8_EXPORT Map : public Object { + public: + size_t Size() const; + void Clear(); + V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context, + Local key); + V8_WARN_UNUSED_RESULT MaybeLocal Set(Local context, + Local key, + Local value); + V8_WARN_UNUSED_RESULT Maybe Has(Local context, + Local key); + V8_WARN_UNUSED_RESULT Maybe Delete(Local context, + Local key); + + /** + * Returns an array of length Size() * 2, where index N is the Nth key and + * index N + 1 is the Nth value. + */ + Local AsArray() const; + + /** + * Creates a new empty Map. + */ + static Local New(Isolate* isolate); + + /** + * Creates a new Map containing the elements of array, which must be formatted + * in the same manner as the array returned from AsArray(). + * Guaranteed to be side-effect free if the array contains no holes. + */ + static V8_WARN_UNUSED_RESULT MaybeLocal FromArray(Local context, + Local array); + + V8_INLINE static Map* Cast(Value* obj); + + private: + Map(); + static void CheckCast(Value* obj); +}; + + +/** + * An instance of the built-in Set constructor (ECMA-262, 6th Edition, 23.2.1). + */ +class V8_EXPORT Set : public Object { + public: + size_t Size() const; + void Clear(); + V8_WARN_UNUSED_RESULT MaybeLocal Add(Local context, + Local key); + V8_WARN_UNUSED_RESULT Maybe Has(Local context, + Local key); + V8_WARN_UNUSED_RESULT Maybe Delete(Local context, + Local key); + + /** + * Returns an array of the keys in this Set. + */ + Local AsArray() const; + + /** + * Creates a new empty Set. + */ + static Local New(Isolate* isolate); + + /** + * Creates a new Set containing the items in array. + * Guaranteed to be side-effect free if the array contains no holes. + */ + static V8_WARN_UNUSED_RESULT MaybeLocal FromArray(Local context, + Local array); + + V8_INLINE static Set* Cast(Value* obj); + + private: + Set(); + static void CheckCast(Value* obj); +}; + + template class ReturnValue { public: @@ -2949,8 +3064,13 @@ class ReturnValue { TYPE_CHECK(T, S); } // Handle setters - template V8_INLINE void Set(const Persistent& handle); - template V8_INLINE void Set(const Handle handle); + template + V8_INLINE V8_DEPRECATE_SOON("Use Global<> instead", + void Set(const Persistent& handle)); + template + V8_INLINE void Set(const Global& handle); + template + V8_INLINE void Set(const Local handle); // Fast primitive setters V8_INLINE void Set(bool value); V8_INLINE void Set(double i); @@ -3066,18 +3186,22 @@ class V8_EXPORT Function : public Object { * Create a function in the current execution context * for a given FunctionCallback. */ - static Local New(Isolate* isolate, - FunctionCallback callback, - Local data = Local(), - int length = 0); + static MaybeLocal New(Local context, + FunctionCallback callback, + Local data = Local(), + int length = 0); + static V8_DEPRECATE_SOON( + "Use maybe version", + Local New(Isolate* isolate, FunctionCallback callback, + Local data = Local(), int length = 0)); V8_DEPRECATE_SOON("Use maybe version", - Local NewInstance(int argc, - Handle argv[])) const; + Local NewInstance(int argc, Handle argv[]) + const); V8_WARN_UNUSED_RESULT MaybeLocal NewInstance( Local context, int argc, Handle argv[]) const; - V8_DEPRECATE_SOON("Use maybe version", Local NewInstance()) const; + V8_DEPRECATE_SOON("Use maybe version", Local NewInstance() const); V8_WARN_UNUSED_RESULT MaybeLocal NewInstance( Local context) const { return NewInstance(context, 0, nullptr); @@ -3312,7 +3436,7 @@ class V8_EXPORT ArrayBuffer : public Object { ArrayBufferCreationMode mode = ArrayBufferCreationMode::kExternalized); /** - * Returns true if ArrayBuffer is extrenalized, that is, does not + * Returns true if ArrayBuffer is externalized, that is, does not * own its memory block. */ bool IsExternal() const; @@ -3447,6 +3571,8 @@ class V8_EXPORT Uint8Array : public TypedArray { public: static Local New(Handle array_buffer, size_t byte_offset, size_t length); + static Local New(Handle shared_array_buffer, + size_t byte_offset, size_t length); V8_INLINE static Uint8Array* Cast(Value* obj); private: @@ -3463,6 +3589,9 @@ class V8_EXPORT Uint8ClampedArray : public TypedArray { public: static Local New(Handle array_buffer, size_t byte_offset, size_t length); + static Local New( + Handle shared_array_buffer, size_t byte_offset, + size_t length); V8_INLINE static Uint8ClampedArray* Cast(Value* obj); private: @@ -3478,6 +3607,8 @@ class V8_EXPORT Int8Array : public TypedArray { public: static Local New(Handle array_buffer, size_t byte_offset, size_t length); + static Local New(Handle shared_array_buffer, + size_t byte_offset, size_t length); V8_INLINE static Int8Array* Cast(Value* obj); private: @@ -3494,6 +3625,8 @@ class V8_EXPORT Uint16Array : public TypedArray { public: static Local New(Handle array_buffer, size_t byte_offset, size_t length); + static Local New(Handle shared_array_buffer, + size_t byte_offset, size_t length); V8_INLINE static Uint16Array* Cast(Value* obj); private: @@ -3510,6 +3643,8 @@ class V8_EXPORT Int16Array : public TypedArray { public: static Local New(Handle array_buffer, size_t byte_offset, size_t length); + static Local New(Handle shared_array_buffer, + size_t byte_offset, size_t length); V8_INLINE static Int16Array* Cast(Value* obj); private: @@ -3526,6 +3661,8 @@ class V8_EXPORT Uint32Array : public TypedArray { public: static Local New(Handle array_buffer, size_t byte_offset, size_t length); + static Local New(Handle shared_array_buffer, + size_t byte_offset, size_t length); V8_INLINE static Uint32Array* Cast(Value* obj); private: @@ -3542,6 +3679,8 @@ class V8_EXPORT Int32Array : public TypedArray { public: static Local New(Handle array_buffer, size_t byte_offset, size_t length); + static Local New(Handle shared_array_buffer, + size_t byte_offset, size_t length); V8_INLINE static Int32Array* Cast(Value* obj); private: @@ -3558,6 +3697,8 @@ class V8_EXPORT Float32Array : public TypedArray { public: static Local New(Handle array_buffer, size_t byte_offset, size_t length); + static Local New(Handle shared_array_buffer, + size_t byte_offset, size_t length); V8_INLINE static Float32Array* Cast(Value* obj); private: @@ -3574,6 +3715,8 @@ class V8_EXPORT Float64Array : public TypedArray { public: static Local New(Handle array_buffer, size_t byte_offset, size_t length); + static Local New(Handle shared_array_buffer, + size_t byte_offset, size_t length); V8_INLINE static Float64Array* Cast(Value* obj); private: @@ -3590,6 +3733,8 @@ class V8_EXPORT DataView : public ArrayBufferView { public: static Local New(Handle array_buffer, size_t byte_offset, size_t length); + static Local New(Handle shared_array_buffer, + size_t byte_offset, size_t length); V8_INLINE static DataView* Cast(Value* obj); private: @@ -3598,6 +3743,105 @@ class V8_EXPORT DataView : public ArrayBufferView { }; +/** + * An instance of the built-in SharedArrayBuffer constructor. + * This API is experimental and may change significantly. + */ +class V8_EXPORT SharedArrayBuffer : public Object { + public: + /** + * The contents of an |SharedArrayBuffer|. Externalization of + * |SharedArrayBuffer| returns an instance of this class, populated, with a + * pointer to data and byte length. + * + * The Data pointer of SharedArrayBuffer::Contents is always allocated with + * |ArrayBuffer::Allocator::Allocate| by the allocator specified in + * v8::Isolate::CreateParams::array_buffer_allocator. + * + * This API is experimental and may change significantly. + */ + class V8_EXPORT Contents { // NOLINT + public: + Contents() : data_(NULL), byte_length_(0) {} + + void* Data() const { return data_; } + size_t ByteLength() const { return byte_length_; } + + private: + void* data_; + size_t byte_length_; + + friend class SharedArrayBuffer; + }; + + + /** + * Data length in bytes. + */ + size_t ByteLength() const; + + /** + * Create a new SharedArrayBuffer. Allocate |byte_length| bytes. + * Allocated memory will be owned by a created SharedArrayBuffer and + * will be deallocated when it is garbage-collected, + * unless the object is externalized. + */ + static Local New(Isolate* isolate, size_t byte_length); + + /** + * Create a new SharedArrayBuffer over an existing memory block. The created + * array buffer is immediately in externalized state unless otherwise + * specified. The memory block will not be reclaimed when a created + * SharedArrayBuffer is garbage-collected. + */ + static Local New( + Isolate* isolate, void* data, size_t byte_length, + ArrayBufferCreationMode mode = ArrayBufferCreationMode::kExternalized); + + /** + * Returns true if SharedArrayBuffer is externalized, that is, does not + * own its memory block. + */ + bool IsExternal() const; + + /** + * Make this SharedArrayBuffer external. The pointer to underlying memory + * block and byte length are returned as |Contents| structure. After + * SharedArrayBuffer had been etxrenalized, it does no longer owns the memory + * block. The caller should take steps to free memory when it is no longer + * needed. + * + * The memory block is guaranteed to be allocated with |Allocator::Allocate| + * by the allocator specified in + * v8::Isolate::CreateParams::array_buffer_allocator. + * + */ + Contents Externalize(); + + /** + * Get a pointer to the ArrayBuffer's underlying memory block without + * externalizing it. If the ArrayBuffer is not externalized, this pointer + * will become invalid as soon as the ArrayBuffer became garbage collected. + * + * The embedder should make sure to hold a strong reference to the + * ArrayBuffer while accessing this pointer. + * + * The memory block is guaranteed to be allocated with |Allocator::Allocate| + * by the allocator specified in + * v8::Isolate::CreateParams::array_buffer_allocator. + */ + Contents GetContents(); + + V8_INLINE static SharedArrayBuffer* Cast(Value* obj); + + static const int kInternalFieldCount = V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT; + + private: + SharedArrayBuffer(); + static void CheckCast(Value* obj); +}; + + /** * An instance of the built-in Date constructor (ECMA-262, 15.9). */ @@ -4815,6 +5059,24 @@ class V8_EXPORT HeapSpaceStatistics { }; +class V8_EXPORT HeapObjectStatistics { + public: + HeapObjectStatistics(); + const char* object_type() { return object_type_; } + const char* object_sub_type() { return object_sub_type_; } + size_t object_count() { return object_count_; } + size_t object_size() { return object_size_; } + + private: + const char* object_type_; + const char* object_sub_type_; + size_t object_count_; + size_t object_size_; + + friend class Isolate; +}; + + class RetainedObjectInfo; @@ -5107,6 +5369,7 @@ class V8_EXPORT Isolate { kStoreBufferOverflow = 4, kSlotsBufferOverflow = 5, kObjectObserve = 6, + kForcedGC = 7, kUseCounterFeatureCount // This enum value must be last. }; @@ -5125,7 +5388,7 @@ class V8_EXPORT Isolate { */ static Isolate* New(const CreateParams& params); - static V8_DEPRECATE_SOON("Always pass CreateParams", Isolate* New()); + static V8_DEPRECATED("Always pass CreateParams", Isolate* New()); /** * Returns the entered isolate for the current thread or NULL in @@ -5202,6 +5465,23 @@ class V8_EXPORT Isolate { bool GetHeapSpaceStatistics(HeapSpaceStatistics* space_statistics, size_t index); + /** + * Returns the number of types of objects tracked in the heap at GC. + */ + size_t NumberOfTrackedHeapObjectTypes(); + + /** + * Get statistics about objects in the heap. + * + * \param object_statistics The HeapObjectStatistics object to fill in + * statistics of objects of given type, which were live in the previous GC. + * \param type_index The index of the type of object to fill details about, + * which ranges from 0 to NumberOfTrackedHeapObjectTypes() - 1. + * \returns true on success. + */ + bool GetHeapObjectStatisticsAtLastGC(HeapObjectStatistics* object_statistics, + size_t type_index); + /** * Get a call stack sample from the isolate. * \param state Execution state. @@ -6174,7 +6454,7 @@ class V8_EXPORT TryCatch { * Returns the .stack property of the thrown object. If no .stack * property is present an empty handle is returned. */ - V8_DEPRECATE_SOON("Use maybe version.", Local StackTrace()) const; + V8_DEPRECATE_SOON("Use maybe version.", Local StackTrace() const); V8_WARN_UNUSED_RESULT MaybeLocal StackTrace( Local context) const; @@ -6370,6 +6650,12 @@ class V8_EXPORT Context { */ V8_INLINE Local GetEmbedderData(int index); + /** + * Gets the exports object used by V8 extras. Extra natives get a reference + * to this object and can use it to export functionality. + */ + Local GetExtrasExportsObject(); + /** * Sets the embedder data with the given index, growing the data as * needed. Note that index 0 currently has a special meaning for Chrome's @@ -6672,7 +6958,7 @@ class Internals { static const int kJSObjectHeaderSize = 3 * kApiPointerSize; static const int kFixedArrayHeaderSize = 2 * kApiPointerSize; static const int kContextHeaderSize = 2 * kApiPointerSize; - static const int kContextEmbedderDataIndex = 77; + static const int kContextEmbedderDataIndex = 80; static const int kFullStringRepresentationMask = 0x07; static const int kStringEncodingMask = 0x4; static const int kExternalTwoByteRepresentationTag = 0x02; @@ -6708,7 +6994,7 @@ class Internals { static const int kJSObjectType = 0xbe; static const int kFirstNonstringType = 0x80; static const int kOddballType = 0x83; - static const int kForeignType = 0x86; + static const int kForeignType = 0x87; static const int kUndefinedOddballKind = 5; static const int kNullOddballKind = 3; @@ -7064,9 +7350,20 @@ void ReturnValue::Set(const Persistent& handle) { } } -template -template -void ReturnValue::Set(const Handle handle) { +template +template +void ReturnValue::Set(const Global& handle) { + TYPE_CHECK(T, S); + if (V8_UNLIKELY(handle.IsEmpty())) { + *value_ = GetDefaultValue(); + } else { + *value_ = *reinterpret_cast(*handle); + } +} + +template +template +void ReturnValue::Set(const Local handle) { TYPE_CHECK(T, S); if (V8_UNLIKELY(handle.IsEmpty())) { *value_ = GetDefaultValue(); @@ -7225,6 +7522,24 @@ int FunctionCallbackInfo::Length() const { return length_; } +ScriptOrigin::ScriptOrigin(Handle resource_name, + Handle resource_line_offset, + Handle resource_column_offset, + Handle resource_is_shared_cross_origin, + Handle script_id, + Handle resource_is_embedder_debug_script, + Handle source_map_url, + Handle resource_is_opaque) + : resource_name_(resource_name), + resource_line_offset_(resource_line_offset), + resource_column_offset_(resource_column_offset), + options_(!resource_is_embedder_debug_script.IsEmpty() && + resource_is_embedder_debug_script->IsTrue(), + !resource_is_shared_cross_origin.IsEmpty() && + resource_is_shared_cross_origin->IsTrue(), + !resource_is_opaque.IsEmpty() && resource_is_opaque->IsTrue()), + script_id_(script_id), + source_map_url_(source_map_url) {} Handle ScriptOrigin::ResourceName() const { return resource_name_; @@ -7241,16 +7556,6 @@ Handle ScriptOrigin::ResourceColumnOffset() const { } -Handle ScriptOrigin::ResourceIsEmbedderDebugScript() const { - return resource_is_embedder_debug_script_; -} - - -Handle ScriptOrigin::ResourceIsSharedCrossOrigin() const { - return resource_is_shared_cross_origin_; -} - - Handle ScriptOrigin::ScriptID() const { return script_id_; } @@ -7265,8 +7570,7 @@ ScriptCompiler::Source::Source(Local string, const ScriptOrigin& origin, resource_name(origin.ResourceName()), resource_line_offset(origin.ResourceLineOffset()), resource_column_offset(origin.ResourceColumnOffset()), - resource_is_embedder_debug_script(origin.ResourceIsEmbedderDebugScript()), - resource_is_shared_cross_origin(origin.ResourceIsSharedCrossOrigin()), + resource_options(origin.Options()), source_map_url(origin.SourceMapUrl()), cached_data(data) {} @@ -7293,7 +7597,9 @@ Handle Boolean::New(Isolate* isolate, bool value) { void Template::Set(Isolate* isolate, const char* name, v8::Handle value) { - Set(v8::String::NewFromUtf8(isolate, name), value); + Set(v8::String::NewFromUtf8(isolate, name, NewStringType::kNormal) + .ToLocalChecked(), + value); } @@ -7446,41 +7752,51 @@ template Value* Value::Cast(T* value) { Local Value::ToBoolean() const { - return ToBoolean(Isolate::GetCurrent()); + return ToBoolean(Isolate::GetCurrent()->GetCurrentContext()) + .FromMaybe(Local()); } Local Value::ToNumber() const { - return ToNumber(Isolate::GetCurrent()); + return ToNumber(Isolate::GetCurrent()->GetCurrentContext()) + .FromMaybe(Local()); } Local Value::ToString() const { - return ToString(Isolate::GetCurrent()); + return ToString(Isolate::GetCurrent()->GetCurrentContext()) + .FromMaybe(Local()); } Local Value::ToDetailString() const { - return ToDetailString(Isolate::GetCurrent()); + return ToDetailString(Isolate::GetCurrent()->GetCurrentContext()) + .FromMaybe(Local()); } Local Value::ToObject() const { - return ToObject(Isolate::GetCurrent()); + return ToObject(Isolate::GetCurrent()->GetCurrentContext()) + .FromMaybe(Local()); } Local Value::ToInteger() const { - return ToInteger(Isolate::GetCurrent()); + return ToInteger(Isolate::GetCurrent()->GetCurrentContext()) + .FromMaybe(Local()); } Local Value::ToUint32() const { - return ToUint32(Isolate::GetCurrent()); + return ToUint32(Isolate::GetCurrent()->GetCurrentContext()) + .FromMaybe(Local()); } -Local Value::ToInt32() const { return ToInt32(Isolate::GetCurrent()); } +Local Value::ToInt32() const { + return ToInt32(Isolate::GetCurrent()->GetCurrentContext()) + .FromMaybe(Local()); +} Boolean* Boolean::Cast(v8::Value* value) { @@ -7603,6 +7919,22 @@ Array* Array::Cast(v8::Value* value) { } +Map* Map::Cast(v8::Value* value) { +#ifdef V8_ENABLE_CHECKS + CheckCast(value); +#endif + return static_cast(value); +} + + +Set* Set::Cast(v8::Value* value) { +#ifdef V8_ENABLE_CHECKS + CheckCast(value); +#endif + return static_cast(value); +} + + Promise* Promise::Cast(v8::Value* value) { #ifdef V8_ENABLE_CHECKS CheckCast(value); @@ -7723,6 +8055,14 @@ DataView* DataView::Cast(v8::Value* value) { } +SharedArrayBuffer* SharedArrayBuffer::Cast(v8::Value* value) { +#ifdef V8_ENABLE_CHECKS + CheckCast(value); +#endif + return static_cast(value); +} + + Function* Function::Cast(v8::Value* value) { #ifdef V8_ENABLE_CHECKS CheckCast(value); diff --git a/deps/v8/include/v8config.h b/deps/v8/include/v8config.h index 991a43afd445c0..4f4b2cd55eae9b 100644 --- a/deps/v8/include/v8config.h +++ b/deps/v8/include/v8config.h @@ -5,6 +5,8 @@ #ifndef V8CONFIG_H_ #define V8CONFIG_H_ +// clang-format off + // Platform headers for feature detection below. #if defined(__ANDROID__) # include @@ -183,6 +185,7 @@ // V8_HAS_BUILTIN_POPCOUNT - __builtin_popcount() supported // V8_HAS_BUILTIN_SADD_OVERFLOW - __builtin_sadd_overflow() supported // V8_HAS_BUILTIN_SSUB_OVERFLOW - __builtin_ssub_overflow() supported +// V8_HAS_BUILTIN_UADD_OVERFLOW - __builtin_uadd_overflow() supported // V8_HAS_DECLSPEC_ALIGN - __declspec(align(n)) supported // V8_HAS_DECLSPEC_DEPRECATED - __declspec(deprecated) supported // V8_HAS_DECLSPEC_NOINLINE - __declspec(noinline) supported @@ -199,8 +202,6 @@ #if defined(__GNUC__) // Clang in gcc mode. # define V8_CC_GNU 1 -#elif defined(_MSC_VER) // Clang in cl mode. -# define V8_CC_MSVC 1 #endif // Clang defines __alignof__ as alias for __alignof @@ -223,6 +224,7 @@ # define V8_HAS_BUILTIN_POPCOUNT (__has_builtin(__builtin_popcount)) # define V8_HAS_BUILTIN_SADD_OVERFLOW (__has_builtin(__builtin_sadd_overflow)) # define V8_HAS_BUILTIN_SSUB_OVERFLOW (__has_builtin(__builtin_ssub_overflow)) +# define V8_HAS_BUILTIN_UADD_OVERFLOW (__has_builtin(__builtin_uadd_overflow)) # define V8_HAS_CXX11_ALIGNAS (__has_feature(cxx_alignas)) # define V8_HAS_CXX11_STATIC_ASSERT (__has_feature(cxx_static_assert)) @@ -230,10 +232,15 @@ #elif defined(__GNUC__) # define V8_CC_GNU 1 -// Intel C++ also masquerades as GCC 3.2.0 -# define V8_CC_INTEL (defined(__INTEL_COMPILER)) -# define V8_CC_MINGW32 (defined(__MINGW32__)) -# define V8_CC_MINGW64 (defined(__MINGW64__)) +# if defined(__INTEL_COMPILER) // Intel C++ also masquerades as GCC 3.2.0 +# define V8_CC_INTEL 1 +# endif +# if defined(__MINGW32__) +# define V8_CC_MINGW32 1 +# endif +# if defined(__MINGW64__) +# define V8_CC_MINGW64 1 +# endif # define V8_CC_MINGW (V8_CC_MINGW32 || V8_CC_MINGW64) # define V8_HAS___ALIGNOF__ (V8_GNUC_PREREQ(4, 3, 0)) @@ -268,11 +275,10 @@ # define V8_HAS_CXX11_ALIGNOF (V8_GNUC_PREREQ(4, 8, 0)) # define V8_HAS_CXX11_STATIC_ASSERT (V8_GNUC_PREREQ(4, 3, 0)) # endif +#endif -#elif defined(_MSC_VER) - +#if defined(_MSC_VER) # define V8_CC_MSVC 1 - # define V8_HAS___ALIGNOF 1 # define V8_HAS_DECLSPEC_ALIGN 1 @@ -313,22 +319,33 @@ #endif -// A macro to mark classes or functions as deprecated. +// A macro (V8_DEPRECATED) to mark classes or functions as deprecated. #if defined(V8_DEPRECATION_WARNINGS) && V8_HAS_ATTRIBUTE_DEPRECATED_MESSAGE -# define V8_DEPRECATED(message, declarator) \ -declarator __attribute__((deprecated(message))) +#define V8_DEPRECATED(message, declarator) \ + declarator __attribute__((deprecated(message))) #elif defined(V8_DEPRECATION_WARNINGS) && V8_HAS_ATTRIBUTE_DEPRECATED -# define V8_DEPRECATED(message, declarator) \ -declarator __attribute__((deprecated)) +#define V8_DEPRECATED(message, declarator) \ + declarator __attribute__((deprecated)) #elif defined(V8_DEPRECATION_WARNINGS) && V8_HAS_DECLSPEC_DEPRECATED -# define V8_DEPRECATED(message, declarator) __declspec(deprecated) declarator +#define V8_DEPRECATED(message, declarator) __declspec(deprecated) declarator #else -# define V8_DEPRECATED(message, declarator) declarator +#define V8_DEPRECATED(message, declarator) declarator #endif -// a macro to make it easier to see what will be deprecated. +// A macro (V8_DEPRECATE_SOON) to make it easier to see what will be deprecated. +#if defined(V8_IMMINENT_DEPRECATION_WARNINGS) && \ + V8_HAS_ATTRIBUTE_DEPRECATED_MESSAGE +#define V8_DEPRECATE_SOON(message, declarator) \ + declarator __attribute__((deprecated(message))) +#elif defined(V8_IMMINENT_DEPRECATION_WARNINGS) && V8_HAS_ATTRIBUTE_DEPRECATED +#define V8_DEPRECATE_SOON(message, declarator) \ + declarator __attribute__((deprecated)) +#elif defined(V8_IMMINENT_DEPRECATION_WARNINGS) && V8_HAS_DECLSPEC_DEPRECATED +#define V8_DEPRECATE_SOON(message, declarator) __declspec(deprecated) declarator +#else #define V8_DEPRECATE_SOON(message, declarator) declarator +#endif // A macro to provide the compiler with branch prediction information. @@ -402,4 +419,6 @@ namespace v8 { template class AlignOfHelper { char c; T t; }; } #define V8_WARN_UNUSED_RESULT /* NOT SUPPORTED */ #endif +// clang-format on + #endif // V8CONFIG_H_ diff --git a/deps/v8/infra/OWNERS b/deps/v8/infra/OWNERS new file mode 100644 index 00000000000000..ea6f5446ee7e90 --- /dev/null +++ b/deps/v8/infra/OWNERS @@ -0,0 +1,3 @@ +machenbach@chromium.org +sergiyb@chromium.org +tandrii@chromium.org diff --git a/deps/v8/infra/README.md b/deps/v8/infra/README.md new file mode 100644 index 00000000000000..5788e8ad72a95d --- /dev/null +++ b/deps/v8/infra/README.md @@ -0,0 +1 @@ +This directory contains infra-specific files. diff --git a/deps/v8/testing/commit_queue/OWNERS b/deps/v8/infra/config/OWNERS similarity index 100% rename from deps/v8/testing/commit_queue/OWNERS rename to deps/v8/infra/config/OWNERS diff --git a/deps/v8/infra/config/cq.cfg b/deps/v8/infra/config/cq.cfg new file mode 100644 index 00000000000000..ae745bfca57e90 --- /dev/null +++ b/deps/v8/infra/config/cq.cfg @@ -0,0 +1,51 @@ +# See http://luci-config.appspot.com/schemas/projects/refs:cq.cfg for the +# documentation of this file format. + +version: 1 +cq_name: "v8" +cq_status_url: "https://chromium-cq-status.appspot.com" +hide_ref_in_committed_msg: true +commit_burst_delay: 60 +max_commit_burst: 1 +target_ref: "refs/pending/heads/master" + +rietveld { + url: "https://codereview.chromium.org" +} + +verifiers { + reviewer_lgtm { + committer_list: "v8" + } + + tree_status { + tree_status_url: "https://v8-status.appspot.com" + } + + try_job { + buckets { + name: "tryserver.v8" + builders { name: "v8_android_arm_compile_rel" } + builders { name: "v8_linux64_asan_rel" } + builders { name: "v8_linux64_avx2_rel" } + builders { name: "v8_linux64_rel" } + builders { name: "v8_linux_arm64_rel" } + builders { name: "v8_linux_arm_rel" } + builders { name: "v8_linux_chromium_gn_rel" } + builders { name: "v8_linux_dbg" } + builders { name: "v8_linux_gcc_compile_rel" } + builders { name: "v8_linux_mipsel_compile_rel" } + builders { name: "v8_linux_mips64el_compile_rel" } + builders { name: "v8_linux_nodcheck_rel" } + builders { name: "v8_linux_rel" } + builders { name: "v8_mac_rel" } + builders { name: "v8_presubmit" } + builders { name: "v8_win64_rel" } + builders { name: "v8_win_compile_dbg" } + builders { name: "v8_win_nosnap_shared_compile_rel" } + builders { name: "v8_win_rel" } + } + } + + sign_cla {} +} diff --git a/deps/v8/infra/project-config/README.md b/deps/v8/infra/project-config/README.md new file mode 100644 index 00000000000000..34a89cef0acee2 --- /dev/null +++ b/deps/v8/infra/project-config/README.md @@ -0,0 +1 @@ +This directory contains v8 project-wide configurations for infra services. diff --git a/deps/v8/infra/project-config/cr-buildbucket.cfg b/deps/v8/infra/project-config/cr-buildbucket.cfg new file mode 100644 index 00000000000000..544940bbaf3bf6 --- /dev/null +++ b/deps/v8/infra/project-config/cr-buildbucket.cfg @@ -0,0 +1,23 @@ +# Defines buckets on cr-buildbucket.appspot.com, used to schedule builds +# on buildbot. In particular, CQ uses some of these buckets to schedule tryjobs. +# +# See http://luci-config.appspot.com/schemas/projects:buildbucket.cfg for +# schema of this file and documentation. +# +# Please keep this list sorted by bucket name. + +buckets { + name: "master.tryserver.v8" + acls { + role: READER + group: "all" + } + acls { + role: SCHEDULER + group: "service-account-cq" + } + acls { + role: WRITER + group: "service-account-v8-master" + } +} diff --git a/deps/v8/samples/hello-world.cc b/deps/v8/samples/hello-world.cc new file mode 100644 index 00000000000000..c38c76022cd67e --- /dev/null +++ b/deps/v8/samples/hello-world.cc @@ -0,0 +1,69 @@ +// Copyright 2015 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include +#include +#include + +#include "include/libplatform/libplatform.h" +#include "include/v8.h" + +using namespace v8; + +class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { + public: + virtual void* Allocate(size_t length) { + void* data = AllocateUninitialized(length); + return data == NULL ? data : memset(data, 0, length); + } + virtual void* AllocateUninitialized(size_t length) { return malloc(length); } + virtual void Free(void* data, size_t) { free(data); } +}; + + +int main(int argc, char* argv[]) { + // Initialize V8. + V8::InitializeICU(); + Platform* platform = platform::CreateDefaultPlatform(); + V8::InitializePlatform(platform); + V8::Initialize(); + + // Create a new Isolate and make it the current one. + ArrayBufferAllocator allocator; + Isolate::CreateParams create_params; + create_params.array_buffer_allocator = &allocator; + Isolate* isolate = Isolate::New(create_params); + { + Isolate::Scope isolate_scope(isolate); + + // Create a stack-allocated handle scope. + HandleScope handle_scope(isolate); + + // Create a new context. + Local context = Context::New(isolate); + + // Enter the context for compiling and running the hello world script. + Context::Scope context_scope(context); + + // Create a string containing the JavaScript source code. + Local source = String::NewFromUtf8(isolate, "'Hello' + ', World!'"); + + // Compile the source code. + Local