From 70d1f32f5605465a1a630a64f6f0d35f96c7709d Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Fri, 19 Jun 2015 13:23:56 +0200 Subject: [PATCH] deps: update v8 to 4.4.63.9 Upgrade the bundled V8 and update code in src/ and lib/ to the new API. Notable backwards incompatible changes are the removal of the smalloc module and dropped support for CESU-8 decoding. CESU-8 support can be brought back if necessary by doing UTF-8 decoding ourselves. This commit includes https://codereview.chromium.org/1192973004 to fix a build error on python 2.6 systems. The original commit log follows: Use optparse in js2c.py for python compatibility Without this change, V8 won't build on RHEL/CentOS 6 because the distro python is too old to know about the argparse module. PR-URL: https://github.com/nodejs/io.js/pull/2022 Reviewed-By: Rod Vagg Reviewed-By: Trevor Norris --- deps/v8/AUTHORS | 1 + deps/v8/BUILD.gn | 105 +- deps/v8/ChangeLog | 478 + deps/v8/DEPS | 8 +- deps/v8/Makefile | 4 + deps/v8/PRESUBMIT.py | 4 + deps/v8/WATCHLISTS | 12 + deps/v8/build/OWNERS | 1 + deps/v8/build/android.gypi | 73 +- deps/v8/build/features.gypi | 4 +- deps/v8/build/standalone.gypi | 55 +- deps/v8/build/toolchain.gypi | 30 +- deps/v8/include/OWNERS | 2 + deps/v8/include/v8-debug.h | 8 - deps/v8/include/v8-profiler.h | 32 + deps/v8/include/v8-util.h | 49 +- deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8.h | 571 +- deps/v8/include/v8config.h | 36 - deps/v8/samples/process.cc | 34 +- deps/v8/samples/shell.cc | 20 +- deps/v8/src/accessors.cc | 155 +- deps/v8/src/accessors.h | 9 +- deps/v8/src/allocation-site-scopes.h | 1 - deps/v8/src/allocation-tracker.cc | 4 +- deps/v8/src/api-natives.cc | 6 +- deps/v8/src/api.cc | 440 +- deps/v8/src/api.h | 10 +- deps/v8/src/arm/assembler-arm.cc | 303 +- deps/v8/src/arm/assembler-arm.h | 32 +- deps/v8/src/arm/builtins-arm.cc | 105 +- deps/v8/src/arm/code-stubs-arm.cc | 216 +- deps/v8/src/arm/code-stubs-arm.h | 12 +- deps/v8/src/arm/disasm-arm.cc | 57 +- deps/v8/src/arm/full-codegen-arm.cc | 172 +- deps/v8/src/arm/interface-descriptors-arm.cc | 11 + deps/v8/src/arm/lithium-arm.cc | 44 +- deps/v8/src/arm/lithium-arm.h | 443 +- deps/v8/src/arm/lithium-codegen-arm.cc | 203 +- deps/v8/src/arm/lithium-codegen-arm.h | 8 +- deps/v8/src/arm/lithium-gap-resolver-arm.h | 2 +- deps/v8/src/arm/macro-assembler-arm.cc | 42 +- deps/v8/src/arm/macro-assembler-arm.h | 17 +- deps/v8/src/arm/regexp-macro-assembler-arm.cc | 106 +- deps/v8/src/arm/simulator-arm.cc | 258 +- deps/v8/src/arm/simulator-arm.h | 2 + deps/v8/src/arm64/builtins-arm64.cc | 122 +- deps/v8/src/arm64/code-stubs-arm64.cc | 238 +- deps/v8/src/arm64/code-stubs-arm64.h | 12 +- deps/v8/src/arm64/full-codegen-arm64.cc | 182 +- .../src/arm64/interface-descriptors-arm64.cc | 11 + deps/v8/src/arm64/lithium-arm64.cc | 51 +- deps/v8/src/arm64/lithium-arm64.h | 466 +- deps/v8/src/arm64/lithium-codegen-arm64.cc | 121 +- deps/v8/src/arm64/lithium-codegen-arm64.h | 6 +- deps/v8/src/arm64/macro-assembler-arm64.cc | 1 - deps/v8/src/arm64/macro-assembler-arm64.h | 2 +- .../src/arm64/regexp-macro-assembler-arm64.cc | 107 +- deps/v8/src/array-iterator.js | 114 +- deps/v8/src/array.js | 400 +- deps/v8/src/arraybuffer.js | 56 +- deps/v8/src/assembler.cc | 34 +- deps/v8/src/assembler.h | 11 +- deps/v8/src/assert-scope.cc | 7 +- deps/v8/src/ast-numbering.cc | 46 +- deps/v8/src/ast-value-factory.cc | 32 +- deps/v8/src/ast-value-factory.h | 26 +- deps/v8/src/ast.cc | 10 +- deps/v8/src/ast.h | 689 +- deps/v8/src/bailout-reason.h | 11 +- deps/v8/src/base/OWNERS | 1 + deps/v8/src/base/adapters.h | 51 + deps/v8/src/base/compiler-specific.h | 25 - deps/v8/src/base/cpu.cc | 45 +- deps/v8/src/base/cpu.h | 10 +- deps/v8/src/base/flags.h | 2 +- deps/v8/src/base/macros.h | 14 +- .../src/base/platform/condition-variable.cc | 10 +- .../v8/src/base/platform/condition-variable.h | 4 +- deps/v8/src/base/platform/elapsed-timer.h | 2 +- deps/v8/src/base/platform/mutex.h | 6 +- deps/v8/src/base/platform/platform-aix.cc | 49 - deps/v8/src/base/platform/platform-cygwin.cc | 48 - deps/v8/src/base/platform/platform-freebsd.cc | 48 - deps/v8/src/base/platform/platform-linux.cc | 62 +- deps/v8/src/base/platform/platform-macos.cc | 58 - deps/v8/src/base/platform/platform-openbsd.cc | 48 - deps/v8/src/base/platform/platform-posix.cc | 81 +- deps/v8/src/base/platform/platform-qnx.cc | 58 - deps/v8/src/base/platform/platform-solaris.cc | 48 - deps/v8/src/base/platform/platform-win32.cc | 76 +- deps/v8/src/base/platform/platform.h | 18 +- deps/v8/src/base/platform/semaphore.h | 2 +- deps/v8/src/base/platform/time.cc | 33 +- deps/v8/src/base/platform/time.h | 6 +- deps/v8/src/base/sys-info.h | 2 +- .../src/base/utils/random-number-generator.h | 2 +- deps/v8/src/bit-vector.h | 7 +- deps/v8/src/bootstrapper.cc | 590 +- deps/v8/src/bootstrapper.h | 15 +- deps/v8/src/builtins.cc | 99 +- deps/v8/src/builtins.h | 56 +- deps/v8/src/checks.h | 1 - deps/v8/src/code-factory.cc | 38 +- deps/v8/src/code-factory.h | 15 +- deps/v8/src/code-stubs-hydrogen.cc | 224 +- deps/v8/src/code-stubs.cc | 34 +- deps/v8/src/code-stubs.h | 379 +- deps/v8/src/collection-iterator.js | 143 +- deps/v8/src/collection.js | 387 +- deps/v8/src/compilation-dependencies.cc | 121 + deps/v8/src/compilation-dependencies.h | 64 + deps/v8/src/compilation-statistics.h | 2 +- deps/v8/src/compiler.cc | 170 +- deps/v8/src/compiler.h | 57 +- deps/v8/src/compiler/OWNERS | 1 + deps/v8/src/compiler/access-builder.cc | 19 +- deps/v8/src/compiler/access-builder.h | 10 +- .../v8/src/compiler/arm/code-generator-arm.cc | 138 +- .../src/compiler/arm/instruction-codes-arm.h | 11 + .../compiler/arm/instruction-selector-arm.cc | 396 +- .../compiler/arm64/code-generator-arm64.cc | 153 +- .../compiler/arm64/instruction-codes-arm64.h | 36 +- .../arm64/instruction-selector-arm64.cc | 534 +- deps/v8/src/compiler/ast-graph-builder.cc | 304 +- deps/v8/src/compiler/ast-graph-builder.h | 19 +- .../compiler/ast-loop-assignment-analyzer.cc | 15 +- .../compiler/ast-loop-assignment-analyzer.h | 2 +- deps/v8/src/compiler/change-lowering.cc | 9 +- deps/v8/src/compiler/change-lowering.h | 6 +- deps/v8/src/compiler/code-generator-impl.h | 12 +- deps/v8/src/compiler/code-generator.cc | 206 +- deps/v8/src/compiler/code-generator.h | 24 +- deps/v8/src/compiler/common-node-cache.h | 2 +- .../src/compiler/common-operator-reducer.cc | 133 +- .../v8/src/compiler/common-operator-reducer.h | 10 +- deps/v8/src/compiler/common-operator.cc | 126 +- deps/v8/src/compiler/common-operator.h | 117 +- deps/v8/src/compiler/control-builders.h | 18 +- deps/v8/src/compiler/control-equivalence.cc | 237 + deps/v8/src/compiler/control-equivalence.h | 216 +- .../v8/src/compiler/control-flow-optimizer.cc | 36 +- deps/v8/src/compiler/control-flow-optimizer.h | 2 +- deps/v8/src/compiler/control-reducer.cc | 442 +- deps/v8/src/compiler/control-reducer.h | 13 +- deps/v8/src/compiler/frame-elider.cc | 130 + deps/v8/src/compiler/frame-elider.h | 41 + deps/v8/src/compiler/frame-states.cc | 53 + deps/v8/src/compiler/frame-states.h | 116 + deps/v8/src/compiler/frame.h | 19 +- deps/v8/src/compiler/gap-resolver.cc | 76 +- deps/v8/src/compiler/gap-resolver.h | 4 +- deps/v8/src/compiler/graph-reducer.cc | 98 +- deps/v8/src/compiler/graph-reducer.h | 68 +- deps/v8/src/compiler/graph-replay.cc | 32 +- deps/v8/src/compiler/graph-visualizer.cc | 81 +- deps/v8/src/compiler/graph-visualizer.h | 15 +- deps/v8/src/compiler/graph.h | 5 + .../src/compiler/ia32/code-generator-ia32.cc | 253 +- .../compiler/ia32/instruction-codes-ia32.h | 26 +- .../ia32/instruction-selector-ia32.cc | 340 +- deps/v8/src/compiler/instruction-codes.h | 12 +- .../src/compiler/instruction-selector-impl.h | 13 +- deps/v8/src/compiler/instruction-selector.cc | 287 +- deps/v8/src/compiler/instruction-selector.h | 38 +- deps/v8/src/compiler/instruction.cc | 333 +- deps/v8/src/compiler/instruction.h | 806 +- deps/v8/src/compiler/js-builtin-reducer.h | 6 +- .../src/compiler/js-context-specialization.h | 2 +- deps/v8/src/compiler/js-generic-lowering.cc | 70 +- deps/v8/src/compiler/js-generic-lowering.h | 6 +- deps/v8/src/compiler/js-graph.cc | 83 +- deps/v8/src/compiler/js-graph.h | 34 +- deps/v8/src/compiler/js-inlining.cc | 26 +- deps/v8/src/compiler/js-inlining.h | 4 +- deps/v8/src/compiler/js-intrinsic-lowering.cc | 35 +- deps/v8/src/compiler/js-intrinsic-lowering.h | 8 +- deps/v8/src/compiler/js-operator.cc | 190 +- deps/v8/src/compiler/js-operator.h | 143 +- deps/v8/src/compiler/js-type-feedback.cc | 163 +- deps/v8/src/compiler/js-type-feedback.h | 15 +- deps/v8/src/compiler/js-typed-lowering.cc | 589 +- deps/v8/src/compiler/js-typed-lowering.h | 25 +- deps/v8/src/compiler/jump-threading.cc | 12 +- deps/v8/src/compiler/linkage-impl.h | 19 +- deps/v8/src/compiler/linkage.cc | 30 +- deps/v8/src/compiler/linkage.h | 20 +- deps/v8/src/compiler/liveness-analyzer.cc | 6 +- deps/v8/src/compiler/load-elimination.h | 6 +- deps/v8/src/compiler/loop-analysis.cc | 4 - deps/v8/src/compiler/loop-analysis.h | 4 +- deps/v8/src/compiler/loop-peeling.cc | 116 +- deps/v8/src/compiler/loop-peeling.h | 1 + .../src/compiler/machine-operator-reducer.h | 4 +- deps/v8/src/compiler/machine-operator.cc | 24 +- deps/v8/src/compiler/machine-operator.h | 54 +- deps/v8/src/compiler/machine-type.h | 66 +- .../src/compiler/mips/code-generator-mips.cc | 205 +- .../compiler/mips/instruction-codes-mips.h | 9 + .../mips/instruction-selector-mips.cc | 236 +- .../compiler/mips64/code-generator-mips64.cc | 205 +- .../mips64/instruction-codes-mips64.h | 9 + .../mips64/instruction-selector-mips64.cc | 225 +- deps/v8/src/compiler/move-optimizer.cc | 283 +- deps/v8/src/compiler/move-optimizer.h | 10 +- deps/v8/src/compiler/node-aux-data.h | 51 + deps/v8/src/compiler/node-cache.h | 2 +- deps/v8/src/compiler/node-marker.cc | 12 +- deps/v8/src/compiler/node-marker.h | 1 + deps/v8/src/compiler/node-matchers.cc | 43 + deps/v8/src/compiler/node-matchers.h | 60 +- deps/v8/src/compiler/node-properties.cc | 9 + deps/v8/src/compiler/node-properties.h | 3 +- deps/v8/src/compiler/node.cc | 15 + deps/v8/src/compiler/node.h | 27 +- deps/v8/src/compiler/opcodes.h | 60 +- deps/v8/src/compiler/operator-properties.cc | 8 +- deps/v8/src/compiler/operator-properties.h | 2 +- deps/v8/src/compiler/operator.h | 6 +- deps/v8/src/compiler/osr.cc | 10 +- deps/v8/src/compiler/osr.h | 3 +- deps/v8/src/compiler/pipeline-statistics.cc | 2 +- deps/v8/src/compiler/pipeline.cc | 269 +- deps/v8/src/compiler/ppc/OWNERS | 1 + .../v8/src/compiler/ppc/code-generator-ppc.cc | 265 +- .../src/compiler/ppc/instruction-codes-ppc.h | 82 +- .../compiler/ppc/instruction-selector-ppc.cc | 451 +- deps/v8/src/compiler/raw-machine-assembler.cc | 7 +- deps/v8/src/compiler/raw-machine-assembler.h | 37 +- .../compiler/register-allocator-verifier.cc | 126 +- .../compiler/register-allocator-verifier.h | 2 +- deps/v8/src/compiler/register-allocator.cc | 4266 ++++---- deps/v8/src/compiler/register-allocator.h | 923 +- deps/v8/src/compiler/schedule.cc | 10 + deps/v8/src/compiler/schedule.h | 8 +- deps/v8/src/compiler/scheduler.cc | 50 +- deps/v8/src/compiler/select-lowering.h | 4 +- deps/v8/src/compiler/simplified-lowering.cc | 57 +- deps/v8/src/compiler/simplified-lowering.h | 3 +- .../compiler/simplified-operator-reducer.cc | 15 + .../compiler/simplified-operator-reducer.h | 6 +- deps/v8/src/compiler/simplified-operator.cc | 15 +- deps/v8/src/compiler/simplified-operator.h | 6 +- deps/v8/src/compiler/source-position.cc | 30 +- deps/v8/src/compiler/source-position.h | 18 +- deps/v8/src/compiler/state-values-utils.cc | 2 +- .../v8/src/compiler/tail-call-optimization.cc | 83 + deps/v8/src/compiler/tail-call-optimization.h | 40 + deps/v8/src/compiler/typer.cc | 162 +- .../v8/src/compiler/value-numbering-reducer.h | 4 +- deps/v8/src/compiler/verifier.cc | 76 +- .../v8/src/compiler/x64/code-generator-x64.cc | 319 +- .../src/compiler/x64/instruction-codes-x64.h | 28 +- .../compiler/x64/instruction-selector-x64.cc | 335 +- deps/v8/src/compiler/zone-pool.h | 6 +- deps/v8/src/contexts.cc | 2 +- deps/v8/src/contexts.h | 15 +- deps/v8/src/conversions.cc | 89 +- deps/v8/src/conversions.h | 3 +- deps/v8/src/counters.cc | 19 +- deps/v8/src/counters.h | 179 +- deps/v8/src/cpu-profiler.cc | 30 +- deps/v8/src/cpu-profiler.h | 2 +- deps/v8/src/d8-posix.cc | 18 +- deps/v8/src/d8.cc | 112 +- deps/v8/src/d8.h | 32 +- deps/v8/src/date.js | 135 +- deps/v8/src/debug-debugger.js | 42 +- deps/v8/src/debug.cc | 49 +- deps/v8/src/debug.h | 3 - deps/v8/src/deoptimizer.cc | 171 +- deps/v8/src/deoptimizer.h | 51 +- deps/v8/src/elements.cc | 76 +- deps/v8/src/elements.h | 3 +- deps/v8/src/execution.cc | 36 +- deps/v8/src/execution.h | 36 +- .../src/extensions/free-buffer-extension.cc | 4 +- .../v8/src/extensions/statistics-extension.cc | 15 +- deps/v8/src/factory.cc | 269 +- deps/v8/src/factory.h | 67 +- deps/v8/src/field-index.h | 2 +- deps/v8/src/flag-definitions.h | 62 +- deps/v8/src/flags.cc | 2 +- deps/v8/src/full-codegen.cc | 256 +- deps/v8/src/full-codegen.h | 30 +- deps/v8/src/gdb-jit.cc | 17 +- deps/v8/src/generator.js | 98 +- deps/v8/src/global-handles.cc | 121 +- deps/v8/src/global-handles.h | 8 - deps/v8/src/globals.h | 40 +- deps/v8/src/harmony-array-includes.js | 32 +- deps/v8/src/harmony-array.js | 175 +- deps/v8/src/harmony-object.js | 46 + deps/v8/src/harmony-reflect.js | 18 +- deps/v8/src/harmony-regexp.js | 21 +- deps/v8/src/harmony-spread.js | 43 + deps/v8/src/harmony-tostring.js | 52 +- deps/v8/src/harmony-typedarray.js | 109 +- deps/v8/src/hashmap.h | 68 +- deps/v8/src/heap-snapshot-generator.cc | 75 +- deps/v8/src/heap/OWNERS | 1 + deps/v8/src/heap/gc-idle-time-handler.cc | 190 +- deps/v8/src/heap/gc-idle-time-handler.h | 121 +- deps/v8/src/heap/gc-tracer.cc | 25 +- deps/v8/src/heap/heap-inl.h | 127 +- deps/v8/src/heap/heap.cc | 1048 +- deps/v8/src/heap/heap.h | 294 +- deps/v8/src/heap/identity-map.cc | 191 + deps/v8/src/heap/identity-map.h | 96 + deps/v8/src/heap/incremental-marking-inl.h | 6 +- deps/v8/src/heap/incremental-marking.cc | 99 +- deps/v8/src/heap/incremental-marking.h | 24 +- deps/v8/src/heap/mark-compact-inl.h | 19 +- deps/v8/src/heap/mark-compact.cc | 497 +- deps/v8/src/heap/mark-compact.h | 81 +- deps/v8/src/heap/objects-visiting-inl.h | 49 +- deps/v8/src/heap/objects-visiting.cc | 119 +- deps/v8/src/heap/objects-visiting.h | 5 +- deps/v8/src/heap/spaces-inl.h | 81 +- deps/v8/src/heap/spaces.cc | 99 +- deps/v8/src/heap/spaces.h | 161 +- deps/v8/src/heap/store-buffer-inl.h | 6 +- deps/v8/src/heap/store-buffer.cc | 36 +- deps/v8/src/hydrogen-bce.cc | 6 +- deps/v8/src/hydrogen-dehoist.cc | 13 +- deps/v8/src/hydrogen-gvn.cc | 4 +- deps/v8/src/hydrogen-gvn.h | 6 +- deps/v8/src/hydrogen-instructions.cc | 129 +- deps/v8/src/hydrogen-instructions.h | 1423 ++- deps/v8/src/hydrogen-types.cc | 1 - deps/v8/src/hydrogen-types.h | 2 +- deps/v8/src/hydrogen-uint32-analysis.cc | 2 +- deps/v8/src/hydrogen.cc | 1369 +-- deps/v8/src/hydrogen.h | 171 +- deps/v8/src/i18n.js | 259 +- deps/v8/src/ia32/assembler-ia32-inl.h | 1 + deps/v8/src/ia32/assembler-ia32.cc | 144 +- deps/v8/src/ia32/assembler-ia32.h | 164 +- deps/v8/src/ia32/builtins-ia32.cc | 112 +- deps/v8/src/ia32/code-stubs-ia32.cc | 107 +- deps/v8/src/ia32/code-stubs-ia32.h | 10 +- deps/v8/src/ia32/disasm-ia32.cc | 302 +- deps/v8/src/ia32/full-codegen-ia32.cc | 166 +- .../v8/src/ia32/interface-descriptors-ia32.cc | 11 + deps/v8/src/ia32/lithium-codegen-ia32.cc | 203 +- deps/v8/src/ia32/lithium-codegen-ia32.h | 10 +- deps/v8/src/ia32/lithium-gap-resolver-ia32.h | 2 +- deps/v8/src/ia32/lithium-ia32.cc | 44 +- deps/v8/src/ia32/lithium-ia32.h | 443 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 24 +- deps/v8/src/ia32/macro-assembler-ia32.h | 2 +- .../src/ia32/regexp-macro-assembler-ia32.cc | 106 +- deps/v8/src/ic/OWNERS | 1 + deps/v8/src/ic/arm/handler-compiler-arm.cc | 68 +- .../v8/src/ic/arm64/handler-compiler-arm64.cc | 68 +- deps/v8/src/ic/handler-compiler.cc | 37 +- deps/v8/src/ic/handler-compiler.h | 9 +- deps/v8/src/ic/ia32/handler-compiler-ia32.cc | 65 +- deps/v8/src/ic/ic-compiler.cc | 13 +- deps/v8/src/ic/ic-state.cc | 20 +- deps/v8/src/ic/ic-state.h | 22 +- deps/v8/src/ic/ic.cc | 126 +- deps/v8/src/ic/ic.h | 13 +- deps/v8/src/ic/mips/handler-compiler-mips.cc | 68 +- .../src/ic/mips64/handler-compiler-mips64.cc | 68 +- deps/v8/src/ic/ppc/OWNERS | 1 + deps/v8/src/ic/ppc/handler-compiler-ppc.cc | 70 +- deps/v8/src/ic/x64/handler-compiler-x64.cc | 69 +- deps/v8/src/ic/x87/handler-compiler-x87.cc | 65 +- deps/v8/src/interface-descriptors.cc | 7 + deps/v8/src/interface-descriptors.h | 21 +- deps/v8/src/isolate-inl.h | 42 - deps/v8/src/isolate.cc | 290 +- deps/v8/src/isolate.h | 80 +- deps/v8/src/json-parser.h | 213 +- deps/v8/src/json-stringifier.h | 12 +- deps/v8/src/json.js | 67 +- deps/v8/src/jsregexp.cc | 55 +- deps/v8/src/jsregexp.h | 9 +- deps/v8/src/layout-descriptor.cc | 2 +- deps/v8/src/libplatform/OWNERS | 1 + deps/v8/src/libplatform/default-platform.h | 6 +- deps/v8/src/libplatform/worker-thread.h | 2 +- deps/v8/src/lithium.cc | 2 +- deps/v8/src/lithium.h | 27 +- deps/v8/src/log.cc | 2 +- deps/v8/src/lookup.cc | 9 +- deps/v8/src/lookup.h | 4 +- deps/v8/src/macro-assembler.h | 21 +- deps/v8/src/macros.py | 181 +- deps/v8/src/math.js | 32 +- deps/v8/src/messages.cc | 187 +- deps/v8/src/messages.h | 190 +- deps/v8/src/messages.js | 660 +- deps/v8/src/mips/assembler-mips-inl.h | 2 +- deps/v8/src/mips/assembler-mips.cc | 288 +- deps/v8/src/mips/assembler-mips.h | 43 +- deps/v8/src/mips/builtins-mips.cc | 109 +- deps/v8/src/mips/code-stubs-mips.cc | 233 +- deps/v8/src/mips/code-stubs-mips.h | 12 +- deps/v8/src/mips/constants-mips.cc | 2 + deps/v8/src/mips/constants-mips.h | 374 +- deps/v8/src/mips/deoptimizer-mips.cc | 12 +- deps/v8/src/mips/disasm-mips.cc | 973 +- deps/v8/src/mips/full-codegen-mips.cc | 172 +- .../v8/src/mips/interface-descriptors-mips.cc | 11 + deps/v8/src/mips/lithium-codegen-mips.cc | 196 +- deps/v8/src/mips/lithium-codegen-mips.h | 8 +- deps/v8/src/mips/lithium-gap-resolver-mips.h | 2 +- deps/v8/src/mips/lithium-mips.cc | 44 +- deps/v8/src/mips/lithium-mips.h | 439 +- deps/v8/src/mips/macro-assembler-mips.cc | 193 +- deps/v8/src/mips/macro-assembler-mips.h | 57 +- .../src/mips/regexp-macro-assembler-mips.cc | 105 +- deps/v8/src/mips/simulator-mips.cc | 1024 +- deps/v8/src/mips/simulator-mips.h | 46 +- deps/v8/src/mips64/assembler-mips64.cc | 272 +- deps/v8/src/mips64/assembler-mips64.h | 43 +- deps/v8/src/mips64/builtins-mips64.cc | 107 +- deps/v8/src/mips64/code-stubs-mips64.cc | 237 +- deps/v8/src/mips64/code-stubs-mips64.h | 12 +- deps/v8/src/mips64/constants-mips64.cc | 2 + deps/v8/src/mips64/constants-mips64.h | 432 +- deps/v8/src/mips64/deoptimizer-mips64.cc | 10 +- deps/v8/src/mips64/disasm-mips64.cc | 1354 +-- deps/v8/src/mips64/full-codegen-mips64.cc | 171 +- .../mips64/interface-descriptors-mips64.cc | 11 + deps/v8/src/mips64/lithium-codegen-mips64.cc | 300 +- deps/v8/src/mips64/lithium-codegen-mips64.h | 10 +- .../src/mips64/lithium-gap-resolver-mips64.h | 2 +- deps/v8/src/mips64/lithium-mips64.cc | 44 +- deps/v8/src/mips64/lithium-mips64.h | 438 +- deps/v8/src/mips64/macro-assembler-mips64.cc | 255 +- deps/v8/src/mips64/macro-assembler-mips64.h | 58 +- .../mips64/regexp-macro-assembler-mips64.cc | 107 +- .../mips64/regexp-macro-assembler-mips64.h | 5 +- deps/v8/src/mips64/simulator-mips64.cc | 1269 ++- deps/v8/src/mips64/simulator-mips64.h | 43 + deps/v8/src/mirror-debugger.js | 24 +- deps/v8/src/modules.cc | 28 +- deps/v8/src/modules.h | 19 +- deps/v8/src/object-observe.js | 166 +- deps/v8/src/objects-debug.cc | 30 +- deps/v8/src/objects-inl.h | 270 +- deps/v8/src/objects-printer.cc | 22 +- deps/v8/src/objects.cc | 1359 +-- deps/v8/src/objects.h | 654 +- ...ad.cc => optimizing-compile-dispatcher.cc} | 239 +- ...read.h => optimizing-compile-dispatcher.h} | 65 +- deps/v8/src/ostreams.cc | 2 + deps/v8/src/parser.cc | 1037 +- deps/v8/src/parser.h | 110 +- deps/v8/src/perf-jit.h | 7 - deps/v8/src/ppc/OWNERS | 1 + deps/v8/src/ppc/builtins-ppc.cc | 114 +- deps/v8/src/ppc/code-stubs-ppc.cc | 217 +- deps/v8/src/ppc/code-stubs-ppc.h | 12 +- deps/v8/src/ppc/full-codegen-ppc.cc | 167 +- deps/v8/src/ppc/interface-descriptors-ppc.cc | 11 + deps/v8/src/ppc/lithium-codegen-ppc.cc | 194 +- deps/v8/src/ppc/lithium-codegen-ppc.h | 8 +- deps/v8/src/ppc/lithium-gap-resolver-ppc.h | 2 +- deps/v8/src/ppc/lithium-ppc.cc | 46 +- deps/v8/src/ppc/lithium-ppc.h | 439 +- deps/v8/src/ppc/macro-assembler-ppc.cc | 9 +- deps/v8/src/ppc/macro-assembler-ppc.h | 2 +- deps/v8/src/ppc/regexp-macro-assembler-ppc.cc | 106 +- deps/v8/src/ppc/simulator-ppc.cc | 2 +- deps/v8/src/preparse-data.h | 1 - deps/v8/src/preparser.cc | 347 +- deps/v8/src/preparser.h | 1246 ++- deps/v8/src/prettyprinter.cc | 109 +- deps/v8/src/prettyprinter.h | 4 +- deps/v8/src/profile-generator.cc | 26 +- deps/v8/src/profile-generator.h | 18 +- deps/v8/src/promise.js | 673 +- deps/v8/src/property-details-inl.h | 27 - deps/v8/src/property-details.h | 28 +- deps/v8/src/property.h | 6 +- deps/v8/src/proxy.js | 78 +- deps/v8/src/regexp-macro-assembler.cc | 90 +- deps/v8/src/regexp-macro-assembler.h | 6 + deps/v8/src/regexp.js | 31 +- deps/v8/src/rewriter.cc | 13 +- deps/v8/src/runtime-profiler.cc | 1 - deps/v8/src/runtime.js | 518 +- deps/v8/src/runtime/runtime-array.cc | 53 +- deps/v8/src/runtime/runtime-classes.cc | 36 +- deps/v8/src/runtime/runtime-collections.cc | 147 +- deps/v8/src/runtime/runtime-compiler.cc | 28 +- deps/v8/src/runtime/runtime-debug.cc | 425 +- deps/v8/src/runtime/runtime-function.cc | 50 +- deps/v8/src/runtime/runtime-internal.cc | 90 +- deps/v8/src/runtime/runtime-numbers.cc | 23 +- deps/v8/src/runtime/runtime-object.cc | 58 +- deps/v8/src/runtime/runtime-observe.cc | 3 +- deps/v8/src/runtime/runtime-regexp.cc | 63 +- deps/v8/src/runtime/runtime-scopes.cc | 20 +- deps/v8/src/runtime/runtime-test.cc | 13 +- deps/v8/src/runtime/runtime-typedarray.cc | 196 +- deps/v8/src/runtime/runtime.h | 1349 ++- deps/v8/src/sampler.cc | 2 +- deps/v8/src/scanner-character-streams.cc | 38 +- deps/v8/src/scanner-character-streams.h | 18 +- deps/v8/src/scanner.cc | 76 +- deps/v8/src/scanner.h | 86 +- deps/v8/src/scopeinfo.cc | 42 +- deps/v8/src/scopes.cc | 131 +- deps/v8/src/scopes.h | 28 +- deps/v8/src/signature.h | 80 + deps/v8/src/snapshot/OWNERS | 2 + deps/v8/src/snapshot/mksnapshot.cc | 8 +- deps/v8/src/snapshot/natives-external.cc | 3 + deps/v8/src/snapshot/natives.h | 11 +- deps/v8/src/snapshot/serialize.cc | 141 +- deps/v8/src/snapshot/serialize.h | 56 +- deps/v8/src/snapshot/snapshot-common.cc | 2 +- deps/v8/src/snapshot/snapshot-source-sink.h | 8 +- deps/v8/src/snapshot/snapshot.h | 6 +- deps/v8/src/startup-data-util.cc | 4 +- deps/v8/src/string-iterator.js | 25 +- deps/v8/src/string-stream.h | 10 +- deps/v8/src/string.js | 78 +- deps/v8/src/strings-storage.cc | 2 +- deps/v8/src/symbol.js | 39 +- deps/v8/src/templates.js | 23 +- deps/v8/src/third_party/fdlibm/fdlibm.js | 95 +- deps/v8/src/transitions.cc | 2 + deps/v8/src/type-feedback-vector.cc | 36 +- deps/v8/src/type-feedback-vector.h | 38 +- deps/v8/src/type-info.cc | 36 +- deps/v8/src/type-info.h | 4 +- deps/v8/src/typedarray.js | 240 +- deps/v8/src/types.cc | 9 +- deps/v8/src/types.h | 6 +- deps/v8/src/typing.cc | 33 +- deps/v8/src/typing.h | 6 +- deps/v8/src/unicode.cc | 139 +- deps/v8/src/unique.h | 2 +- deps/v8/src/uri.js | 674 +- deps/v8/src/utils-inl.h | 25 - deps/v8/src/utils.cc | 11 +- deps/v8/src/utils.h | 66 +- deps/v8/src/v8.cc | 5 + deps/v8/src/v8natives.js | 898 +- deps/v8/src/variables.h | 32 +- deps/v8/src/weak-collection.js | 119 +- deps/v8/src/x64/assembler-x64-inl.h | 19 + deps/v8/src/x64/assembler-x64.cc | 508 +- deps/v8/src/x64/assembler-x64.h | 284 +- deps/v8/src/x64/builtins-x64.cc | 109 +- deps/v8/src/x64/code-stubs-x64.cc | 221 +- deps/v8/src/x64/code-stubs-x64.h | 10 +- deps/v8/src/x64/disasm-x64.cc | 287 +- deps/v8/src/x64/full-codegen-x64.cc | 174 +- deps/v8/src/x64/interface-descriptors-x64.cc | 11 + deps/v8/src/x64/lithium-codegen-x64.cc | 191 +- deps/v8/src/x64/lithium-codegen-x64.h | 10 +- deps/v8/src/x64/lithium-gap-resolver-x64.h | 2 +- deps/v8/src/x64/lithium-x64.cc | 43 +- deps/v8/src/x64/lithium-x64.h | 440 +- deps/v8/src/x64/macro-assembler-x64.cc | 16 +- deps/v8/src/x64/macro-assembler-x64.h | 2 +- deps/v8/src/x64/regexp-macro-assembler-x64.cc | 106 +- deps/v8/src/x87/assembler-x87-inl.h | 1 + deps/v8/src/x87/builtins-x87.cc | 112 +- deps/v8/src/x87/code-stubs-x87.cc | 107 +- deps/v8/src/x87/code-stubs-x87.h | 10 +- deps/v8/src/x87/full-codegen-x87.cc | 201 +- deps/v8/src/x87/interface-descriptors-x87.cc | 11 + deps/v8/src/x87/lithium-codegen-x87.cc | 206 +- deps/v8/src/x87/lithium-codegen-x87.h | 10 +- deps/v8/src/x87/lithium-gap-resolver-x87.h | 2 +- deps/v8/src/x87/lithium-x87.cc | 44 +- deps/v8/src/x87/lithium-x87.h | 447 +- deps/v8/src/x87/macro-assembler-x87.cc | 10 +- deps/v8/src/x87/macro-assembler-x87.h | 2 +- deps/v8/src/x87/regexp-macro-assembler-x87.cc | 106 +- deps/v8/src/zone-allocator.h | 2 + deps/v8/src/zone-containers.h | 11 + deps/v8/src/zone.cc | 4 +- deps/v8/src/zone.h | 10 +- deps/v8/test/benchmarks/testcfg.py | 2 +- deps/v8/test/cctest/cctest.cc | 7 +- deps/v8/test/cctest/cctest.gyp | 19 +- deps/v8/test/cctest/cctest.h | 12 +- deps/v8/test/cctest/cctest.status | 37 +- deps/v8/test/cctest/compiler/call-tester.h | 6 + deps/v8/test/cctest/compiler/codegen-tester.h | 21 +- .../cctest/compiler/graph-builder-tester.cc | 56 - .../cctest/compiler/graph-builder-tester.h | 84 +- deps/v8/test/cctest/compiler/graph-tester.h | 42 - .../compiler/simplified-graph-builder.h | 2 +- .../cctest/compiler/test-control-reducer.cc | 417 +- .../test/cctest/compiler/test-gap-resolver.cc | 137 +- .../cctest/compiler/test-graph-visualizer.cc | 32 + .../test/cctest/compiler/test-instruction.cc | 51 +- .../test-js-context-specialization.cc | 72 +- .../cctest/compiler/test-js-typed-lowering.cc | 191 +- .../cctest/compiler/test-jump-threading.cc | 20 +- .../cctest/compiler/test-node-algorithm.cc | 40 - .../test/cctest/compiler/test-node-cache.cc | 175 - deps/v8/test/cctest/compiler/test-node.cc | 54 +- .../test/cctest/compiler/test-run-jscalls.cc | 2 +- .../cctest/compiler/test-run-jsexceptions.cc | 9 + .../test/cctest/compiler/test-run-machops.cc | 273 +- .../v8/test/cctest/compiler/test-run-stubs.cc | 14 +- .../compiler/test-simplified-lowering.cc | 39 +- deps/v8/test/cctest/compiler/value-helper.h | 14 +- deps/v8/test/cctest/test-accessors.cc | 2 +- deps/v8/test/cctest/test-alloc.cc | 15 +- deps/v8/test/cctest/test-api-interceptors.cc | 2 +- deps/v8/test/cctest/test-api.cc | 1949 +--- deps/v8/test/cctest/test-assembler-arm.cc | 167 +- deps/v8/test/cctest/test-assembler-arm64.cc | 1 + deps/v8/test/cctest/test-assembler-ia32.cc | 347 + deps/v8/test/cctest/test-assembler-mips.cc | 573 +- deps/v8/test/cctest/test-assembler-mips64.cc | 673 +- deps/v8/test/cctest/test-assembler-x64.cc | 793 ++ deps/v8/test/cctest/test-assembler-x87.cc | 1 + deps/v8/test/cctest/test-constantpool.cc | 33 +- deps/v8/test/cctest/test-conversions.cc | 63 +- deps/v8/test/cctest/test-cpu-profiler.cc | 32 +- deps/v8/test/cctest/test-debug.cc | 105 +- deps/v8/test/cctest/test-deoptimization.cc | 38 +- deps/v8/test/cctest/test-dictionary.cc | 16 +- deps/v8/test/cctest/test-disasm-arm.cc | 52 + deps/v8/test/cctest/test-disasm-ia32.cc | 89 + deps/v8/test/cctest/test-disasm-mips.cc | 20 + deps/v8/test/cctest/test-disasm-mips64.cc | 18 + deps/v8/test/cctest/test-disasm-x64.cc | 124 + deps/v8/test/cctest/test-feedback-vector.cc | 20 +- deps/v8/test/cctest/test-hashmap.cc | 6 +- deps/v8/test/cctest/test-heap-profiler.cc | 31 +- deps/v8/test/cctest/test-heap.cc | 642 +- deps/v8/test/cctest/test-identity-map.cc | 339 + deps/v8/test/cctest/test-lockers.cc | 50 +- deps/v8/test/cctest/test-log.cc | 72 +- deps/v8/test/cctest/test-mark-compact.cc | 28 +- deps/v8/test/cctest/test-mementos.cc | 2 +- .../v8/test/cctest/test-microtask-delivery.cc | 4 +- deps/v8/test/cctest/test-migrations.cc | 56 +- deps/v8/test/cctest/test-object-observe.cc | 55 +- .../v8/test/cctest/test-ordered-hash-table.cc | 179 - deps/v8/test/cctest/test-parsing.cc | 806 +- .../cctest/test-random-number-generator.cc | 5 +- deps/v8/test/cctest/test-serialize.cc | 65 +- deps/v8/test/cctest/test-spaces.cc | 11 +- deps/v8/test/cctest/test-strings.cc | 19 + deps/v8/test/cctest/test-symbols.cc | 27 +- .../v8/test/cctest/test-thread-termination.cc | 2 - deps/v8/test/cctest/test-threads.cc | 5 +- deps/v8/test/cctest/test-typedarrays.cc | 4 +- deps/v8/test/cctest/test-types.cc | 405 +- deps/v8/test/cctest/test-unboxed-doubles.cc | 34 +- deps/v8/test/cctest/test-utils.cc | 1 - deps/v8/test/cctest/test-weakmaps.cc | 14 +- deps/v8/test/cctest/test-weaksets.cc | 12 +- deps/v8/test/cctest/test-weaktypedarrays.cc | 419 - deps/v8/test/cctest/types-fuzz.h | 1 + deps/v8/test/js-perf-test/JSTests.json | 26 + deps/v8/test/js-perf-test/Object/assign.js | 81 + deps/v8/test/js-perf-test/Object/run.js | 26 + deps/v8/test/js-perf-test/SpreadCalls/run.js | 27 + .../js-perf-test/SpreadCalls/spreadcalls.js | 77 + deps/v8/test/memory/Memory.json | 26 + .../for-in-let-loop-initializers-strict.js | 11 + .../for-in-let-loop-initializers-strict.out | 7 + .../for-in-loop-initializers-strict.js | 11 + .../for-in-loop-initializers-strict.out | 7 + .../message/for-of-let-loop-initializers.js | 11 + .../message/for-of-let-loop-initializers.out | 7 + .../for-of-loop-initializers-sloppy.js | 10 + .../for-of-loop-initializers-sloppy.out | 7 + .../for-of-loop-initializers-strict.js | 11 + .../for-of-loop-initializers-strict.out | 7 + .../message/formal-parameters-bad-rest.js | 7 + .../message/formal-parameters-bad-rest.out | 4 + .../message/formal-parameters-strict-body.js | 5 + .../message/formal-parameters-strict-body.out | 4 + .../formal-parameters-trailing-comma.js | 5 + .../formal-parameters-trailing-comma.out | 4 + deps/v8/test/message/message.status | 7 + deps/v8/test/message/regress/regress-3995.js | 7 + deps/v8/test/message/regress/regress-3995.out | 10 + .../test/message/single-function-literal.js | 4 +- .../test/message/strict-formal-parameters.js | 6 + .../test/message/strict-formal-parameters.out | 4 + .../mjsunit/array-constructor-feedback.js | 19 +- deps/v8/test/mjsunit/array-feedback.js | 3 +- deps/v8/test/mjsunit/asm/math-clz32.js | 2 +- deps/v8/test/mjsunit/asm/pointer-masking.js | 35 + deps/v8/test/mjsunit/asm/poppler/poppler.js | 9211 +++++++++++++++++ .../mjsunit/asm/sqlite3/sqlite-change-heap.js | 18 + .../asm/sqlite3/sqlite-pointer-masking.js | 18 + .../mjsunit/asm/sqlite3/sqlite-safe-heap.js | 18 + deps/v8/test/mjsunit/asm/sqlite3/sqlite.js | 18 + .../mjsunit/bugs/harmony/debug-blockscopes.js | 1 + deps/v8/test/mjsunit/builtins.js | 18 +- deps/v8/test/mjsunit/compare-table-eq.js | 105 + deps/v8/test/mjsunit/compare-table-gt.js | 105 + deps/v8/test/mjsunit/compare-table-gteq.js | 105 + deps/v8/test/mjsunit/compare-table-lt.js | 105 + deps/v8/test/mjsunit/compare-table-lteq.js | 105 + deps/v8/test/mjsunit/compare-table-ne.js | 105 + deps/v8/test/mjsunit/compare-table-seq.js | 105 + deps/v8/test/mjsunit/compare-table-sne.js | 105 + deps/v8/test/mjsunit/compiler/deopt-bool.js | 28 + deps/v8/test/mjsunit/compiler/deopt-bool2.js | 31 + deps/v8/test/mjsunit/compiler/generic-add.js | 26 + .../v8/test/mjsunit/compiler/global-delete.js | 73 + .../mjsunit/compiler/global-var-delete.js | 73 + .../mjsunit/compiler/inlined-call-mapcheck.js | 2 +- deps/v8/test/mjsunit/compiler/inlined-call.js | 2 +- deps/v8/test/mjsunit/compiler/jsnatives.js | 4 +- .../mjsunit/compiler/lazy-deopt-in-literal.js | 20 + deps/v8/test/mjsunit/compiler/named-load.js | 31 + deps/v8/test/mjsunit/compiler/named-store.js | 31 + deps/v8/test/mjsunit/compiler/regress-gvn.js | 2 +- .../mjsunit/compiler/regress-stacktrace.js | 1 - deps/v8/test/mjsunit/compiler/uint32.js | 31 + .../concurrent-initial-prototype-change.js | 8 + deps/v8/test/mjsunit/debug-backtrace.js | 2 +- .../debug-evaluate-locals-capturing.js | 48 + deps/v8/test/mjsunit/debug-scopes.js | 3 +- .../mjsunit/elide-double-hole-check-10.js | 36 + .../mjsunit/elide-double-hole-check-11.js | 16 + .../mjsunit/elide-double-hole-check-12.js | 23 + .../mjsunit/ensure-growing-store-learns.js | 86 + .../mjsunit/es6/block-scoping-top-level.js | 34 + .../mjsunit/es6/built-in-accessor-names.js | 53 + deps/v8/test/mjsunit/es6/collections.js | 4 +- deps/v8/test/mjsunit/es6/debug-blockscopes.js | 42 +- .../test/mjsunit/es6/debug-function-scopes.js | 15 +- .../mjsunit/es6/function-name-configurable.js | 6 +- .../mjsunit/es6/function-prototype-name.js | 11 + .../v8/test/mjsunit/es6/generators-objects.js | 1 - .../es6/generators-poisoned-properties.js | 56 +- .../v8/test/mjsunit/es6/generators-runtime.js | 59 +- deps/v8/test/mjsunit/es6/math-log2-log10.js | 3 + deps/v8/test/mjsunit/es6/numeric-literals.js | 4 - .../mjsunit/es6/prototype-ordinary-objects.js | 69 + .../mjsunit/es6/regress/regress-468661.js | 13 +- deps/v8/test/mjsunit/es6/symbols.js | 22 + deps/v8/test/mjsunit/es6/templates.js | 6 +- .../throw-type-error-function-restrictions.js | 25 + deps/v8/test/mjsunit/es6/unscopables.js | 40 +- deps/v8/test/mjsunit/fast-prototype.js | 18 +- deps/v8/test/mjsunit/for-in-opt.js | 86 + .../test/mjsunit/function-arguments-null.js | 7 +- deps/v8/test/mjsunit/function-bind.js | 12 +- ...get-own-property-descriptor-non-objects.js | 34 + deps/v8/test/mjsunit/get-prototype-of.js | 117 +- .../v8/test/mjsunit/global-infinity-strict.js | 136 + deps/v8/test/mjsunit/global-infinity.js | 127 + deps/v8/test/mjsunit/global-nan-strict.js | 136 + deps/v8/test/mjsunit/global-nan.js | 127 + .../test/mjsunit/global-undefined-strict.js | 163 + deps/v8/test/mjsunit/global-undefined.js | 149 + .../test/mjsunit/harmony/array-copywithin.js | 338 + .../arrow-functions-lexical-arguments.js | 158 + .../test/mjsunit/harmony/arrow-functions.js | 23 + .../harmony/classes-derived-return-type.js | 90 + deps/v8/test/mjsunit/harmony/classes-maps.js | 68 + deps/v8/test/mjsunit/harmony/classes.js | 71 + .../computed-property-names-classes.js | 14 +- deps/v8/test/mjsunit/harmony/object-assign.js | 142 + .../mjsunit/harmony/object-literals-method.js | 28 + deps/v8/test/mjsunit/harmony/proxies.js | 23 + .../mjsunit/harmony/regress/regress-4056.js | 12 + .../test/mjsunit/harmony/set-prototype-of.js | 10 +- .../mjsunit/harmony/spread-call-new-class.js | 92 + .../test/mjsunit/harmony/spread-call-new.js | 62 + deps/v8/test/mjsunit/harmony/spread-call.js | 374 + .../test/mjsunit/harmony/typedarray-proto.js | 44 + .../test/mjsunit/harmony/typedarrays-every.js | 141 + deps/v8/test/mjsunit/harmony/typedarrays.js | 8 +- .../mjsunit/keyed-load-hole-to-undefined.js | 26 + deps/v8/test/mjsunit/messages.js | 379 + deps/v8/test/mjsunit/mjsunit.status | 81 +- deps/v8/test/mjsunit/object-freeze.js | 88 +- deps/v8/test/mjsunit/object-seal.js | 33 +- deps/v8/test/mjsunit/prototype-changes.js | 56 + .../v8/test/mjsunit/regress/regress-320532.js | 1 - .../v8/test/mjsunit/regress/regress-385565.js | 2 +- deps/v8/test/mjsunit/regress/regress-3976.js | 2 +- deps/v8/test/mjsunit/regress/regress-4121.js | 55 + .../v8/test/mjsunit/regress/regress-466993.js | 18 + .../test/mjsunit/regress/regress-469605b.js | 26 + .../v8/test/mjsunit/regress/regress-472504.js | 9 + .../v8/test/mjsunit/regress/regress-475705.js | 63 + .../v8/test/mjsunit/regress/regress-476488.js | 15 + .../v8/test/mjsunit/regress/regress-484544.js | 13 + .../v8/test/mjsunit/regress/regress-488398.js | 18 + .../mjsunit/regress/regress-crbug-109362.js | 45 +- .../mjsunit/regress/regress-crbug-245480.js | 3 +- .../mjsunit/regress/regress-crbug-465298.js | 55 + .../mjsunit/regress/regress-crbug-469480.js | 13 + .../mjsunit/regress/regress-crbug-469768.js | 33 + .../mjsunit/regress/regress-crbug-471702.js | 7 + .../mjsunit/regress/regress-crbug-474297.js | 7 + .../mjsunit/regress/regress-crbug-477924.js | 16 + .../mjsunit/regress/regress-crbug-478011.js | 7 + .../mjsunit/regress/regress-crbug-480807.js | 22 + .../mjsunit/regress/regress-crbug-480819.js | 10 + .../mjsunit/regress/regress-crbug-484077.js | 7 + .../mjsunit/regress/regress-crbug-485410.js | 23 + .../mjsunit/regress/regress-crbug-485548-1.js | 33 + .../mjsunit/regress/regress-crbug-485548-2.js | 33 + .../regress-put-prototype-transition.js | 2 +- .../mjsunit/regress/regress-smi-scanning.js | 7 + .../regress/regress-typedarray-length.js | 112 + deps/v8/test/mjsunit/result-table-max.js | 105 + deps/v8/test/mjsunit/result-table-min.js | 105 + deps/v8/test/mjsunit/samevalue.js | 114 +- deps/v8/test/mjsunit/stack-traces-custom.js | 20 + deps/v8/test/mjsunit/strict-mode.js | 58 +- deps/v8/test/mjsunit/strong/classes.js | 63 +- .../mjsunit/strong/declaration-after-use.js | 28 +- deps/v8/test/mjsunit/strong/eval-direct.js | 19 + .../strong/implicit-conversions-inlining.js | 235 + .../mjsunit/strong/implicit-conversions.js | 300 + .../strong/mutually-recursive-classes.js | 229 + deps/v8/test/mjsunit/strong/switch.js | 110 + deps/v8/test/mjsunit/strong/undefined.js | 200 + deps/v8/test/mjsunit/strong/use-strong.js | 1 - deps/v8/test/mozilla/mozilla.status | 11 + deps/v8/test/test262-es6/README | 4 +- deps/v8/test/test262-es6/test262-es6.status | 802 +- deps/v8/test/test262-es6/testcfg.py | 10 +- deps/v8/test/test262/test262.status | 67 + .../platform/condition-variable-unittest.cc | 12 +- .../base/platform/platform-unittest.cc | 2 +- .../base/platform/semaphore-unittest.cc | 12 +- .../arm/instruction-selector-arm-unittest.cc | 441 +- .../instruction-selector-arm64-unittest.cc | 259 +- .../compiler/change-lowering-unittest.cc | 12 +- .../common-operator-reducer-unittest.cc | 200 +- .../compiler/common-operator-unittest.cc | 10 +- .../control-flow-optimizer-unittest.cc | 9 +- .../compiler/control-reducer-unittest.cc | 286 +- .../compiler/graph-reducer-unittest.cc | 109 +- .../compiler/graph-reducer-unittest.h | 24 + .../test/unittests/compiler/graph-unittest.h | 4 +- .../instruction-selector-ia32-unittest.cc | 138 +- .../compiler/instruction-selector-unittest.cc | 22 +- .../compiler/instruction-selector-unittest.h | 25 +- .../compiler/instruction-sequence-unittest.cc | 18 +- .../compiler/js-builtin-reducer-unittest.cc | 130 +- .../js-intrinsic-lowering-unittest.cc | 63 +- .../compiler/js-operator-unittest.cc | 197 +- .../compiler/js-type-feedback-unittest.cc | 277 + .../compiler/js-typed-lowering-unittest.cc | 266 +- .../compiler/liveness-analyzer-unittest.cc | 4 +- .../compiler/load-elimination-unittest.cc | 2 +- .../compiler/loop-peeling-unittest.cc | 50 +- .../machine-operator-reducer-unittest.cc | 2 +- .../compiler/machine-operator-unittest.cc | 18 +- .../instruction-selector-mips-unittest.cc | 30 + .../instruction-selector-mips64-unittest.cc | 30 + .../compiler/move-optimizer-unittest.cc | 74 +- .../unittests/compiler/node-cache-unittest.cc | 159 + .../compiler/node-matchers-unittest.cc | 220 +- .../unittests/compiler/node-test-utils.cc | 449 +- .../test/unittests/compiler/node-test-utils.h | 34 +- .../test/unittests/compiler/node-unittest.cc | 1 + deps/v8/test/unittests/compiler/ppc/OWNERS | 1 + .../unittests/compiler/scheduler-unittest.cc | 1924 ++-- .../simplified-operator-reducer-unittest.cc | 4 +- .../tail-call-optimization-unittest.cc | 160 + .../test/unittests/compiler/typer-unittest.cc | 97 +- .../x64/instruction-selector-x64-unittest.cc | 136 +- deps/v8/test/unittests/counters-unittest.cc | 200 + .../heap/gc-idle-time-handler-unittest.cc | 464 +- .../libplatform/task-queue-unittest.cc | 4 +- deps/v8/test/unittests/run-all-unittests.cc | 6 +- deps/v8/test/unittests/test-utils.cc | 43 +- deps/v8/test/unittests/test-utils.h | 4 +- deps/v8/test/unittests/unittests.gyp | 20 +- .../class-constructor-return-expected.txt | 94 + .../test/webkit/class-constructor-return.js | 217 + .../webkit/class-syntax-call-expected.txt | 16 + deps/v8/test/webkit/class-syntax-call.js | 40 + .../class-syntax-declaration-expected.txt | 43 + .../test/webkit/class-syntax-declaration.js | 83 + ...ss-syntax-default-constructor-expected.txt | 18 + .../class-syntax-default-constructor.js | 42 + .../class-syntax-expression-expected.txt | 41 + .../v8/test/webkit/class-syntax-expression.js | 81 + .../webkit/class-syntax-extends-expected.txt | 72 + deps/v8/test/webkit/class-syntax-extends.js | 111 + .../webkit/class-syntax-name-expected.txt | 125 + deps/v8/test/webkit/class-syntax-name.js | 115 + .../class-syntax-prototype-expected.txt | 50 + deps/v8/test/webkit/class-syntax-prototype.js | 91 + .../webkit/class-syntax-scoping-expected.txt | 10 + deps/v8/test/webkit/class-syntax-scoping.js | 39 + .../class-syntax-semicolon-expected.txt | 65 + deps/v8/test/webkit/class-syntax-semicolon.js | 94 + .../webkit/class-syntax-super-expected.txt | 46 + deps/v8/test/webkit/class-syntax-super.js | 96 + .../Object-getOwnPropertyNames-expected.txt | 12 +- .../fast/js/Object-getOwnPropertyNames.js | 12 +- .../fast/js/basic-strict-mode-expected.txt | 32 +- .../test/webkit/fast/js/basic-strict-mode.js | 18 +- .../fast/js/caller-property-expected.txt | 51 - .../v8/test/webkit/fast/js/caller-property.js | 85 - deps/v8/test/webkit/prototypes-expected.txt | 4 +- deps/v8/test/webkit/prototypes.js | 4 +- .../test/webkit/resources/standalone-pre.js | 20 +- .../strict-throw-type-error-expected.txt | 43 - .../v8/test/webkit/strict-throw-type-error.js | 73 - deps/v8/testing/commit_queue/config.json | 25 +- deps/v8/tools/OWNERS | 1 + deps/v8/tools/blink_tests/TestExpectations | 35 +- deps/v8/tools/check-name-clashes.py | 2 +- deps/v8/tools/compare-table-gen.js | 120 + deps/v8/tools/grokdump.py | 51 +- deps/v8/tools/gyp/v8.gyp | 181 +- deps/v8/tools/js2c.py | 123 +- deps/v8/tools/jsmin.py | 18 +- deps/v8/tools/logreader.js | 16 +- deps/v8/tools/oom_dump/oom_dump.cc | 42 +- deps/v8/tools/parser-shell.cc | 15 +- deps/v8/tools/presubmit.py | 5 + deps/v8/tools/release/chromium_roll.py | 39 +- deps/v8/tools/release/git_recipes.py | 16 +- deps/v8/tools/release/mergeinfo.py | 37 + deps/v8/tools/release/releases.py | 150 +- .../tools/release/search_related_commits.py | 218 + deps/v8/tools/release/test_scripts.py | 87 +- .../release/test_search_related_commits.py | 274 + deps/v8/tools/run-tests.py | 20 +- deps/v8/tools/run_perf.py | 13 +- deps/v8/tools/shell-utils.h | 4 +- deps/v8/tools/testrunner/local/execution.py | 9 +- deps/v8/tools/testrunner/local/pool.py | 34 +- .../tools/testrunner/local/pool_unittest.py | 10 +- deps/v8/tools/testrunner/local/progress.py | 17 +- deps/v8/tools/testrunner/local/statusfile.py | 2 +- deps/v8/tools/testrunner/local/testsuite.py | 10 +- deps/v8/tools/tickprocessor-driver.js | 3 +- deps/v8/tools/tickprocessor.js | 30 +- deps/v8/tools/try_perf.py | 37 +- deps/v8/tools/v8heapconst.py | 464 +- deps/v8/tools/whitespace.txt | 2 +- doc/api/_toc.markdown | 1 - doc/api/all.markdown | 1 - doc/api/buffer.markdown | 7 +- doc/api/smalloc.markdown | 146 - lib/buffer.js | 6 +- lib/domain.js | 6 +- lib/internal/buffer_old.js | 1139 -- lib/internal/smalloc.js | 92 - lib/v8.js | 8 +- node.gyp | 5 - src/async-wrap.cc | 1 - src/env-inl.h | 12 + src/env.h | 10 +- src/node.cc | 55 +- src/node.js | 9 +- src/node_buffer.cc | 241 +- src/node_buffer.h | 9 +- src/node_crypto.cc | 9 +- src/node_internals.h | 2 - src/node_v8.cc | 51 +- src/smalloc.cc | 660 -- src/smalloc.h | 147 - src/util-inl.h | 8 - src/util.h | 2 - test/addons/heap-profiler/binding.cc | 2 +- test/message/error_exit.out | 2 +- test/message/eval_messages.out | 4 +- test/message/stdin_messages.out | 4 +- test/message/throw_undefined.out | 2 +- test/message/vm_display_runtime_error.out | 2 +- test/message/vm_display_syntax_error.out | 2 +- .../message/vm_dont_display_runtime_error.out | 2 +- test/message/vm_dont_display_syntax_error.out | 2 +- test/parallel/test-buffer.js | 1 - test/parallel/test-smalloc.js | 331 - test/parallel/test-string-decoder.js | 3 - test/pummel/test-smalloc-alloc-segfault.js | 36 - test/pummel/test-smalloc-dispose-segfault.js | 30 - .../pummel/test-smalloc-sliceonto-segfault.js | 39 - tools/install.py | 1 - 986 files changed, 73380 insertions(+), 38196 deletions(-) create mode 100644 deps/v8/build/OWNERS create mode 100644 deps/v8/include/OWNERS create mode 100644 deps/v8/src/base/OWNERS create mode 100644 deps/v8/src/base/adapters.h create mode 100644 deps/v8/src/compilation-dependencies.cc create mode 100644 deps/v8/src/compilation-dependencies.h create mode 100644 deps/v8/src/compiler/OWNERS create mode 100644 deps/v8/src/compiler/control-equivalence.cc create mode 100644 deps/v8/src/compiler/frame-elider.cc create mode 100644 deps/v8/src/compiler/frame-elider.h create mode 100644 deps/v8/src/compiler/frame-states.cc create mode 100644 deps/v8/src/compiler/frame-states.h create mode 100644 deps/v8/src/compiler/tail-call-optimization.cc create mode 100644 deps/v8/src/compiler/tail-call-optimization.h create mode 100644 deps/v8/src/harmony-object.js create mode 100644 deps/v8/src/harmony-spread.js create mode 100644 deps/v8/src/heap/OWNERS create mode 100644 deps/v8/src/heap/identity-map.cc create mode 100644 deps/v8/src/heap/identity-map.h create mode 100644 deps/v8/src/ic/OWNERS delete mode 100644 deps/v8/src/isolate-inl.h create mode 100644 deps/v8/src/libplatform/OWNERS rename deps/v8/src/{optimizing-compiler-thread.cc => optimizing-compile-dispatcher.cc} (55%) rename deps/v8/src/{optimizing-compiler-thread.h => optimizing-compile-dispatcher.h} (69%) delete mode 100644 deps/v8/src/property-details-inl.h create mode 100644 deps/v8/src/signature.h create mode 100644 deps/v8/src/snapshot/OWNERS delete mode 100644 deps/v8/src/utils-inl.h delete mode 100644 deps/v8/test/cctest/compiler/graph-builder-tester.cc delete mode 100644 deps/v8/test/cctest/compiler/graph-tester.h delete mode 100644 deps/v8/test/cctest/compiler/test-node-algorithm.cc delete mode 100644 deps/v8/test/cctest/compiler/test-node-cache.cc create mode 100644 deps/v8/test/cctest/test-identity-map.cc delete mode 100644 deps/v8/test/cctest/test-ordered-hash-table.cc delete mode 100644 deps/v8/test/cctest/test-weaktypedarrays.cc create mode 100644 deps/v8/test/js-perf-test/Object/assign.js create mode 100644 deps/v8/test/js-perf-test/Object/run.js create mode 100644 deps/v8/test/js-perf-test/SpreadCalls/run.js create mode 100644 deps/v8/test/js-perf-test/SpreadCalls/spreadcalls.js create mode 100644 deps/v8/test/memory/Memory.json create mode 100644 deps/v8/test/message/for-in-let-loop-initializers-strict.js create mode 100644 deps/v8/test/message/for-in-let-loop-initializers-strict.out create mode 100644 deps/v8/test/message/for-in-loop-initializers-strict.js create mode 100644 deps/v8/test/message/for-in-loop-initializers-strict.out create mode 100644 deps/v8/test/message/for-of-let-loop-initializers.js create mode 100644 deps/v8/test/message/for-of-let-loop-initializers.out create mode 100644 deps/v8/test/message/for-of-loop-initializers-sloppy.js create mode 100644 deps/v8/test/message/for-of-loop-initializers-sloppy.out create mode 100644 deps/v8/test/message/for-of-loop-initializers-strict.js create mode 100644 deps/v8/test/message/for-of-loop-initializers-strict.out create mode 100644 deps/v8/test/message/formal-parameters-bad-rest.js create mode 100644 deps/v8/test/message/formal-parameters-bad-rest.out create mode 100644 deps/v8/test/message/formal-parameters-strict-body.js create mode 100644 deps/v8/test/message/formal-parameters-strict-body.out create mode 100644 deps/v8/test/message/formal-parameters-trailing-comma.js create mode 100644 deps/v8/test/message/formal-parameters-trailing-comma.out create mode 100644 deps/v8/test/message/regress/regress-3995.js create mode 100644 deps/v8/test/message/regress/regress-3995.out create mode 100644 deps/v8/test/message/strict-formal-parameters.js create mode 100644 deps/v8/test/message/strict-formal-parameters.out create mode 100644 deps/v8/test/mjsunit/asm/pointer-masking.js create mode 100644 deps/v8/test/mjsunit/asm/poppler/poppler.js create mode 100644 deps/v8/test/mjsunit/asm/sqlite3/sqlite-change-heap.js create mode 100644 deps/v8/test/mjsunit/asm/sqlite3/sqlite-pointer-masking.js create mode 100644 deps/v8/test/mjsunit/asm/sqlite3/sqlite-safe-heap.js create mode 100644 deps/v8/test/mjsunit/asm/sqlite3/sqlite.js create mode 100644 deps/v8/test/mjsunit/compare-table-eq.js create mode 100644 deps/v8/test/mjsunit/compare-table-gt.js create mode 100644 deps/v8/test/mjsunit/compare-table-gteq.js create mode 100644 deps/v8/test/mjsunit/compare-table-lt.js create mode 100644 deps/v8/test/mjsunit/compare-table-lteq.js create mode 100644 deps/v8/test/mjsunit/compare-table-ne.js create mode 100644 deps/v8/test/mjsunit/compare-table-seq.js create mode 100644 deps/v8/test/mjsunit/compare-table-sne.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-bool.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-bool2.js create mode 100644 deps/v8/test/mjsunit/compiler/generic-add.js create mode 100644 deps/v8/test/mjsunit/compiler/global-delete.js create mode 100644 deps/v8/test/mjsunit/compiler/global-var-delete.js create mode 100644 deps/v8/test/mjsunit/compiler/lazy-deopt-in-literal.js create mode 100644 deps/v8/test/mjsunit/compiler/named-load.js create mode 100644 deps/v8/test/mjsunit/compiler/named-store.js create mode 100644 deps/v8/test/mjsunit/debug-evaluate-locals-capturing.js create mode 100644 deps/v8/test/mjsunit/elide-double-hole-check-10.js create mode 100644 deps/v8/test/mjsunit/elide-double-hole-check-11.js create mode 100644 deps/v8/test/mjsunit/elide-double-hole-check-12.js create mode 100644 deps/v8/test/mjsunit/ensure-growing-store-learns.js create mode 100644 deps/v8/test/mjsunit/es6/block-scoping-top-level.js create mode 100644 deps/v8/test/mjsunit/es6/built-in-accessor-names.js create mode 100644 deps/v8/test/mjsunit/es6/function-prototype-name.js create mode 100644 deps/v8/test/mjsunit/es6/prototype-ordinary-objects.js create mode 100644 deps/v8/test/mjsunit/es6/throw-type-error-function-restrictions.js create mode 100644 deps/v8/test/mjsunit/for-in-opt.js create mode 100644 deps/v8/test/mjsunit/get-own-property-descriptor-non-objects.js create mode 100644 deps/v8/test/mjsunit/global-infinity-strict.js create mode 100644 deps/v8/test/mjsunit/global-infinity.js create mode 100644 deps/v8/test/mjsunit/global-nan-strict.js create mode 100644 deps/v8/test/mjsunit/global-nan.js create mode 100644 deps/v8/test/mjsunit/global-undefined-strict.js create mode 100644 deps/v8/test/mjsunit/global-undefined.js create mode 100644 deps/v8/test/mjsunit/harmony/array-copywithin.js create mode 100644 deps/v8/test/mjsunit/harmony/arrow-functions-lexical-arguments.js create mode 100644 deps/v8/test/mjsunit/harmony/classes-derived-return-type.js create mode 100644 deps/v8/test/mjsunit/harmony/classes-maps.js create mode 100644 deps/v8/test/mjsunit/harmony/object-assign.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-4056.js create mode 100644 deps/v8/test/mjsunit/harmony/spread-call-new-class.js create mode 100644 deps/v8/test/mjsunit/harmony/spread-call-new.js create mode 100644 deps/v8/test/mjsunit/harmony/spread-call.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarray-proto.js create mode 100644 deps/v8/test/mjsunit/harmony/typedarrays-every.js create mode 100644 deps/v8/test/mjsunit/keyed-load-hole-to-undefined.js create mode 100644 deps/v8/test/mjsunit/messages.js create mode 100644 deps/v8/test/mjsunit/prototype-changes.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4121.js create mode 100644 deps/v8/test/mjsunit/regress/regress-466993.js create mode 100644 deps/v8/test/mjsunit/regress/regress-469605b.js create mode 100644 deps/v8/test/mjsunit/regress/regress-472504.js create mode 100644 deps/v8/test/mjsunit/regress/regress-475705.js create mode 100644 deps/v8/test/mjsunit/regress/regress-476488.js create mode 100644 deps/v8/test/mjsunit/regress/regress-484544.js create mode 100644 deps/v8/test/mjsunit/regress/regress-488398.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-465298.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-469480.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-469768.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-471702.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-474297.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-477924.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-478011.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-480807.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-480819.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-484077.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-485410.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-485548-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-485548-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-smi-scanning.js create mode 100644 deps/v8/test/mjsunit/regress/regress-typedarray-length.js create mode 100644 deps/v8/test/mjsunit/result-table-max.js create mode 100644 deps/v8/test/mjsunit/result-table-min.js create mode 100644 deps/v8/test/mjsunit/stack-traces-custom.js create mode 100644 deps/v8/test/mjsunit/strong/eval-direct.js create mode 100644 deps/v8/test/mjsunit/strong/implicit-conversions-inlining.js create mode 100644 deps/v8/test/mjsunit/strong/implicit-conversions.js create mode 100644 deps/v8/test/mjsunit/strong/mutually-recursive-classes.js create mode 100644 deps/v8/test/mjsunit/strong/switch.js create mode 100644 deps/v8/test/mjsunit/strong/undefined.js create mode 100644 deps/v8/test/unittests/compiler/graph-reducer-unittest.h create mode 100644 deps/v8/test/unittests/compiler/js-type-feedback-unittest.cc create mode 100644 deps/v8/test/unittests/compiler/node-cache-unittest.cc create mode 100644 deps/v8/test/unittests/compiler/tail-call-optimization-unittest.cc create mode 100644 deps/v8/test/unittests/counters-unittest.cc create mode 100644 deps/v8/test/webkit/class-constructor-return-expected.txt create mode 100644 deps/v8/test/webkit/class-constructor-return.js create mode 100644 deps/v8/test/webkit/class-syntax-call-expected.txt create mode 100644 deps/v8/test/webkit/class-syntax-call.js create mode 100644 deps/v8/test/webkit/class-syntax-declaration-expected.txt create mode 100644 deps/v8/test/webkit/class-syntax-declaration.js create mode 100644 deps/v8/test/webkit/class-syntax-default-constructor-expected.txt create mode 100644 deps/v8/test/webkit/class-syntax-default-constructor.js create mode 100644 deps/v8/test/webkit/class-syntax-expression-expected.txt create mode 100644 deps/v8/test/webkit/class-syntax-expression.js create mode 100644 deps/v8/test/webkit/class-syntax-extends-expected.txt create mode 100644 deps/v8/test/webkit/class-syntax-extends.js create mode 100644 deps/v8/test/webkit/class-syntax-name-expected.txt create mode 100644 deps/v8/test/webkit/class-syntax-name.js create mode 100644 deps/v8/test/webkit/class-syntax-prototype-expected.txt create mode 100644 deps/v8/test/webkit/class-syntax-prototype.js create mode 100644 deps/v8/test/webkit/class-syntax-scoping-expected.txt create mode 100644 deps/v8/test/webkit/class-syntax-scoping.js create mode 100644 deps/v8/test/webkit/class-syntax-semicolon-expected.txt create mode 100644 deps/v8/test/webkit/class-syntax-semicolon.js create mode 100644 deps/v8/test/webkit/class-syntax-super-expected.txt create mode 100644 deps/v8/test/webkit/class-syntax-super.js delete mode 100644 deps/v8/test/webkit/fast/js/caller-property-expected.txt delete mode 100644 deps/v8/test/webkit/fast/js/caller-property.js delete mode 100644 deps/v8/test/webkit/strict-throw-type-error-expected.txt delete mode 100644 deps/v8/test/webkit/strict-throw-type-error.js create mode 100644 deps/v8/tools/OWNERS create mode 100644 deps/v8/tools/compare-table-gen.js create mode 100755 deps/v8/tools/release/mergeinfo.py create mode 100755 deps/v8/tools/release/search_related_commits.py create mode 100755 deps/v8/tools/release/test_search_related_commits.py delete mode 100644 doc/api/smalloc.markdown delete mode 100644 lib/internal/buffer_old.js delete mode 100644 lib/internal/smalloc.js delete mode 100644 src/smalloc.cc delete mode 100644 src/smalloc.h delete mode 100644 test/parallel/test-smalloc.js delete mode 100644 test/pummel/test-smalloc-alloc-segfault.js delete mode 100644 test/pummel/test-smalloc-dispose-segfault.js delete mode 100644 test/pummel/test-smalloc-sliceonto-segfault.js diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index 5b976b8b79f103..b0a9765b4436a5 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -76,6 +76,7 @@ Maxim Mossienko Michael Lutz Michael Smith Mike Gilbert +Mike Pennisi Nicolas Antonius Ernst Leopold Maria Kaiser Paolo Giarrusso Patrick Gansterer diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index fc0ea8eb6802bf..feaec2505e8359 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -32,9 +32,14 @@ v8_toolset_for_d8 = "host" # TODO(GYP): For now we only support 32-bit little-endian target builds from an # x64 Linux host. Eventually we need to support all of the host/target # configurations v8 runs on. -if (host_cpu == "x64" && host_os == "linux" && - (target_cpu == "arm" || target_cpu == "mipsel" || target_cpu == "x86")) { - snapshot_toolchain = "//build/toolchain/linux:clang_x86" +if (host_cpu == "x64" && host_os == "linux") { + if (target_cpu == "arm" || target_cpu == "mipsel" || target_cpu == "x86") { + snapshot_toolchain = "//build/toolchain/linux:clang_x86" + } else if (target_cpu == "x64") { + snapshot_toolchain = "//build/toolchain/linux:clang_x64" + } else { + assert(false, "Need environment for this arch") + } } else { snapshot_toolchain = default_toolchain } @@ -196,6 +201,8 @@ action("js2c") { inputs = [ "tools/jsmin.py" ] sources = [ + "src/macros.py", + "src/messages.h", "src/runtime.js", "src/v8natives.js", "src/symbol.js", @@ -222,7 +229,6 @@ action("js2c") { "src/mirror-debugger.js", "src/liveedit-debugger.js", "src/templates.js", - "src/macros.py", ] outputs = [ @@ -258,6 +264,7 @@ action("js2c_experimental") { sources = [ "src/macros.py", + "src/messages.h", "src/proxy.js", "src/generator.js", "src/harmony-array.js", @@ -265,7 +272,9 @@ action("js2c_experimental") { "src/harmony-typedarray.js", "src/harmony-tostring.js", "src/harmony-regexp.js", - "src/harmony-reflect.js" + "src/harmony-reflect.js", + "src/harmony-spread.js", + "src/harmony-object.js" ] outputs = [ @@ -287,6 +296,36 @@ action("js2c_experimental") { } } +action("js2c_extras") { + visibility = [ ":*" ] # Only targets in this file can depend on this. + + script = "tools/js2c.py" + + # The script depends on this other script, this rule causes a rebuild if it + # changes. + inputs = [ "tools/jsmin.py" ] + + sources = v8_extra_library_files + + outputs = [ + "$target_gen_dir/extras-libraries.cc", + ] + + args = [ + rebase_path("$target_gen_dir/extras-libraries.cc", + root_build_dir), + "EXTRAS", + ] + rebase_path(sources, root_build_dir) + + if (v8_use_external_startup_data) { + outputs += [ "$target_gen_dir/libraries_extras.bin" ] + args += [ + "--startup_blob", + rebase_path("$target_gen_dir/libraries_extras.bin", root_build_dir), + ] + } +} + action("d8_js2c") { visibility = [ ":*" ] # Only targets in this file can depend on this. @@ -312,11 +351,13 @@ if (v8_use_external_startup_data) { deps = [ ":js2c", ":js2c_experimental", + ":js2c_extras", ] sources = [ "$target_gen_dir/libraries.bin", "$target_gen_dir/libraries_experimental.bin", + "$target_gen_dir/libraries_extras.bin", ] outputs = [ @@ -330,7 +371,12 @@ if (v8_use_external_startup_data) { } action("postmortem-metadata") { - visibility = [ ":*" ] # Only targets in this file can depend on this. + # Only targets in this file and the top-level visibility target can + # depend on this. + visibility = [ + ":*", + "//:gn_visibility", + ] script = "tools/gen-postmortem-metadata.py" @@ -396,12 +442,14 @@ source_set("v8_nosnapshot") { deps = [ ":js2c", ":js2c_experimental", + ":js2c_extras", ":v8_base", ] sources = [ "$target_gen_dir/libraries.cc", "$target_gen_dir/experimental-libraries.cc", + "$target_gen_dir/extras-libraries.cc", "src/snapshot/snapshot-empty.cc", ] @@ -415,11 +463,17 @@ source_set("v8_nosnapshot") { } source_set("v8_snapshot") { - visibility = [ ":*" ] # Only targets in this file can depend on this. + # Only targets in this file and the top-level visibility target can + # depend on this. + visibility = [ + ":*", + "//:gn_visibility", + ] deps = [ ":js2c", ":js2c_experimental", + ":js2c_extras", ":run_mksnapshot", ":v8_base", ] @@ -427,6 +481,7 @@ source_set("v8_snapshot") { sources = [ "$target_gen_dir/libraries.cc", "$target_gen_dir/experimental-libraries.cc", + "$target_gen_dir/extras-libraries.cc", "$target_gen_dir/snapshot.cc", ] @@ -446,6 +501,7 @@ if (v8_use_external_startup_data) { deps = [ ":js2c", ":js2c_experimental", + ":js2c_extras", ":run_mksnapshot", ":v8_base", ":natives_blob", @@ -530,6 +586,8 @@ source_set("v8_base") { "src/codegen.h", "src/compilation-cache.cc", "src/compilation-cache.h", + "src/compilation-dependencies.cc", + "src/compilation-dependencies.h", "src/compilation-statistics.cc", "src/compilation-statistics.h", "src/compiler/access-builder.cc", @@ -555,6 +613,7 @@ source_set("v8_base") { "src/compiler/common-operator.h", "src/compiler/control-builders.cc", "src/compiler/control-builders.h", + "src/compiler/control-equivalence.cc", "src/compiler/control-equivalence.h", "src/compiler/control-flow-optimizer.cc", "src/compiler/control-flow-optimizer.h", @@ -562,6 +621,10 @@ source_set("v8_base") { "src/compiler/control-reducer.h", "src/compiler/diamond.h", "src/compiler/frame.h", + "src/compiler/frame-elider.cc", + "src/compiler/frame-elider.h", + "src/compiler/frame-states.cc", + "src/compiler/frame-states.h", "src/compiler/gap-resolver.cc", "src/compiler/gap-resolver.h", "src/compiler/graph-builder.h", @@ -665,6 +728,8 @@ source_set("v8_base") { "src/compiler/source-position.h", "src/compiler/state-values-utils.cc", "src/compiler/state-values-utils.h", + "src/compiler/tail-call-optimization.cc", + "src/compiler/tail-call-optimization.h", "src/compiler/typer.cc", "src/compiler/typer.h", "src/compiler/value-numbering-reducer.cc", @@ -758,6 +823,8 @@ source_set("v8_base") { "src/heap/heap-inl.h", "src/heap/heap.cc", "src/heap/heap.h", + "src/heap/identity-map.cc", + "src/heap/identity-map.h", "src/heap/incremental-marking.cc", "src/heap/incremental-marking.h", "src/heap/mark-compact-inl.h", @@ -887,8 +954,8 @@ source_set("v8_base") { "src/objects-printer.cc", "src/objects.cc", "src/objects.h", - "src/optimizing-compiler-thread.cc", - "src/optimizing-compiler-thread.h", + "src/optimizing-compile-dispatcher.cc", + "src/optimizing-compile-dispatcher.h", "src/ostreams.cc", "src/ostreams.h", "src/parser.cc", @@ -964,6 +1031,7 @@ source_set("v8_base") { "src/scopeinfo.h", "src/scopes.cc", "src/scopes.h", + "src/signature.h", "src/small-pointer-list.h", "src/smart-pointers.h", "src/snapshot/natives.h", @@ -1006,7 +1074,6 @@ source_set("v8_base") { "src/unicode-decoder.cc", "src/unicode-decoder.h", "src/unique.h", - "src/utils-inl.h", "src/utils.cc", "src/utils.h", "src/v8.cc", @@ -1325,6 +1392,7 @@ source_set("v8_libbase") { visibility = [ ":*" ] # Only targets in this file can depend on this. sources = [ + "src/base/adapters.h", "src/base/atomicops.h", "src/base/atomicops_internals_arm64_gcc.h", "src/base/atomicops_internals_arm_gcc.h", @@ -1398,17 +1466,15 @@ source_set("v8_libbase") { } else if (is_android) { defines += [ "CAN_USE_VFP_INSTRUCTIONS" ] - if (host_os == "mac") { - if (current_toolchain == host_toolchain) { + if (current_toolchain == host_toolchain) { + libs = [ "dl", "rt" ] + if (host_os == "mac") { sources += [ "src/base/platform/platform-macos.cc" ] } else { sources += [ "src/base/platform/platform-linux.cc" ] } } else { sources += [ "src/base/platform/platform-linux.cc" ] - if (current_toolchain == host_toolchain) { - defines += [ "V8_LIBRT_NOT_AVAILABLE" ] - } } } else if (is_mac) { sources += [ "src/base/platform/platform-macos.cc" ] @@ -1524,7 +1590,7 @@ if (component_mode == "shared_library") { ":toolchain", ] - direct_dependent_configs = [ ":external_config" ] + public_configs = [ ":external_config" ] libs = [] if (is_android && current_toolchain != host_toolchain) { @@ -1551,7 +1617,7 @@ if (component_mode == "shared_library") { ] } - direct_dependent_configs = [ ":external_config" ] + public_configs = [ ":external_config" ] } } @@ -1568,7 +1634,10 @@ if ((current_toolchain == host_toolchain && v8_toolset_for_d8 == "host") || configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] configs += [ - ":internal_config", + # Note: don't use :internal_config here because this target will get + # the :external_config applied to it by virtue of depending on :v8, and + # you can't have both applied to the same target. + ":internal_config_base", ":features", ":toolchain", ] diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index 69ecd92ba61c8e..c665f1763eb431 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,481 @@ +2015-05-11: Version 4.4.63 + + Let Runtime_GrowArrayElements accept non-Smi numbers as |key| (Chromium + issue 485410). + + Make one copy for all TypedArray methods (issue 4085). + + Performance and stability improvements on all platforms. + + +2015-05-09: Version 4.4.62 + + [turbofan] Fix handling of OsrLoopEntry in ControlReducer::ConnectNTL() + (Chromium issue 485908). + + Performance and stability improvements on all platforms. + + +2015-05-08: Version 4.4.61 + + Performance and stability improvements on all platforms. + + +2015-05-08: Version 4.4.60 + + Performance and stability improvements on all platforms. + + +2015-05-08: Version 4.4.59 + + Performance and stability improvements on all platforms. + + +2015-05-07: Version 4.4.58 + + TypedArray.prototype.every method (issue 3578). + + [V8] Reland https://codereview.chromium.org/1121833003/ (Chromium issue + 480652). + + Performance and stability improvements on all platforms. + + +2015-05-07: Version 4.4.57 + + Performance and stability improvements on all platforms. + + +2015-05-06: Version 4.4.56 + + Shard v8_base.lib on Windows to avoid 2G .lib limit (Chromium issue + 485155). + + Implement a 'trial parse' step, that will abort pre-parsing excessively + long and trivial functions, so that they can be eagerly compiled after + all. This essentially allows the parser to renege on its earlier + decision to lazy-parse, if additional information suggests it was a bad + decision (Chromium issue 470930). + + Performance and stability improvements on all platforms. + + +2015-05-06: Version 4.4.55 + + Handle the case when derived constructor is [[Call]]ed with 0 args + (Chromium issue 474783). + + freed_nodes in global-handles should be addititive (Chromium issues + 479796, 484671). + + [V8] Reland https://codereview.chromium.org/1100993003/ (Chromium issue + 480652). + + [es6] When comparing two symbols we may need to throw a TypeError (issue + 4073). + + Performance and stability improvements on all platforms. + + +2015-05-06: Version 4.4.54 + + Performance and stability improvements on all platforms. + + +2015-05-05: Version 4.4.53 + + Performance and stability improvements on all platforms. + + +2015-05-05: Version 4.4.52 + + Performance and stability improvements on all platforms. + + +2015-05-04: Version 4.4.51 + + Performance and stability improvements on all platforms. + + +2015-05-04: Version 4.4.50 + + Performance and stability improvements on all platforms. + + +2015-05-01: Version 4.4.49 + + Performance and stability improvements on all platforms. + + +2015-05-01: Version 4.4.48 + + [V8] Use previous token location as EOS token location (Chromium issue + 480652). + + Implement kToBeExecutedOnceCodeAge (Chromium issue 470930). + + Performance and stability improvements on all platforms. + + +2015-04-30: Version 4.4.47 + + Performance and stability improvements on all platforms. + + +2015-04-30: Version 4.4.46 + + Performance and stability improvements on all platforms. + + +2015-04-29: Version 4.4.45 + + Performance and stability improvements on all platforms. + + +2015-04-29: Version 4.4.44 + + Pass ArrayBuffer::Allocator via Isolate::CreateParams. + + Fix unobservable constructor replacement on prototype maps (Chromium + issue 478522). + + Performance and stability improvements on all platforms. + + +2015-04-29: Version 4.4.43 + + Performance and stability improvements on all platforms. + + +2015-04-28: Version 4.4.42 + + MIPS: Fix FP load/store with large offsets from base register (Chromium + issue 481519). + + Extending v8::GetHeapStatistics to return total available size (Chromium + issue 476013). + + Performance and stability improvements on all platforms. + + +2015-04-28: Version 4.4.41 + + Performance and stability improvements on all platforms. + + +2015-04-28: Version 4.4.40 + + Do more to avoid last-resort stop-the-world GC (Chromium issue 481433). + + Performance and stability improvements on all platforms. + + +2015-04-27: Version 4.4.39 + + Performance and stability improvements on all platforms. + + +2015-04-27: Version 4.4.38 + + Performance and stability improvements on all platforms. + + +2015-04-25: Version 4.4.37 + + Performance and stability improvements on all platforms. + + +2015-04-24: Version 4.4.36 + + Performance and stability improvements on all platforms. + + +2015-04-24: Version 4.4.35 + + Performance and stability improvements on all platforms. + + +2015-04-24: Version 4.4.34 + + Performance and stability improvements on all platforms. + + +2015-04-23: Version 4.4.33 + + Performance and stability improvements on all platforms. + + +2015-04-23: Version 4.4.32 + + Performance and stability improvements on all platforms. + + +2015-04-23: Version 4.4.31 + + Performance and stability improvements on all platforms. + + +2015-04-22: Version 4.4.30 + + Performance and stability improvements on all platforms. + + +2015-04-22: Version 4.4.29 + + Performance and stability improvements on all platforms. + + +2015-04-21: Version 4.4.28 + + Performance and stability improvements on all platforms. + + +2015-04-21: Version 4.4.27 + + Performance and stability improvements on all platforms. + + +2015-04-20: Version 4.4.26 + + Allow for accessing an ArrayBuffer contents without externalizing it. + + Remove support for externally backed elements from the API (issue 3996). + + Deprecate 3-args ResourceConstraints::ConfigureDefaults. + + Indicate that low-memory-notificatin triggered GCs are "forced". + + Adding missing V8_EXPORT flag in SpaceStatistics class in v8.h (Chromium + issues 466141, 476013). + + Performance and stability improvements on all platforms. + + +2015-04-20: Version 4.4.25 + + Turn off SupportsFlexibleFloorAndRound for Arm64 due to a bug (Chromium + issue 476477). + + Adding V8 api to get memory statistics of spaces in V8::Heap (Chromium + issues 466141, 476013). + + Performance and stability improvements on all platforms. + + +2015-04-17: Version 4.4.24 + + Performance and stability improvements on all platforms. + + +2015-04-17: Version 4.4.23 + + Don't crash when reporting an access check failure for a detached global + proxy (Chromium issue 475884). + + Use smaller heap growing factor in idle notification to start + incremental marking when there is idle time >16ms (Chromium issue + 477323). + + Performance and stability improvements on all platforms. + + +2015-04-16: Version 4.4.22 + + Reduce regexp compiler stack size when not optimizing regexps (Chromium + issue 475705). + + Performance and stability improvements on all platforms. + + +2015-04-15: Version 4.4.21 + + Remove support for specifying the number of available threads. + + When converting Maybe and MaybeLocal values with a check, always check. + + Performance and stability improvements on all platforms. + + +2015-04-15: Version 4.4.20 + + Performance and stability improvements on all platforms. + + +2015-04-15: Version 4.4.19 + + Reland "Remove support for thread-based recompilation" (issue 3608). + + Performance and stability improvements on all platforms. + + +2015-04-14: Version 4.4.18 + + Reland "Remove support for thread-based recompilation" (issue 3608). + + Performance and stability improvements on all platforms. + + +2015-04-14: Version 4.4.17 + + Performance and stability improvements on all platforms. + + +2015-04-13: Version 4.4.16 + + Expose ArrayBufferView::HasBuffer (issue 3996). + + Performance and stability improvements on all platforms. + + +2015-04-13: Version 4.4.15 + + Performance and stability improvements on all platforms. + + +2015-04-12: Version 4.4.14 + + Performance and stability improvements on all platforms. + + +2015-04-12: Version 4.4.13 + + Performance and stability improvements on all platforms. + + +2015-04-10: Version 4.4.12 + + Performance and stability improvements on all platforms. + + +2015-04-10: Version 4.4.11 + + Performance and stability improvements on all platforms. + + +2015-04-10: Version 4.4.10 + + Don't #define snprintf in VS2015 - it's illegal and unneeded (Chromium + issue 440500). + + Performance and stability improvements on all platforms. + + +2015-04-09: Version 4.4.9 + + Performance and stability improvements on all platforms. + + +2015-04-09: Version 4.4.8 + + Performance and stability improvements on all platforms. + + +2015-04-08: Version 4.4.7 + + Make GetDebugContext a bit more robust (Chromium issue 474538). + + Performance and stability improvements on all platforms. + + +2015-04-08: Version 4.4.6 + + Performance and stability improvements on all platforms. + + +2015-04-08: Version 4.4.5 + + More robust when allocation fails during compaction (Chromium issue + 473307). + + MIPS: JSEntryTrampoline: check for stack space before pushing arguments + (Chromium issue 469768). + + Performance and stability improvements on all platforms. + + +2015-04-07: Version 4.4.4 + + Debugger: remove debug command API. + + Remove support for thread-based recompilation (issue 3608). + + JSEntryTrampoline: check for stack space before pushing arguments + (Chromium issue 469768). + + Performance and stability improvements on all platforms. + + +2015-04-07: Version 4.4.3 + + Performance and stability improvements on all platforms. + + +2015-04-06: Version 4.4.2 + + Performance and stability improvements on all platforms. + + +2015-04-06: Version 4.4.1 + + Support for typed arrays added to Heap::RightTrimFixedArray() (Chromium + issue 472513). + + Expose an API on ArrayBufferView to copy out content w/o changing the + buffer (issue 3996). + + Performance and stability improvements on all platforms. + + +2015-04-02: Version 4.3.66 + + Reland: Fix JSON parser Handle leak (previous CL 1041483004) (issue + 3976, Chromium issue 472504). + + Turn off overapproximation of the weak closure again (issue 3862). + + Performance and stability improvements on all platforms. + + +2015-04-01: Version 4.3.65 + + Performance and stability improvements on all platforms. + + +2015-04-01: Version 4.3.64 + + Performance and stability improvements on all platforms. + + +2015-04-01: Version 4.3.63 + + [V8] Don't ignore sourceURL comment in inline scripts in .stack (issue + 3920). + + Deprecate IdleNotification(). + + Remove --harmony-numeric-literal flag. + + Performance and stability improvements on all platforms. + + +2015-03-31: Version 4.3.62 + + Put newspace evacuation in an EvacuationScope (Chromium issue 471554). + + Fix libdl dependency on Android and remove librt hack (Chromium issue + 469973). + + Ensure that GC idle notifications either make progress or stop + requesting more GCs (Chromium issue 470615). + + Layout descriptor must be trimmed when corresponding descriptors array + is trimmed to stay in sync (Chromium issue 470804). + + Fix JSON parser Handle leak (issue 3976). + + Performance and stability improvements on all platforms. + + 2015-03-30: Version 4.3.61 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index 42606acfcfbbf0..711cc53b7e3574 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -8,17 +8,17 @@ vars = { deps = { "v8/build/gyp": - Var("git_url") + "/external/gyp.git" + "@" + "d174d75bf69c682cb62af9187879e01513b35e52", + Var("git_url") + "/external/gyp.git" + "@" + "0bb67471bca068996e15b56738fa4824dfa19de0", "v8/third_party/icu": - Var("git_url") + "/chromium/deps/icu.git" + "@" + "7c81740601355556e630da515b74d889ba2f8d08", + Var("git_url") + "/chromium/deps/icu.git" + "@" + "f8c0e585b0a046d83d72b5d37356cb50d5b2031a", "v8/buildtools": - Var("git_url") + "/chromium/buildtools.git" + "@" + "3b302fef93f7cc58d9b8168466905237484b2772", + Var("git_url") + "/chromium/buildtools.git" + "@" + "b0ede9c89f9d5fbe5387d961ad4c0ec665b6c821", "v8/testing/gtest": Var("git_url") + "/external/googletest.git" + "@" + "be1868139ffe0ccd0e8e3b37292b84c821d9c8ad", "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" + "@" + "ea2f0a2d96ffc6f5a51c034db704ccc1a6543156", + Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "5bab78c6ced45a71a8e095a09697ca80492e57e1", } deps_os = { diff --git a/deps/v8/Makefile b/deps/v8/Makefile index 055a57d286c9ce..db6cf3b7da534a 100644 --- a/deps/v8/Makefile +++ b/deps/v8/Makefile @@ -97,6 +97,10 @@ endif ifeq ($(slowdchecks), off) GYPFLAGS += -Dv8_enable_slow_dchecks=0 endif +# debugsymbols=on +ifeq ($(debugsymbols), on) + GYPFLAGS += -Drelease_extra_cflags=-ggdb3 +endif # gdbjit=on/off ifeq ($(gdbjit), on) GYPFLAGS += -Dv8_enable_gdbjit=1 diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index 5b3d58d3ba50d8..34e09b8ec51b25 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -249,12 +249,16 @@ def GetPreferredTryMasters(project, change): 'v8_linux_gcc_compile_rel': set(['defaulttests']), 'v8_linux64_rel': set(['defaulttests']), 'v8_linux64_asan_rel': set(['defaulttests']), + 'v8_linux64_avx2_rel': set(['defaulttests']), 'v8_win_rel': set(['defaulttests']), 'v8_win_compile_dbg': set(['defaulttests']), + 'v8_win_nosnap_shared_compile_rel': set(['defaulttests']), 'v8_win64_rel': set(['defaulttests']), 'v8_mac_rel': set(['defaulttests']), 'v8_linux_arm_rel': set(['defaulttests']), 'v8_linux_arm64_rel': set(['defaulttests']), + 'v8_linux_mipsel_compile_rel': set(['defaulttests']), + 'v8_linux_mips64el_compile_rel': set(['defaulttests']), 'v8_android_arm_compile_rel': set(['defaulttests']), 'v8_linux_chromium_gn_rel': set(['defaulttests']), }, diff --git a/deps/v8/WATCHLISTS b/deps/v8/WATCHLISTS index 9c2bce9c5589c2..64771bc27dc61e 100644 --- a/deps/v8/WATCHLISTS +++ b/deps/v8/WATCHLISTS @@ -36,11 +36,23 @@ 'public_api': { 'filepath': 'include/', }, + 'snapshot': { + 'filepath': 'src/snapshot/', + }, + 'debugger': { + 'filepath': 'src/debug\.(cc|h)|src/.*-debugger\.js|src/runtime/runtime-debug\.cc', + }, }, 'WATCHLISTS': { 'public_api': [ 'phajdan.jr@chromium.org', ], + 'snapshot': [ + 'yangguo@chromium.org', + ], + 'debugger': [ + 'yangguo@chromium.org', + ], }, } diff --git a/deps/v8/build/OWNERS b/deps/v8/build/OWNERS new file mode 100644 index 00000000000000..0e56af312942fa --- /dev/null +++ b/deps/v8/build/OWNERS @@ -0,0 +1 @@ +machenbach@chromium.org diff --git a/deps/v8/build/android.gypi b/deps/v8/build/android.gypi index 533250e7f56f96..7bbf12eed6d99b 100644 --- a/deps/v8/build/android.gypi +++ b/deps/v8/build/android.gypi @@ -69,9 +69,6 @@ 'android_stlport_libs': '<(android_stlport)/libs', }], ], - # Enable to use the system stlport, otherwise statically - # link the NDK one? - 'use_system_stlport%': '<(android_webview_build)', 'android_stlport_library': 'stlport_static', }, # variables 'target_defaults': { @@ -108,6 +105,7 @@ # Note: This include is in cflags to ensure that it comes after # all of the includes. '-I<(android_include)', + '-I<(android_stlport_include)', ], 'cflags_cc': [ '-Wno-error=non-virtual-dtor', # TODO(michaelbai): Fix warnings. @@ -127,6 +125,8 @@ 'ldflags': [ '-nostdlib', '-Wl,--no-undefined', + '-Wl,-rpath-link=<(android_lib)', + '-L<(android_lib)', ], 'libraries!': [ '-lrt', # librt is built into Bionic. @@ -146,12 +146,6 @@ '-lm', ], 'conditions': [ - ['android_webview_build==0', { - 'ldflags': [ - '-Wl,-rpath-link=<(android_lib)', - '-L<(android_lib)', - ], - }], ['target_arch == "arm"', { 'ldflags': [ # Enable identical code folding to reduce size. @@ -164,48 +158,23 @@ '-mtune=cortex-a8', '-mfpu=vfp3', ], + 'ldflags': [ + '-L<(android_stlport_libs)/armeabi-v7a', + ], }], - # NOTE: The stlport header include paths below are specified in - # cflags rather than include_dirs because they need to come - # after include_dirs. Think of them like system headers, but - # don't use '-isystem' because the arm-linux-androideabi-4.4.3 - # toolchain (circa Gingerbread) will exhibit strange errors. - # The include ordering here is important; change with caution. - ['use_system_stlport==0', { - 'cflags': [ - '-I<(android_stlport_include)', + ['target_arch=="arm" and arm_version < 7', { + 'ldflags': [ + '-L<(android_stlport_libs)/armeabi', ], - 'conditions': [ - ['target_arch=="arm" and arm_version==7', { - 'ldflags': [ - '-L<(android_stlport_libs)/armeabi-v7a', - ], - }], - ['target_arch=="arm" and arm_version < 7', { - 'ldflags': [ - '-L<(android_stlport_libs)/armeabi', - ], - }], - ['target_arch=="mipsel"', { - 'ldflags': [ - '-L<(android_stlport_libs)/mips', - ], - }], - ['target_arch=="ia32" or target_arch=="x87"', { - 'ldflags': [ - '-L<(android_stlport_libs)/x86', - ], - }], - ['target_arch=="x64"', { - 'ldflags': [ - '-L<(android_stlport_libs)/x86_64', - ], - }], - ['target_arch=="arm64"', { - 'ldflags': [ - '-L<(android_stlport_libs)/arm64-v8a', - ], - }], + }], + ['target_arch=="x64"', { + 'ldflags': [ + '-L<(android_stlport_libs)/x86_64', + ], + }], + ['target_arch=="arm64"', { + 'ldflags': [ + '-L<(android_stlport_libs)/arm64-v8a', ], }], ['target_arch=="ia32" or target_arch=="x87"', { @@ -216,6 +185,9 @@ 'cflags': [ '-fno-stack-protector', ], + 'ldflags': [ + '-L<(android_stlport_libs)/x86', + ], }], ['target_arch=="mipsel"', { # The mips toolchain currently has problems with stack-protector. @@ -226,6 +198,9 @@ 'cflags': [ '-fno-stack-protector', ], + 'ldflags': [ + '-L<(android_stlport_libs)/mips', + ], }], ['(target_arch=="arm" or target_arch=="arm64" or target_arch=="x64") and component!="shared_library"', { 'cflags': [ diff --git a/deps/v8/build/features.gypi b/deps/v8/build/features.gypi index 5c60273a61bc6f..2eadca338438dc 100644 --- a/deps/v8/build/features.gypi +++ b/deps/v8/build/features.gypi @@ -102,7 +102,7 @@ 'DebugBaseCommon': { 'abstract': 1, 'variables': { - 'v8_enable_handle_zapping%': 0, + 'v8_enable_handle_zapping%': 1, }, 'conditions': [ ['v8_enable_handle_zapping==1', { @@ -112,7 +112,7 @@ }, # Debug 'Release': { 'variables': { - 'v8_enable_handle_zapping%': 1, + 'v8_enable_handle_zapping%': 0, }, 'conditions': [ ['v8_enable_handle_zapping==1', { diff --git a/deps/v8/build/standalone.gypi b/deps/v8/build/standalone.gypi index d95cb7a0a25304..7c967206734d77 100644 --- a/deps/v8/build/standalone.gypi +++ b/deps/v8/build/standalone.gypi @@ -35,12 +35,17 @@ 'component%': 'static_library', 'clang_dir%': 'third_party/llvm-build/Release+Asserts', 'clang_xcode%': 0, + # Track where uninitialized memory originates from. From fastest to + # slowest: 0 - no tracking, 1 - track only the initial allocation site, 2 + # - track the chain of stores leading from allocation site to use site. + 'msan_track_origins%': 1, 'visibility%': 'hidden', 'v8_enable_backtrace%': 0, 'v8_enable_i18n_support%': 1, 'v8_deprecation_warnings': 1, 'msvs_multi_core_compile%': '1', 'mac_deployment_target%': '10.5', + 'release_extra_cflags%': '', 'variables': { 'variables': { 'variables': { @@ -65,6 +70,10 @@ 'host_arch%': '<(host_arch)', 'target_arch%': '<(target_arch)', 'v8_target_arch%': '<(target_arch)', + 'asan%': 0, + 'lsan%': 0, + 'msan%': 0, + 'tsan%': 0, # goma settings. # 1 to use goma. @@ -86,6 +95,10 @@ 'werror%': '-Werror', 'use_goma%': '<(use_goma)', 'gomadir%': '<(gomadir)', + 'asan%': '<(asan)', + 'lsan%': '<(lsan)', + 'msan%': '<(msan)', + 'tsan%': '<(tsan)', # .gyp files or targets should set v8_code to 1 if they build V8 specific # code, as opposed to external code. This variable is used to control such @@ -157,6 +170,10 @@ }, { 'host_clang%': '0', }], + ['asan==1 or lsan==1 or msan==1 or tsan==1', { + 'clang%': 1, + 'use_allocator%': 'none', + }], ], # Default ARM variable settings. 'arm_version%': 'default', @@ -196,7 +213,7 @@ # Xcode insists on this empty entry. }, 'Release': { - # Xcode insists on this empty entry. + 'cflags+': ['<@(release_extra_cflags)'], }, }, 'conditions':[ @@ -226,6 +243,7 @@ '-Wall', '-Werror', '-Wextra', + '-Wshorten-64-to-32', ], 'cflags+': [ # Clang considers the `register` keyword as deprecated, but @@ -302,6 +320,36 @@ ], }, }], + ['msan==1 and OS!="mac"', { + 'target_defaults': { + 'cflags_cc+': [ + '-fno-omit-frame-pointer', + '-gline-tables-only', + '-fsanitize=memory', + '-fsanitize-memory-track-origins=<(msan_track_origins)', + '-fPIC', + ], + 'cflags+': [ + '-fPIC', + ], + 'cflags!': [ + '-fno-exceptions', + '-fomit-frame-pointer', + ], + 'ldflags': [ + '-fsanitize=memory', + ], + 'defines': [ + 'MEMORY_SANITIZER', + ], + 'dependencies': [ + # Use libc++ (third_party/libc++ and third_party/libc++abi) instead of + # stdlibc++ as standard library. This is intended to use for instrumented + # builds. + '<(DEPTH)/buildtools/third_party/libc++/libc++.gyp:libcxx_proxy', + ], + }, + }], ['asan==1 and OS=="mac"', { 'target_defaults': { 'xcode_settings': { @@ -342,6 +390,11 @@ 'cflags_cc': [ '-Wnon-virtual-dtor', '-fno-rtti', '-std=gnu++0x' ], 'ldflags': [ '-pthread', ], 'conditions': [ + # TODO(arm64): It'd be nice to enable this for arm64 as well, + # but the Assembler requires some serious fixing first. + [ 'clang==1 and v8_target_arch=="x64"', { + 'cflags': [ '-Wshorten-64-to-32' ], + }], [ 'host_arch=="ppc64" and OS!="aix"', { 'cflags': [ '-mminimal-toc' ], }], diff --git a/deps/v8/build/toolchain.gypi b/deps/v8/build/toolchain.gypi index f1f46c89c71830..ed2616bbdb92b3 100644 --- a/deps/v8/build/toolchain.gypi +++ b/deps/v8/build/toolchain.gypi @@ -131,14 +131,6 @@ # Link-Time Optimizations 'use_lto%': 0, - - 'variables': { - # This is set when building the Android WebView inside the Android build - # system, using the 'android' gyp backend. - 'android_webview_build%': 0, - }, - # Copy it out one scope. - 'android_webview_build%': '<(android_webview_build)', }, 'conditions': [ ['host_arch=="ia32" or host_arch=="x64" or \ @@ -203,7 +195,7 @@ 'target_conditions': [ ['_toolset=="host"', { 'conditions': [ - ['v8_target_arch==host_arch and android_webview_build==0', { + ['v8_target_arch==host_arch', { # Host built with an Arm CXX compiler. 'conditions': [ [ 'arm_version==7', { @@ -246,7 +238,7 @@ }], # _toolset=="host" ['_toolset=="target"', { 'conditions': [ - ['v8_target_arch==target_arch and android_webview_build==0', { + ['v8_target_arch==target_arch', { # Target built with an Arm CXX compiler. 'conditions': [ [ 'arm_version==7', { @@ -370,7 +362,7 @@ 'target_conditions': [ ['_toolset=="target"', { 'conditions': [ - ['v8_target_arch==target_arch and android_webview_build==0', { + ['v8_target_arch==target_arch', { # Target built with a Mips CXX compiler. 'cflags': [ '-EB', @@ -557,7 +549,7 @@ 'target_conditions': [ ['_toolset=="target"', { 'conditions': [ - ['v8_target_arch==target_arch and android_webview_build==0', { + ['v8_target_arch==target_arch', { # Target built with a Mips CXX compiler. 'cflags': [ '-EL', @@ -761,7 +753,7 @@ 'target_conditions': [ ['_toolset=="target"', { 'conditions': [ - ['v8_target_arch==target_arch and android_webview_build==0', { + ['v8_target_arch==target_arch', { 'cflags': [ '-EL', '-Wno-error=array-bounds', # Workaround https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56273 @@ -929,12 +921,6 @@ 'cflags': [ '-m32' ], 'ldflags': [ '-m32' ], }], - # Enable feedback-directed optimisation when building in android. - [ 'android_webview_build == 1', { - 'aosp_build_settings': { - 'LOCAL_FDO_SUPPORT': 'true', - }, - }], ], 'xcode_settings': { 'ARCHS': [ 'i386' ], @@ -960,12 +946,6 @@ 'cflags': [ '-m64' ], 'ldflags': [ '-m64' ], }], - # Enable feedback-directed optimisation when building in android. - [ 'android_webview_build == 1', { - 'aosp_build_settings': { - 'LOCAL_FDO_SUPPORT': 'true', - }, - }], ] }], ], diff --git a/deps/v8/include/OWNERS b/deps/v8/include/OWNERS new file mode 100644 index 00000000000000..efa3b936d525df --- /dev/null +++ b/deps/v8/include/OWNERS @@ -0,0 +1,2 @@ +danno@chromium.org +jochen@chromium.org diff --git a/deps/v8/include/v8-debug.h b/deps/v8/include/v8-debug.h index ae11a2aeea74fa..4074b938d2c0ed 100644 --- a/deps/v8/include/v8-debug.h +++ b/deps/v8/include/v8-debug.h @@ -22,7 +22,6 @@ enum DebugEvent { CompileError = 6, PromiseEvent = 7, AsyncTaskEvent = 8, - BreakForCommand = 9 }; @@ -170,13 +169,6 @@ class V8_EXPORT Debug { // Check if a debugger break is scheduled in the given isolate. static bool CheckDebugBreak(Isolate* isolate); - // Break execution of JavaScript in the given isolate (this method - // can be invoked from a non-VM thread) for further client command - // execution on a VM thread. Client data is then passed in - // EventDetails to EventCallback2 at the moment when the VM actually - // stops. - static void DebugBreakForCommand(Isolate* isolate, ClientData* data); - // Message based interface. The message protocol is JSON. static void SetMessageHandler(MessageHandler handler); diff --git a/deps/v8/include/v8-profiler.h b/deps/v8/include/v8-profiler.h index f9439c2e629445..82a14d66003001 100644 --- a/deps/v8/include/v8-profiler.h +++ b/deps/v8/include/v8-profiler.h @@ -5,6 +5,7 @@ #ifndef V8_V8_PROFILER_H_ #define V8_V8_PROFILER_H_ +#include #include "v8.h" /** @@ -17,6 +18,34 @@ struct HeapStatsUpdate; typedef uint32_t SnapshotObjectId; + +struct CpuProfileDeoptFrame { + int script_id; + size_t position; +}; + +} // namespace v8 + +#ifdef V8_OS_WIN +template class V8_EXPORT std::vector; +#endif + +namespace v8 { + +struct V8_EXPORT CpuProfileDeoptInfo { + /** A pointer to a static string owned by v8. */ + const char* deopt_reason; + std::vector stack; +}; + +} // namespace v8 + +#ifdef V8_OS_WIN +template class V8_EXPORT std::vector; +#endif + +namespace v8 { + /** * CpuProfileNode represents a node in a call graph. */ @@ -85,6 +114,9 @@ class V8_EXPORT CpuProfileNode { /** Retrieves a child node by index. */ const CpuProfileNode* GetChild(int index) const; + /** Retrieves deopt infos for the node. */ + const std::vector& GetDeoptInfos() const; + static const int kNoLineNumberInfo = Message::kNoLineNumberInfo; static const int kNoColumnNumberInfo = Message::kNoColumnInfo; }; diff --git a/deps/v8/include/v8-util.h b/deps/v8/include/v8-util.h index b01d527754b5ce..6454a19b7e4fe1 100644 --- a/deps/v8/include/v8-util.h +++ b/deps/v8/include/v8-util.h @@ -117,26 +117,25 @@ class DefaultGlobalMapTraits : public StdMapTraits { public: // Weak callback & friends: static const PersistentContainerCallbackType kCallbackType = kNotWeak; - typedef PersistentValueMap > MapType; - typedef void WeakCallbackInfoType; + typedef GlobalValueMap > MapType; + typedef void WeakCallbackDataType; - static WeakCallbackInfoType* WeakCallbackParameter(MapType* map, const K& key, + static WeakCallbackDataType* WeakCallbackParameter(MapType* map, const K& key, Local value) { return nullptr; } static MapType* MapFromWeakCallbackInfo( - const WeakCallbackInfo& data) { + const WeakCallbackInfo& data) { return nullptr; } static K KeyFromWeakCallbackInfo( - const WeakCallbackInfo& data) { + const WeakCallbackInfo& data) { return K(); } - static void DisposeCallbackData(WeakCallbackInfoType* data) {} + static void DisposeCallbackData(WeakCallbackDataType* data) {} static void Dispose(Isolate* isolate, Global value, K key) {} - static void DisposeWeak(Isolate* isolate, - const WeakCallbackInfo& data, - K key) {} + // This is a second pass callback, so SetSecondPassCallback cannot be called. + static void DisposeWeak(const WeakCallbackInfo& data) {} private: template @@ -453,7 +452,7 @@ class GlobalValueMap : public PersistentValueMapBase { : WeakCallbackType::kParameter; Local value(Local::New(this->isolate(), *persistent)); persistent->template SetWeak( - Traits::WeakCallbackParameter(this, key, value), WeakCallback, + Traits::WeakCallbackParameter(this, key, value), FirstWeakCallback, callback_type); } PersistentContainerValue old_value = @@ -472,16 +471,20 @@ class GlobalValueMap : public PersistentValueMapBase { } private: - static void WeakCallback( + static void FirstWeakCallback( const WeakCallbackInfo& data) { if (Traits::kCallbackType != kNotWeak) { - GlobalValueMap* persistentValueMap = - Traits::MapFromWeakCallbackInfo(data); + auto map = Traits::MapFromWeakCallbackInfo(data); K key = Traits::KeyFromWeakCallbackInfo(data); - persistentValueMap->RemoveWeak(key); - Traits::DisposeWeak(data.GetIsolate(), data, key); + map->RemoveWeak(key); + data.SetSecondPassCallback(SecondWeakCallback); } } + + static void SecondWeakCallback( + const WeakCallbackInfo& data) { + Traits::DisposeWeak(data); + } }; @@ -501,6 +504,22 @@ class StdPersistentValueMap : public PersistentValueMap { }; +/** + * A map that uses Global as value and std::map as the backing + * implementation. Globals are held non-weak. + * + * C++11 embedders don't need this class, as they can use + * Global directly in std containers. + */ +template > +class StdGlobalValueMap : public GlobalValueMap { + public: + explicit StdGlobalValueMap(Isolate* isolate) + : GlobalValueMap(isolate) {} +}; + + class DefaultPersistentValueVectorTraits { public: typedef std::vector Impl; diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 9cdb1259216c19..35bfeb71087663 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 3 -#define V8_BUILD_NUMBER 61 -#define V8_PATCH_LEVEL 21 +#define V8_MINOR_VERSION 4 +#define V8_BUILD_NUMBER 63 +#define V8_PATCH_LEVEL 9 // 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 d3543f282fd19e..910279b52e6b29 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -106,7 +106,6 @@ class Private; class Uint32; class Utils; class Value; -template class Handle; template class Local; template class MaybeLocal; @@ -203,28 +202,16 @@ class UniqueId { * * It is safe to extract the object stored in the handle by * dereferencing the handle (for instance, to extract the Object* from - * a Handle); the value will still be governed by a handle + * a Local); the value will still be governed by a handle * behind the scenes and the same rules apply to these values as to * their handles. */ -template class Handle { +template +class Local { public: - /** - * Creates an empty handle. - */ - V8_INLINE Handle() : val_(0) {} - - /** - * Creates a handle for the contents of the specified handle. This - * constructor allows you to pass handles as arguments by value and - * to assign between handles. However, if you try to assign between - * incompatible handles, for instance from a Handle to a - * Handle it will cause a compile-time error. Assigning - * between compatible handles, for instance assigning a - * Handle to a variable declared as Handle, is legal - * because String is a subclass of Value. - */ - template V8_INLINE Handle(Handle that) + V8_INLINE Local() : val_(0) {} + template + V8_INLINE Local(Local that) : val_(reinterpret_cast(*that)) { /** * This check fails when trying to convert between incompatible @@ -254,7 +241,8 @@ template class Handle { * to which they refer are identical. * The handles' references are not checked. */ - template V8_INLINE bool operator==(const Handle& that) const { + template + V8_INLINE bool operator==(const Local& that) const { internal::Object** a = reinterpret_cast(this->val_); internal::Object** b = reinterpret_cast(that.val_); if (a == 0) return b == 0; @@ -277,7 +265,8 @@ template class Handle { * the objects to which they refer are different. * The handles' references are not checked. */ - template V8_INLINE bool operator!=(const Handle& that) const { + template + V8_INLINE bool operator!=(const Local& that) const { return !operator==(that); } @@ -286,79 +275,6 @@ template class Handle { return !operator==(that); } - template V8_INLINE static Handle Cast(Handle that) { -#ifdef V8_ENABLE_CHECKS - // If we're going to perform the type check then we have to check - // that the handle isn't empty before doing the checked cast. - if (that.IsEmpty()) return Handle(); -#endif - return Handle(T::Cast(*that)); - } - - template V8_INLINE Handle As() { - return Handle::Cast(*this); - } - - V8_INLINE static Handle New(Isolate* isolate, Handle that) { - return New(isolate, that.val_); - } - V8_INLINE static Handle New(Isolate* isolate, - const PersistentBase& that) { - return New(isolate, that.val_); - } - - private: - friend class Utils; - template friend class Persistent; - template friend class PersistentBase; - template friend class Handle; - template friend class Local; - template - friend class MaybeLocal; - template friend class FunctionCallbackInfo; - template friend class PropertyCallbackInfo; - template friend class internal::CustomArguments; - friend Handle Undefined(Isolate* isolate); - friend Handle Null(Isolate* isolate); - friend Handle True(Isolate* isolate); - friend Handle False(Isolate* isolate); - friend class Context; - friend class HandleScope; - friend class Object; - friend class Private; - - /** - * Creates a new handle for the specified value. - */ - V8_INLINE explicit Handle(T* val) : val_(val) {} - - V8_INLINE static Handle New(Isolate* isolate, T* that); - - T* val_; -}; - - -/** - * A light-weight stack-allocated object handle. All operations - * that return objects from within v8 return them in local handles. They - * are created within HandleScopes, and all local handles allocated within a - * handle scope are destroyed when the handle scope is destroyed. Hence it - * is not necessary to explicitly deallocate local handles. - */ -template class Local : public Handle { - public: - V8_INLINE Local(); - template V8_INLINE Local(Local that) - : Handle(reinterpret_cast(*that)) { - /** - * This check fails when trying to convert between incompatible - * handles. For example, converting from a Handle to a - * Handle. - */ - TYPE_CHECK(T, S); - } - - template V8_INLINE static Local Cast(Local that) { #ifdef V8_ENABLE_CHECKS // If we're going to perform the type check then we have to check @@ -367,10 +283,7 @@ template class Local : public Handle { #endif return Local(T::Cast(*that)); } - template V8_INLINE Local(Handle that) - : Handle(reinterpret_cast(*that)) { - TYPE_CHECK(T, S); - } + template V8_INLINE Local As() { return Local::Cast(*this); @@ -381,7 +294,7 @@ template class Local : public Handle { * The referee is kept alive by the local handle even when * the original handle is destroyed/disposed. */ - V8_INLINE static Local New(Isolate* isolate, Handle that); + V8_INLINE static Local New(Isolate* isolate, Local that); V8_INLINE static Local New(Isolate* isolate, const PersistentBase& that); @@ -390,7 +303,6 @@ template class Local : public Handle { template friend class Eternal; template friend class PersistentBase; template friend class Persistent; - template friend class Handle; template friend class Local; template friend class MaybeLocal; @@ -399,18 +311,31 @@ template class Local : public Handle { 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); + friend Local True(Isolate* isolate); + friend Local False(Isolate* isolate); friend class HandleScope; friend class EscapableHandleScope; template friend class PersistentValueMapBase; template friend class PersistentValueVector; - template V8_INLINE Local(S* that) : Handle(that) { } + template + V8_INLINE Local(S* that) + : val_(that) {} V8_INLINE static Local New(Isolate* isolate, T* that); + T* val_; }; +// Handle is an alias for Local for historical reasons. +template +using Handle = Local; + + /** * A MaybeLocal<> is a wrapper around Local<> that enforces a check whether * the Local<> is empty before it can be used. @@ -439,7 +364,7 @@ class MaybeLocal { return !IsEmpty(); } - // Will crash when checks are enabled if the MaybeLocal<> is empty. + // Will crash if the MaybeLocal<> is empty. V8_INLINE Local ToLocalChecked(); template @@ -694,7 +619,6 @@ template class PersistentBase { private: friend class Isolate; friend class Utils; - template friend class Handle; template friend class Local; template friend class Persistent; template @@ -837,7 +761,6 @@ template class Persistent : public PersistentBase { private: friend class Isolate; friend class Utils; - template friend class Handle; template friend class Local; template friend class Persistent; template friend class ReturnValue; @@ -1136,9 +1059,9 @@ class V8_EXPORT Script { "Use maybe version", Local