From 2cc29517966de7257a2f1b34c58c77225a21e05d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Fri, 27 May 2016 16:37:42 +0200 Subject: [PATCH 01/10] deps: update V8 to 5.1.281.69 Pick up the latest branch-head for V8 5.1. This branch brings in improved language support and performance improvements. For full details: http://v8project.blogspot.com/2016/04/v8-release-51.html * Picks up the latest branch head for 5.1 [1] * Edit v8 gitignore to allow trace_event copy * Update V8 DEP trace_event as per deps/v8/DEPS [2] [1] https://chromium.googlesource.com/v8/v8.git/+/dc81244 [2] https://chromium.googlesource.com/chromium/src/base/trace_event/common/+/c8c8665 PR-URL: https://github.com/nodejs/node/pull/7016 Reviewed-By: Ben Noordhuis --- deps/v8/.ycm_extra_conf.py | 2 +- deps/v8/AUTHORS | 2 + deps/v8/BUILD.gn | 444 +- deps/v8/CODE_OF_CONDUCT.md | 8 + deps/v8/ChangeLog | 1761 + deps/v8/DEPS | 16 +- deps/v8/Makefile | 7 + deps/v8/OWNERS | 7 +- .../trace_event/common/trace_event_common.h | 16 +- deps/v8/build/coverage_wrapper.py | 36 + deps/v8/build/get_landmines.py | 1 + deps/v8/build/isolate.gypi | 2 + deps/v8/build/standalone.gypi | 64 +- deps/v8/build/toolchain.gypi | 24 +- deps/v8/include/libplatform/libplatform.h | 2 +- deps/v8/include/v8-debug.h | 14 +- deps/v8/include/v8-experimental.h | 2 +- deps/v8/include/v8-platform.h | 6 +- deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8.h | 255 +- deps/v8/include/v8config.h | 8 +- deps/v8/infra/config/cq.cfg | 7 +- deps/v8/src/DEPS | 3 - deps/v8/src/accessors.cc | 3 +- deps/v8/src/api-arguments.cc | 31 + deps/v8/src/api-arguments.h | 254 + deps/v8/src/api-experimental.cc | 15 +- deps/v8/src/api-natives.cc | 74 +- deps/v8/src/api.cc | 415 +- deps/v8/src/api.h | 49 + deps/v8/src/arguments.cc | 85 - deps/v8/src/arguments.h | 222 +- deps/v8/src/arm/assembler-arm-inl.h | 16 + deps/v8/src/arm/assembler-arm.cc | 41 +- deps/v8/src/arm/assembler-arm.h | 8 +- deps/v8/src/arm/builtins-arm.cc | 147 +- deps/v8/src/arm/code-stubs-arm.cc | 248 +- deps/v8/src/arm/codegen-arm.cc | 4 +- deps/v8/src/arm/constants-arm.h | 2 +- deps/v8/src/arm/deoptimizer-arm.cc | 13 +- deps/v8/src/arm/disasm-arm.cc | 30 +- deps/v8/src/arm/frames-arm.h | 15 +- deps/v8/src/arm/interface-descriptors-arm.cc | 72 +- deps/v8/src/arm/macro-assembler-arm.cc | 371 +- deps/v8/src/arm/macro-assembler-arm.h | 39 +- deps/v8/src/arm/simulator-arm.cc | 61 +- deps/v8/src/arm/simulator-arm.h | 5 +- deps/v8/src/arm64/assembler-arm64-inl.h | 16 + deps/v8/src/arm64/assembler-arm64.cc | 10 +- deps/v8/src/arm64/assembler-arm64.h | 8 +- deps/v8/src/arm64/builtins-arm64.cc | 142 +- deps/v8/src/arm64/code-stubs-arm64.cc | 240 +- deps/v8/src/arm64/cpu-arm64.cc | 2 +- deps/v8/src/arm64/deoptimizer-arm64.cc | 16 +- deps/v8/src/arm64/frames-arm64.h | 15 +- .../src/arm64/interface-descriptors-arm64.cc | 80 +- deps/v8/src/arm64/macro-assembler-arm64.cc | 229 +- deps/v8/src/arm64/macro-assembler-arm64.h | 16 +- deps/v8/src/assembler.cc | 247 +- deps/v8/src/assembler.h | 89 +- deps/v8/src/ast/ast-numbering.cc | 14 - deps/v8/src/ast/ast-value-factory.h | 1 - deps/v8/src/ast/ast.cc | 55 +- deps/v8/src/ast/ast.h | 136 +- deps/v8/src/ast/prettyprinter.cc | 7 +- deps/v8/src/ast/scopes.cc | 68 +- deps/v8/src/ast/scopes.h | 32 +- deps/v8/src/background-parsing-task.cc | 5 +- deps/v8/src/bailout-reason.h | 16 +- deps/v8/src/base/accounting-allocator.cc | 33 + deps/v8/src/base/accounting-allocator.h | 34 + .../v8/src/base/atomicops_internals_arm_gcc.h | 5 +- deps/v8/src/base/cpu.cc | 7 +- deps/v8/src/base/logging.cc | 11 + deps/v8/src/base/logging.h | 2 + deps/v8/src/base/macros.h | 11 + deps/v8/src/base/platform/platform-linux.cc | 6 +- deps/v8/src/base/platform/platform-posix.cc | 17 +- deps/v8/src/base/platform/platform-win32.cc | 1 + deps/v8/src/base/platform/platform.h | 5 + deps/v8/src/base/platform/semaphore.cc | 3 +- deps/v8/src/base/platform/time.cc | 84 - deps/v8/src/base/platform/time.h | 7 - deps/v8/src/base/win32-headers.h | 2 + deps/v8/src/bootstrapper.cc | 420 +- deps/v8/src/builtins.cc | 1155 +- deps/v8/src/builtins.h | 62 +- deps/v8/src/code-factory.cc | 180 +- deps/v8/src/code-factory.h | 34 +- deps/v8/src/code-stubs-hydrogen.cc | 284 +- deps/v8/src/code-stubs.cc | 2748 +- deps/v8/src/code-stubs.h | 573 +- deps/v8/src/codegen.h | 2 + deps/v8/src/collector.h | 247 + deps/v8/src/compiler.cc | 853 +- deps/v8/src/compiler.h | 274 +- deps/v8/src/compiler/access-info.cc | 8 +- .../v8/src/compiler/arm/code-generator-arm.cc | 180 +- .../src/compiler/arm/instruction-codes-arm.h | 6 + .../compiler/arm/instruction-scheduler-arm.cc | 6 + .../compiler/arm/instruction-selector-arm.cc | 202 +- .../compiler/arm64/code-generator-arm64.cc | 213 +- .../arm64/instruction-selector-arm64.cc | 282 +- deps/v8/src/compiler/ast-graph-builder.cc | 130 +- deps/v8/src/compiler/ast-graph-builder.h | 9 + deps/v8/src/compiler/branch-elimination.cc | 46 +- deps/v8/src/compiler/branch-elimination.h | 7 + .../v8/src/compiler/bytecode-graph-builder.cc | 225 +- deps/v8/src/compiler/bytecode-graph-builder.h | 8 +- deps/v8/src/compiler/c-linkage.cc | 30 +- deps/v8/src/compiler/change-lowering.cc | 34 + deps/v8/src/compiler/change-lowering.h | 2 + deps/v8/src/compiler/code-generator-impl.h | 13 + deps/v8/src/compiler/code-generator.cc | 171 +- deps/v8/src/compiler/code-generator.h | 27 +- deps/v8/src/compiler/code-stub-assembler.cc | 860 +- deps/v8/src/compiler/code-stub-assembler.h | 297 +- .../src/compiler/common-operator-reducer.cc | 34 + .../v8/src/compiler/common-operator-reducer.h | 1 + deps/v8/src/compiler/common-operator.cc | 26 +- deps/v8/src/compiler/common-operator.h | 2 + deps/v8/src/compiler/frame-elider.cc | 35 +- deps/v8/src/compiler/frame-states.cc | 3 + deps/v8/src/compiler/frame-states.h | 2 +- deps/v8/src/compiler/frame.cc | 33 +- deps/v8/src/compiler/frame.h | 55 +- deps/v8/src/compiler/gap-resolver.cc | 6 +- deps/v8/src/compiler/graph-replay.cc | 2 +- deps/v8/src/compiler/graph-visualizer.cc | 40 +- deps/v8/src/compiler/graph.cc | 2 +- .../src/compiler/ia32/code-generator-ia32.cc | 271 +- .../compiler/ia32/instruction-codes-ia32.h | 11 +- .../ia32/instruction-scheduler-ia32.cc | 10 + .../ia32/instruction-selector-ia32.cc | 279 +- deps/v8/src/compiler/instruction-codes.h | 79 +- deps/v8/src/compiler/instruction-scheduler.cc | 18 +- .../src/compiler/instruction-selector-impl.h | 37 +- deps/v8/src/compiler/instruction-selector.cc | 191 +- deps/v8/src/compiler/instruction-selector.h | 14 + deps/v8/src/compiler/instruction.cc | 60 +- deps/v8/src/compiler/instruction.h | 24 +- deps/v8/src/compiler/int64-lowering.cc | 604 +- deps/v8/src/compiler/int64-lowering.h | 22 +- deps/v8/src/compiler/js-builtin-reducer.cc | 109 +- deps/v8/src/compiler/js-builtin-reducer.h | 5 + deps/v8/src/compiler/js-call-reducer.cc | 48 +- deps/v8/src/compiler/js-call-reducer.h | 9 +- deps/v8/src/compiler/js-generic-lowering.cc | 89 +- .../js-global-object-specialization.cc | 36 +- deps/v8/src/compiler/js-graph.cc | 4 + deps/v8/src/compiler/js-graph.h | 2 + deps/v8/src/compiler/js-inlining-heuristic.cc | 5 +- deps/v8/src/compiler/js-inlining.cc | 62 +- deps/v8/src/compiler/js-inlining.h | 2 + deps/v8/src/compiler/js-intrinsic-lowering.cc | 173 +- deps/v8/src/compiler/js-intrinsic-lowering.h | 10 +- .../js-native-context-specialization.cc | 348 +- .../js-native-context-specialization.h | 4 - deps/v8/src/compiler/js-operator.cc | 33 +- deps/v8/src/compiler/js-operator.h | 19 +- deps/v8/src/compiler/js-typed-lowering.cc | 68 +- deps/v8/src/compiler/js-typed-lowering.h | 2 + deps/v8/src/compiler/jump-threading.cc | 6 +- deps/v8/src/compiler/linkage.cc | 22 +- deps/v8/src/compiler/linkage.h | 14 +- deps/v8/src/compiler/load-elimination.cc | 23 +- deps/v8/src/compiler/load-elimination.h | 12 +- deps/v8/src/compiler/loop-analysis.h | 2 + deps/v8/src/compiler/loop-peeling.cc | 2 +- deps/v8/src/compiler/machine-operator.cc | 22 +- deps/v8/src/compiler/machine-operator.h | 11 + .../src/compiler/mips/code-generator-mips.cc | 107 +- .../compiler/mips/instruction-codes-mips.h | 1 + .../mips/instruction-selector-mips.cc | 90 +- .../compiler/mips64/code-generator-mips64.cc | 99 +- .../mips64/instruction-selector-mips64.cc | 82 +- deps/v8/src/compiler/opcodes.h | 29 +- deps/v8/src/compiler/operator-properties.cc | 2 + deps/v8/src/compiler/pipeline.cc | 59 +- .../v8/src/compiler/ppc/code-generator-ppc.cc | 220 +- .../src/compiler/ppc/instruction-codes-ppc.h | 6 + .../compiler/ppc/instruction-scheduler-ppc.cc | 6 + .../compiler/ppc/instruction-selector-ppc.cc | 217 +- deps/v8/src/compiler/raw-machine-assembler.cc | 44 +- deps/v8/src/compiler/raw-machine-assembler.h | 49 +- .../compiler/register-allocator-verifier.cc | 93 +- deps/v8/src/compiler/register-allocator.cc | 118 +- deps/v8/src/compiler/register-allocator.h | 5 + deps/v8/src/compiler/representation-change.cc | 102 +- deps/v8/src/compiler/representation-change.h | 2 +- deps/v8/src/compiler/s390/OWNERS | 5 + .../src/compiler/s390/code-generator-s390.cc | 2079 + .../compiler/s390/instruction-codes-s390.h | 160 + .../s390/instruction-scheduler-s390.cc | 163 + .../s390/instruction-selector-s390.cc | 1769 + deps/v8/src/compiler/schedule.cc | 79 +- deps/v8/src/compiler/schedule.h | 7 + deps/v8/src/compiler/scheduler.cc | 5 +- deps/v8/src/compiler/select-lowering.cc | 53 +- deps/v8/src/compiler/select-lowering.h | 9 - deps/v8/src/compiler/simplified-lowering.cc | 976 +- deps/v8/src/compiler/simplified-lowering.h | 8 +- .../compiler/simplified-operator-reducer.cc | 16 +- .../compiler/simplified-operator-reducer.h | 5 + deps/v8/src/compiler/simplified-operator.cc | 11 +- deps/v8/src/compiler/simplified-operator.h | 8 + deps/v8/src/compiler/type-hint-analyzer.cc | 8 +- deps/v8/src/compiler/typer.cc | 135 +- deps/v8/src/compiler/verifier.cc | 86 +- deps/v8/src/compiler/wasm-compiler.cc | 1105 +- deps/v8/src/compiler/wasm-compiler.h | 64 +- deps/v8/src/compiler/wasm-linkage.cc | 20 +- .../v8/src/compiler/x64/code-generator-x64.cc | 109 +- .../src/compiler/x64/instruction-codes-x64.h | 5 +- .../compiler/x64/instruction-scheduler-x64.cc | 4 + .../compiler/x64/instruction-selector-x64.cc | 419 +- .../v8/src/compiler/x87/code-generator-x87.cc | 337 +- .../src/compiler/x87/instruction-codes-x87.h | 10 + .../compiler/x87/instruction-selector-x87.cc | 290 +- deps/v8/src/compiler/zone-pool.cc | 11 +- deps/v8/src/compiler/zone-pool.h | 3 +- deps/v8/src/contexts-inl.h | 4 + deps/v8/src/contexts.cc | 47 +- deps/v8/src/contexts.h | 51 +- deps/v8/src/counters.cc | 25 +- deps/v8/src/counters.h | 30 +- deps/v8/src/crankshaft/arm/lithium-arm.cc | 112 +- deps/v8/src/crankshaft/arm/lithium-arm.h | 79 +- .../src/crankshaft/arm/lithium-codegen-arm.cc | 236 +- .../src/crankshaft/arm/lithium-codegen-arm.h | 5 +- deps/v8/src/crankshaft/arm64/lithium-arm64.cc | 109 +- deps/v8/src/crankshaft/arm64/lithium-arm64.h | 79 +- .../crankshaft/arm64/lithium-codegen-arm64.cc | 243 +- .../crankshaft/arm64/lithium-codegen-arm64.h | 5 +- deps/v8/src/crankshaft/compilation-phase.cc | 44 + deps/v8/src/crankshaft/compilation-phase.h | 41 + deps/v8/src/crankshaft/hydrogen-bch.cc | 379 - deps/v8/src/crankshaft/hydrogen-bch.h | 33 - .../hydrogen-environment-liveness.cc | 4 +- .../src/crankshaft/hydrogen-instructions.cc | 600 +- .../v8/src/crankshaft/hydrogen-instructions.h | 660 +- deps/v8/src/crankshaft/hydrogen-osr.cc | 2 +- deps/v8/src/crankshaft/hydrogen-types.cc | 11 +- deps/v8/src/crankshaft/hydrogen.cc | 881 +- deps/v8/src/crankshaft/hydrogen.h | 131 +- .../crankshaft/ia32/lithium-codegen-ia32.cc | 488 +- .../crankshaft/ia32/lithium-codegen-ia32.h | 11 +- deps/v8/src/crankshaft/ia32/lithium-ia32.cc | 151 +- deps/v8/src/crankshaft/ia32/lithium-ia32.h | 122 +- .../v8/src/crankshaft/lithium-allocator-inl.h | 2 + deps/v8/src/crankshaft/lithium-allocator.cc | 5 +- deps/v8/src/crankshaft/lithium-allocator.h | 1 + deps/v8/src/crankshaft/lithium-codegen.cc | 25 +- deps/v8/src/crankshaft/lithium-inl.h | 2 + deps/v8/src/crankshaft/lithium.cc | 93 +- deps/v8/src/crankshaft/lithium.h | 11 + .../crankshaft/mips/lithium-codegen-mips.cc | 238 +- .../crankshaft/mips/lithium-codegen-mips.h | 5 +- deps/v8/src/crankshaft/mips/lithium-mips.cc | 113 +- deps/v8/src/crankshaft/mips/lithium-mips.h | 79 +- .../mips64/lithium-codegen-mips64.cc | 296 +- .../mips64/lithium-codegen-mips64.h | 5 +- .../src/crankshaft/mips64/lithium-mips64.cc | 113 +- .../v8/src/crankshaft/mips64/lithium-mips64.h | 79 +- .../src/crankshaft/ppc/lithium-codegen-ppc.cc | 242 +- .../src/crankshaft/ppc/lithium-codegen-ppc.h | 5 +- deps/v8/src/crankshaft/ppc/lithium-ppc.cc | 109 +- deps/v8/src/crankshaft/ppc/lithium-ppc.h | 84 +- deps/v8/src/crankshaft/s390/OWNERS | 5 + .../crankshaft/s390/lithium-codegen-s390.cc | 5668 ++ .../crankshaft/s390/lithium-codegen-s390.h | 359 + .../s390/lithium-gap-resolver-s390.cc | 280 + .../s390/lithium-gap-resolver-s390.h | 58 + deps/v8/src/crankshaft/s390/lithium-s390.cc | 2290 + deps/v8/src/crankshaft/s390/lithium-s390.h | 2414 + .../src/crankshaft/x64/lithium-codegen-x64.cc | 310 +- .../src/crankshaft/x64/lithium-codegen-x64.h | 5 +- deps/v8/src/crankshaft/x64/lithium-x64.cc | 138 +- deps/v8/src/crankshaft/x64/lithium-x64.h | 122 +- .../src/crankshaft/x87/lithium-codegen-x87.cc | 478 +- .../src/crankshaft/x87/lithium-codegen-x87.h | 13 +- deps/v8/src/crankshaft/x87/lithium-x87.cc | 125 +- deps/v8/src/crankshaft/x87/lithium-x87.h | 79 +- deps/v8/src/d8.cc | 131 +- deps/v8/src/d8.h | 4 +- deps/v8/src/d8.js | 4 + deps/v8/src/debug/arm/debug-arm.cc | 23 +- deps/v8/src/debug/arm64/debug-arm64.cc | 27 +- deps/v8/src/debug/debug-evaluate.cc | 293 +- deps/v8/src/debug/debug-evaluate.h | 39 +- deps/v8/src/debug/debug-frames.cc | 4 +- deps/v8/src/debug/debug-scopes.cc | 144 +- deps/v8/src/debug/debug-scopes.h | 43 +- deps/v8/src/debug/debug.cc | 251 +- deps/v8/src/debug/debug.h | 37 +- deps/v8/src/debug/debug.js | 37 +- deps/v8/src/debug/ia32/debug-ia32.cc | 27 +- deps/v8/src/debug/liveedit.cc | 82 +- deps/v8/src/debug/liveedit.h | 13 +- deps/v8/src/debug/mips/debug-mips.cc | 25 +- deps/v8/src/debug/mips64/debug-mips64.cc | 25 +- deps/v8/src/debug/mirrors.js | 71 +- deps/v8/src/debug/ppc/debug-ppc.cc | 23 +- deps/v8/src/debug/s390/OWNERS | 5 + deps/v8/src/debug/s390/debug-s390.cc | 165 + deps/v8/src/debug/x64/debug-x64.cc | 27 +- deps/v8/src/debug/x87/debug-x87.cc | 27 +- deps/v8/src/deoptimizer.cc | 593 +- deps/v8/src/deoptimizer.h | 60 +- deps/v8/src/disassembler.cc | 2 +- deps/v8/src/elements.cc | 724 +- deps/v8/src/elements.h | 44 +- deps/v8/src/execution.cc | 10 - deps/v8/src/external-reference-table.cc | 354 + deps/v8/src/external-reference-table.h | 50 + deps/v8/src/factory.cc | 99 +- deps/v8/src/factory.h | 24 +- .../{compiler => }/fast-accessor-assembler.cc | 191 +- .../{compiler => }/fast-accessor-assembler.h | 33 +- deps/v8/src/flag-definitions.h | 118 +- deps/v8/src/frames-inl.h | 34 +- deps/v8/src/frames.cc | 286 +- deps/v8/src/frames.h | 249 +- .../src/full-codegen/arm/full-codegen-arm.cc | 370 +- .../full-codegen/arm64/full-codegen-arm64.cc | 360 +- deps/v8/src/full-codegen/full-codegen.cc | 226 +- deps/v8/src/full-codegen/full-codegen.h | 106 +- .../full-codegen/ia32/full-codegen-ia32.cc | 370 +- .../full-codegen/mips/full-codegen-mips.cc | 378 +- .../mips64/full-codegen-mips64.cc | 392 +- .../src/full-codegen/ppc/full-codegen-ppc.cc | 362 +- deps/v8/src/full-codegen/s390/OWNERS | 5 + .../full-codegen/s390/full-codegen-s390.cc | 3981 ++ .../src/full-codegen/x64/full-codegen-x64.cc | 363 +- .../src/full-codegen/x87/full-codegen-x87.cc | 370 +- deps/v8/src/gdb-jit.cc | 22 +- deps/v8/src/global-handles.cc | 109 +- deps/v8/src/global-handles.h | 5 +- deps/v8/src/globals.h | 104 +- deps/v8/src/handles.cc | 3 +- deps/v8/src/heap-symbols.h | 2 - deps/v8/src/heap/gc-idle-time-handler.cc | 56 +- deps/v8/src/heap/gc-idle-time-handler.h | 24 +- deps/v8/src/heap/gc-tracer.cc | 404 +- deps/v8/src/heap/gc-tracer.h | 374 +- deps/v8/src/heap/heap-inl.h | 47 +- deps/v8/src/heap/heap.cc | 517 +- deps/v8/src/heap/heap.h | 140 +- deps/v8/src/heap/incremental-marking-inl.h | 5 +- deps/v8/src/heap/incremental-marking-job.cc | 16 +- deps/v8/src/heap/incremental-marking-job.h | 3 +- deps/v8/src/heap/incremental-marking.cc | 153 +- deps/v8/src/heap/incremental-marking.h | 42 +- deps/v8/src/heap/mark-compact-inl.h | 24 +- deps/v8/src/heap/mark-compact.cc | 1407 +- deps/v8/src/heap/mark-compact.h | 244 +- deps/v8/src/heap/memory-reducer.cc | 8 +- deps/v8/src/heap/objects-visiting-inl.h | 19 +- deps/v8/src/heap/objects-visiting.cc | 1 + deps/v8/src/heap/page-parallel-job.h | 194 + deps/v8/src/heap/remembered-set.cc | 38 +- deps/v8/src/heap/remembered-set.h | 120 +- deps/v8/src/heap/scavenge-job.cc | 28 +- deps/v8/src/heap/scavenge-job.h | 4 +- deps/v8/src/heap/scavenger.cc | 6 +- deps/v8/src/heap/slot-set.h | 123 +- deps/v8/src/heap/slots-buffer.cc | 164 - deps/v8/src/heap/slots-buffer.h | 175 - deps/v8/src/heap/spaces-inl.h | 145 +- deps/v8/src/heap/spaces.cc | 841 +- deps/v8/src/heap/spaces.h | 767 +- deps/v8/src/heap/store-buffer-inl.h | 36 - deps/v8/src/heap/store-buffer.cc | 30 +- deps/v8/src/heap/store-buffer.h | 48 +- deps/v8/src/i18n.cc | 9 +- deps/v8/src/ia32/assembler-ia32-inl.h | 31 +- deps/v8/src/ia32/assembler-ia32.cc | 113 +- deps/v8/src/ia32/assembler-ia32.h | 52 +- deps/v8/src/ia32/builtins-ia32.cc | 198 +- deps/v8/src/ia32/code-stubs-ia32.cc | 295 +- deps/v8/src/ia32/codegen-ia32.cc | 9 +- deps/v8/src/ia32/deoptimizer-ia32.cc | 33 +- deps/v8/src/ia32/disasm-ia32.cc | 92 +- deps/v8/src/ia32/frames-ia32.h | 18 +- .../v8/src/ia32/interface-descriptors-ia32.cc | 71 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 274 +- deps/v8/src/ia32/macro-assembler-ia32.h | 33 +- deps/v8/src/ic/access-compiler.cc | 3 +- deps/v8/src/ic/arm/handler-compiler-arm.cc | 42 +- .../v8/src/ic/arm64/handler-compiler-arm64.cc | 46 +- deps/v8/src/ic/handler-compiler.cc | 7 +- deps/v8/src/ic/handler-compiler.h | 1 - deps/v8/src/ic/ia32/handler-compiler-ia32.cc | 49 +- deps/v8/src/ic/ia32/ic-ia32.cc | 15 +- deps/v8/src/ic/ic-compiler.cc | 49 +- deps/v8/src/ic/ic-compiler.h | 4 - deps/v8/src/ic/ic-state.cc | 11 +- deps/v8/src/ic/ic.cc | 227 +- deps/v8/src/ic/ic.h | 12 - deps/v8/src/ic/mips/handler-compiler-mips.cc | 46 +- .../src/ic/mips64/handler-compiler-mips64.cc | 46 +- deps/v8/src/ic/ppc/handler-compiler-ppc.cc | 45 +- deps/v8/src/ic/s390/OWNERS | 5 + deps/v8/src/ic/s390/access-compiler-s390.cc | 41 + deps/v8/src/ic/s390/handler-compiler-s390.cc | 750 + deps/v8/src/ic/s390/ic-compiler-s390.cc | 29 + deps/v8/src/ic/s390/ic-s390.cc | 897 + deps/v8/src/ic/s390/stub-cache-s390.cc | 187 + deps/v8/src/ic/x64/handler-compiler-x64.cc | 46 +- deps/v8/src/ic/x87/handler-compiler-x87.cc | 49 +- deps/v8/src/ic/x87/ic-x87.cc | 15 +- deps/v8/src/interface-descriptors.cc | 80 +- deps/v8/src/interface-descriptors.h | 206 +- .../src/interpreter/bytecode-array-builder.cc | 1127 +- .../src/interpreter/bytecode-array-builder.h | 86 +- .../interpreter/bytecode-array-iterator.cc | 163 +- .../src/interpreter/bytecode-array-iterator.h | 23 +- deps/v8/src/interpreter/bytecode-generator.cc | 92 +- .../bytecode-register-allocator.cc | 25 - deps/v8/src/interpreter/bytecode-traits.h | 215 +- deps/v8/src/interpreter/bytecodes.cc | 500 +- deps/v8/src/interpreter/bytecodes.h | 638 +- .../src/interpreter/constant-array-builder.cc | 171 +- .../src/interpreter/constant-array-builder.h | 27 +- .../src/interpreter/interpreter-assembler.cc | 386 +- .../src/interpreter/interpreter-assembler.h | 51 +- .../src/interpreter/interpreter-intrinsics.cc | 159 + .../src/interpreter/interpreter-intrinsics.h | 62 + deps/v8/src/interpreter/interpreter.cc | 795 +- deps/v8/src/interpreter/interpreter.h | 21 +- .../v8/src/interpreter/register-translator.cc | 173 - deps/v8/src/interpreter/register-translator.h | 119 - .../src/interpreter/source-position-table.cc | 212 +- .../src/interpreter/source-position-table.h | 74 +- deps/v8/src/isolate-inl.h | 18 + deps/v8/src/isolate.cc | 234 +- deps/v8/src/isolate.h | 65 +- deps/v8/src/js/array-iterator.js | 31 +- deps/v8/src/js/array.js | 296 +- deps/v8/src/js/harmony-atomics.js | 74 +- deps/v8/src/js/harmony-regexp-exec.js | 37 + deps/v8/src/js/harmony-regexp.js | 60 - deps/v8/src/js/harmony-string-padding.js | 77 + deps/v8/src/js/harmony-unicode-regexps.js | 5 +- deps/v8/src/js/i18n.js | 350 +- deps/v8/src/js/json.js | 30 +- deps/v8/src/js/macros.py | 21 +- deps/v8/src/js/math.js | 115 +- deps/v8/src/js/messages.js | 51 +- deps/v8/src/js/prologue.js | 33 +- deps/v8/src/js/promise.js | 15 +- deps/v8/src/js/regexp.js | 555 +- deps/v8/src/js/runtime.js | 12 - deps/v8/src/js/string-iterator.js | 1 + deps/v8/src/js/string.js | 37 +- deps/v8/src/js/symbol.js | 4 +- deps/v8/src/js/typedarray.js | 165 +- deps/v8/src/js/uri.js | 7 +- deps/v8/src/js/v8natives.js | 18 +- deps/v8/src/json-parser.h | 3 +- deps/v8/src/json-stringifier.h | 9 +- deps/v8/src/{key-accumulator.cc => keys.cc} | 187 +- deps/v8/src/{key-accumulator.h => keys.h} | 37 +- deps/v8/src/libplatform/default-platform.cc | 12 +- deps/v8/src/libplatform/default-platform.h | 7 +- deps/v8/src/log-utils.h | 2 +- deps/v8/src/log.cc | 416 +- deps/v8/src/log.h | 260 +- deps/v8/src/lookup.cc | 269 +- deps/v8/src/lookup.h | 100 +- deps/v8/src/macro-assembler.h | 5 + deps/v8/src/messages.cc | 13 +- deps/v8/src/messages.h | 88 +- deps/v8/src/mips/assembler-mips-inl.h | 68 +- deps/v8/src/mips/assembler-mips.cc | 217 +- deps/v8/src/mips/assembler-mips.h | 38 +- deps/v8/src/mips/builtins-mips.cc | 190 +- deps/v8/src/mips/code-stubs-mips.cc | 238 +- deps/v8/src/mips/codegen-mips.cc | 4 +- deps/v8/src/mips/deoptimizer-mips.cc | 17 +- deps/v8/src/mips/frames-mips.h | 12 +- .../v8/src/mips/interface-descriptors-mips.cc | 70 +- deps/v8/src/mips/macro-assembler-mips.cc | 593 +- deps/v8/src/mips/macro-assembler-mips.h | 83 +- deps/v8/src/mips/simulator-mips.cc | 2 +- deps/v8/src/mips64/assembler-mips64-inl.h | 16 + deps/v8/src/mips64/assembler-mips64.cc | 37 +- deps/v8/src/mips64/assembler-mips64.h | 25 +- deps/v8/src/mips64/builtins-mips64.cc | 186 +- deps/v8/src/mips64/code-stubs-mips64.cc | 245 +- deps/v8/src/mips64/codegen-mips64.cc | 4 +- deps/v8/src/mips64/deoptimizer-mips64.cc | 17 +- deps/v8/src/mips64/frames-mips64.h | 12 +- .../mips64/interface-descriptors-mips64.cc | 71 +- deps/v8/src/mips64/macro-assembler-mips64.cc | 930 +- deps/v8/src/mips64/macro-assembler-mips64.h | 144 +- deps/v8/src/mips64/simulator-mips64.cc | 31 +- deps/v8/src/objects-body-descriptors-inl.h | 1 + deps/v8/src/objects-debug.cc | 9 +- deps/v8/src/objects-inl.h | 398 +- deps/v8/src/objects-printer.cc | 31 +- deps/v8/src/objects.cc | 1484 +- deps/v8/src/objects.h | 452 +- deps/v8/src/optimizing-compile-dispatcher.cc | 142 +- deps/v8/src/optimizing-compile-dispatcher.h | 34 - deps/v8/src/parsing/expression-classifier.h | 34 +- .../parsing/parameter-initializer-rewriter.cc | 2 +- deps/v8/src/parsing/parser-base.h | 472 +- deps/v8/src/parsing/parser.cc | 1243 +- deps/v8/src/parsing/parser.h | 92 +- deps/v8/src/parsing/pattern-rewriter.cc | 293 +- deps/v8/src/parsing/preparse-data.h | 1 + deps/v8/src/parsing/preparser.cc | 270 +- deps/v8/src/parsing/preparser.h | 65 +- deps/v8/src/parsing/rewriter.cc | 9 +- deps/v8/src/parsing/scanner.cc | 54 +- deps/v8/src/parsing/scanner.h | 36 +- deps/v8/src/parsing/token.h | 8 +- deps/v8/src/perf-jit.cc | 336 + deps/v8/src/perf-jit.h | 122 + deps/v8/src/ppc/assembler-ppc-inl.h | 16 + deps/v8/src/ppc/assembler-ppc.cc | 13 +- deps/v8/src/ppc/assembler-ppc.h | 21 +- deps/v8/src/ppc/builtins-ppc.cc | 160 +- deps/v8/src/ppc/code-stubs-ppc.cc | 246 +- deps/v8/src/ppc/codegen-ppc.cc | 10 +- deps/v8/src/ppc/deoptimizer-ppc.cc | 13 +- deps/v8/src/ppc/disasm-ppc.cc | 8 + deps/v8/src/ppc/frames-ppc.h | 15 +- deps/v8/src/ppc/interface-descriptors-ppc.cc | 67 +- deps/v8/src/ppc/macro-assembler-ppc.cc | 383 +- deps/v8/src/ppc/macro-assembler-ppc.h | 76 +- deps/v8/src/ppc/simulator-ppc.cc | 72 +- deps/v8/src/profiler/allocation-tracker.cc | 5 +- deps/v8/src/profiler/cpu-profiler.cc | 148 +- deps/v8/src/profiler/cpu-profiler.h | 49 +- .../src/profiler/heap-snapshot-generator.cc | 6 +- deps/v8/src/profiler/profile-generator.cc | 90 +- deps/v8/src/profiler/profile-generator.h | 15 +- deps/v8/src/profiler/sampler.cc | 34 +- deps/v8/src/profiler/sampler.h | 2 +- .../v8/src/profiler/sampling-heap-profiler.cc | 24 +- deps/v8/src/property-descriptor.cc | 28 +- deps/v8/src/prototype.h | 7 +- .../regexp/arm/regexp-macro-assembler-arm.cc | 3 +- .../arm64/regexp-macro-assembler-arm64.cc | 3 +- .../ia32/regexp-macro-assembler-ia32.cc | 6 +- deps/v8/src/regexp/jsregexp.cc | 9 +- .../mips/regexp-macro-assembler-mips.cc | 3 +- .../mips64/regexp-macro-assembler-mips64.cc | 3 +- .../regexp/ppc/regexp-macro-assembler-ppc.cc | 3 +- deps/v8/src/regexp/regexp-macro-assembler.h | 1 + deps/v8/src/regexp/regexp-parser.cc | 148 +- deps/v8/src/regexp/regexp-parser.h | 3 +- deps/v8/src/regexp/s390/OWNERS | 5 + .../s390/regexp-macro-assembler-s390.cc | 1256 + .../regexp/s390/regexp-macro-assembler-s390.h | 216 + .../regexp/x64/regexp-macro-assembler-x64.cc | 2 +- .../regexp/x87/regexp-macro-assembler-x87.cc | 6 +- deps/v8/src/register-configuration.cc | 4 + deps/v8/src/runtime-profiler.cc | 3 +- deps/v8/src/runtime/runtime-array.cc | 54 +- deps/v8/src/runtime/runtime-classes.cc | 20 - deps/v8/src/runtime/runtime-compiler.cc | 119 +- deps/v8/src/runtime/runtime-debug.cc | 114 +- deps/v8/src/runtime/runtime-forin.cc | 82 +- deps/v8/src/runtime/runtime-function.cc | 81 +- deps/v8/src/runtime/runtime-generator.cc | 33 +- deps/v8/src/runtime/runtime-i18n.cc | 4 +- deps/v8/src/runtime/runtime-internal.cc | 33 +- deps/v8/src/runtime/runtime-interpreter.cc | 111 +- deps/v8/src/runtime/runtime-literals.cc | 117 +- deps/v8/src/runtime/runtime-liveedit.cc | 14 +- deps/v8/src/runtime/runtime-maths.cc | 100 +- deps/v8/src/runtime/runtime-numbers.cc | 13 - deps/v8/src/runtime/runtime-object.cc | 230 +- deps/v8/src/runtime/runtime-regexp.cc | 13 +- deps/v8/src/runtime/runtime-scopes.cc | 22 +- deps/v8/src/runtime/runtime-strings.cc | 154 +- deps/v8/src/runtime/runtime-test.cc | 11 +- deps/v8/src/runtime/runtime-utils.h | 42 +- deps/v8/src/runtime/runtime.h | 51 +- deps/v8/src/s390/OWNERS | 5 + deps/v8/src/s390/assembler-s390-inl.h | 593 + deps/v8/src/s390/assembler-s390.cc | 3061 ++ deps/v8/src/s390/assembler-s390.h | 1466 + deps/v8/src/s390/builtins-s390.cc | 2555 + deps/v8/src/s390/code-stubs-s390.cc | 5695 ++ deps/v8/src/s390/code-stubs-s390.h | 467 + deps/v8/src/s390/codegen-s390.cc | 675 + deps/v8/src/s390/codegen-s390.h | 44 + deps/v8/src/s390/constants-s390.cc | 48 + deps/v8/src/s390/constants-s390.h | 1561 + deps/v8/src/s390/cpu-s390.cc | 25 + deps/v8/src/s390/deoptimizer-s390.cc | 338 + deps/v8/src/s390/disasm-s390.cc | 1421 + deps/v8/src/s390/frames-s390.cc | 35 + deps/v8/src/s390/frames-s390.h | 189 + .../v8/src/s390/interface-descriptors-s390.cc | 373 + deps/v8/src/s390/macro-assembler-s390.cc | 5409 ++ deps/v8/src/s390/macro-assembler-s390.h | 1887 + deps/v8/src/s390/simulator-s390.cc | 5128 ++ deps/v8/src/s390/simulator-s390.h | 552 + deps/v8/src/simulator.h | 2 + deps/v8/src/snapshot/code-serializer.cc | 421 + deps/v8/src/snapshot/code-serializer.h | 127 + deps/v8/src/snapshot/deserializer.cc | 818 + deps/v8/src/snapshot/deserializer.h | 150 + deps/v8/src/snapshot/mksnapshot.cc | 32 +- deps/v8/src/snapshot/partial-serializer.cc | 123 + deps/v8/src/snapshot/partial-serializer.h | 62 + deps/v8/src/snapshot/serialize.cc | 2877 -- deps/v8/src/snapshot/serialize.h | 816 - deps/v8/src/snapshot/serializer-common.cc | 76 + deps/v8/src/snapshot/serializer-common.h | 290 + deps/v8/src/snapshot/serializer.cc | 770 + deps/v8/src/snapshot/serializer.h | 321 + deps/v8/src/snapshot/snapshot-common.cc | 50 + deps/v8/src/snapshot/snapshot-external.cc | 1 - deps/v8/src/snapshot/snapshot-source-sink.cc | 1 - deps/v8/src/snapshot/snapshot.h | 38 +- deps/v8/src/snapshot/startup-serializer.cc | 167 + deps/v8/src/snapshot/startup-serializer.h | 55 + deps/v8/src/string-stream.cc | 1 + deps/v8/src/tracing/trace-event.h | 212 +- deps/v8/src/transitions-inl.h | 1 - deps/v8/src/transitions.cc | 1 - deps/v8/src/type-cache.h | 3 +- deps/v8/src/type-feedback-vector-inl.h | 12 +- deps/v8/src/type-feedback-vector.h | 8 +- deps/v8/src/type-info.cc | 5 - deps/v8/src/type-info.h | 2 +- deps/v8/src/types.cc | 30 +- deps/v8/src/types.h | 10 +- deps/v8/src/typing-asm.cc | 170 +- deps/v8/src/typing-asm.h | 5 +- deps/v8/src/utils.h | 269 +- deps/v8/src/v8.cc | 1 - deps/v8/src/v8.h | 2 +- deps/v8/src/vm-state-inl.h | 26 +- deps/v8/src/wasm/asm-wasm-builder.cc | 463 +- deps/v8/src/wasm/asm-wasm-builder.h | 4 +- deps/v8/src/wasm/ast-decoder.cc | 655 +- deps/v8/src/wasm/ast-decoder.h | 169 +- deps/v8/src/wasm/decoder.h | 146 +- deps/v8/src/wasm/encoder.cc | 297 +- deps/v8/src/wasm/encoder.h | 14 +- deps/v8/src/wasm/module-decoder.cc | 514 +- deps/v8/src/wasm/module-decoder.h | 2 +- deps/v8/src/wasm/wasm-external-refs.h | 181 + deps/v8/src/wasm/wasm-js.cc | 107 +- deps/v8/src/wasm/wasm-macro-gen.h | 300 +- deps/v8/src/wasm/wasm-module.cc | 293 +- deps/v8/src/wasm/wasm-module.h | 174 +- deps/v8/src/wasm/wasm-opcodes.cc | 3 + deps/v8/src/wasm/wasm-opcodes.h | 117 +- deps/v8/src/x64/assembler-x64-inl.h | 22 +- deps/v8/src/x64/assembler-x64.cc | 60 +- deps/v8/src/x64/assembler-x64.h | 23 +- deps/v8/src/x64/builtins-x64.cc | 154 +- deps/v8/src/x64/code-stubs-x64.cc | 255 +- deps/v8/src/x64/codegen-x64.cc | 5 +- deps/v8/src/x64/deoptimizer-x64.cc | 15 +- deps/v8/src/x64/frames-x64.h | 12 +- deps/v8/src/x64/interface-descriptors-x64.cc | 69 +- deps/v8/src/x64/macro-assembler-x64.cc | 192 +- deps/v8/src/x64/macro-assembler-x64.h | 22 +- deps/v8/src/x87/assembler-x87-inl.h | 31 +- deps/v8/src/x87/assembler-x87.cc | 113 +- deps/v8/src/x87/assembler-x87.h | 52 +- deps/v8/src/x87/builtins-x87.cc | 197 +- deps/v8/src/x87/code-stubs-x87.cc | 292 +- deps/v8/src/x87/codegen-x87.cc | 9 +- deps/v8/src/x87/deoptimizer-x87.cc | 34 +- deps/v8/src/x87/disasm-x87.cc | 94 +- deps/v8/src/x87/frames-x87.h | 18 +- deps/v8/src/x87/interface-descriptors-x87.cc | 70 +- deps/v8/src/x87/macro-assembler-x87.cc | 272 +- deps/v8/src/x87/macro-assembler-x87.h | 32 +- deps/v8/src/zone.cc | 9 +- deps/v8/src/zone.h | 8 +- deps/v8/test/cctest/OWNERS | 5 + deps/v8/test/cctest/cctest.cc | 23 +- deps/v8/test/cctest/cctest.gyp | 39 +- deps/v8/test/cctest/cctest.h | 39 +- deps/v8/test/cctest/cctest.isolate | 1 + deps/v8/test/cctest/cctest.status | 253 +- deps/v8/test/cctest/compiler/call-tester.h | 7 +- .../v8/test/cctest/compiler/codegen-tester.cc | 8 +- .../v8/test/cctest/compiler/function-tester.h | 4 +- .../cctest/compiler/test-branch-combine.cc | 21 + .../cctest/compiler/test-changes-lowering.cc | 4 +- .../compiler/test-code-stub-assembler.cc | 126 +- .../test/cctest/compiler/test-instruction.cc | 3 +- .../cctest/compiler/test-js-typed-lowering.cc | 2 +- .../cctest/compiler/test-jump-threading.cc | 3 +- deps/v8/test/cctest/compiler/test-linkage.cc | 6 +- .../cctest/compiler/test-loop-analysis.cc | 2 +- .../cctest/compiler/test-multiple-return.cc | 3 +- deps/v8/test/cctest/compiler/test-node.cc | 51 +- .../compiler/test-representation-change.cc | 6 +- .../test-run-bytecode-graph-builder.cc | 88 +- .../test-run-calls-to-external-references.cc | 531 + .../test/cctest/compiler/test-run-inlining.cc | 30 +- .../cctest/compiler/test-run-intrinsics.cc | 25 - .../test/cctest/compiler/test-run-jscalls.cc | 14 +- .../cctest/compiler/test-run-jsobjects.cc | 6 +- .../v8/test/cctest/compiler/test-run-jsops.cc | 11 - .../test/cctest/compiler/test-run-machops.cc | 492 +- .../cctest/compiler/test-run-native-calls.cc | 58 +- .../cctest/compiler/test-run-variables.cc | 24 - .../compiler/test-simplified-lowering.cc | 63 +- deps/v8/test/cctest/compiler/value-helper.h | 14 +- deps/v8/test/cctest/heap/heap-tester.h | 4 +- deps/v8/test/cctest/heap/test-compaction.cc | 8 +- deps/v8/test/cctest/heap/test-heap.cc | 136 +- .../cctest/heap/test-incremental-marking.cc | 4 +- deps/v8/test/cctest/heap/test-lab.cc | 3 +- deps/v8/test/cctest/heap/test-spaces.cc | 26 +- deps/v8/test/cctest/heap/utils-inl.h | 2 +- .../bytecode-expectations-printer.cc | 58 +- .../bytecode-expectations-printer.h | 1 + .../ArrayLiterals.golden | 124 + .../ArrayLiteralsWide.golden | 1051 + .../AssignmentsInBinaryExpression.golden | 278 + .../BasicBlockToBoolean.golden | 91 + .../bytecode_expectations/BasicLoops.golden | 859 + .../BreakableBlocks.golden | 231 + .../bytecode_expectations/CallGlobal.golden | 63 + .../CallLookupSlot.golden | 57 + .../bytecode_expectations/CallNew.golden | 90 + .../bytecode_expectations/CallRuntime.golden | 93 + .../ClassAndSuperClass.golden | 260 + .../ClassDeclarations.golden | 241 + .../CompoundExpressions.golden | 139 + .../bytecode_expectations/Conditional.golden | 54 + .../ConstVariable.golden | 116 + .../ConstVariableContextSlot.golden | 138 + .../ContextParameters.golden | 105 + .../ContextVariables.golden | 920 + .../CountOperators.golden | 297 + .../CreateArguments.golden | 147 + .../CreateRestParameter.golden | 115 + .../DeadCodeRemoval.golden | 83 + .../DeclareGlobals.golden | 127 + .../bytecode_expectations/Delete.golden | 146 + .../DeleteLookupSlotInEval.golden | 88 + .../bytecode_expectations/DoDebugger.golden | 26 + .../bytecode_expectations/DoExpression.golden | 78 + .../bytecode_expectations/Eval.golden | 49 + .../bytecode_expectations/ForIn.golden | 258 + .../bytecode_expectations/ForOf.golden | 760 + .../FunctionLiterals.golden | 72 + .../GlobalCompoundExpressions.golden | 57 + .../GlobalCountOperators.golden | 105 + .../bytecode_expectations/GlobalDelete.golden | 115 + .../HeapNumberConstants.golden | 1112 + .../bytecode_expectations/IfConditions.golden | 764 + .../IntegerConstants.golden | 63 + .../JumpsRequiringConstantWideOperands.golden | 1303 + .../bytecode_expectations/LetVariable.golden | 114 + .../LetVariableContextSlot.golden | 136 + .../bytecode_expectations/LoadGlobal.golden | 604 + .../LogicalExpressions.golden | 952 + .../bytecode_expectations/LookupSlot.golden | 139 + .../LookupSlotInEval.golden | 106 + .../LookupSlotWideInEval.golden | 4219 ++ .../bytecode_expectations/NewTarget.golden | 57 + .../ObjectLiterals.golden | 462 + .../ObjectLiteralsWide.golden | 1052 + .../OuterContextVariables.golden | 74 + .../bytecode_expectations/Parameters.golden | 139 + .../PrimitiveExpressions.golden | 276 + .../PrimitiveReturnStatements.golden | 177 + .../bytecode_expectations/PropertyCall.golden | 625 + .../PropertyLoads.golden | 1575 + .../PropertyStores.golden | 3358 ++ .../RegExpLiterals.golden | 70 + .../RegExpLiteralsWide.golden | 1051 + .../RemoveRedundantLdar.golden | 103 + .../bytecode_expectations/StoreGlobal.golden | 1171 + .../StringConstants.golden | 67 + .../bytecode_expectations/Switch.golden | 523 + .../bytecode_expectations/ThisFunction.golden | 65 + .../bytecode_expectations/Throw.golden | 66 + .../TopLevelObjectLiterals.golden | 47 + .../bytecode_expectations/TryCatch.golden | 98 + .../bytecode_expectations/TryFinally.golden | 180 + .../bytecode_expectations/Typeof.golden | 55 + .../UnaryOperators.golden | 193 + .../WideRegisters.golden | 1326 + .../WithStatement.golden | 36 + .../generate-bytecode-expectations.cc | 265 +- .../cctest/interpreter/interpreter-tester.cc | 73 + .../cctest/interpreter/interpreter-tester.h | 128 + .../interpreter/test-bytecode-generator.cc | 10436 +--- .../test-interpreter-intrinsics.cc | 96 + .../cctest/interpreter/test-interpreter.cc | 421 +- deps/v8/test/cctest/test-accessors.cc | 25 + deps/v8/test/cctest/test-api-interceptors.cc | 25 + deps/v8/test/cctest/test-api.cc | 668 +- deps/v8/test/cctest/test-api.h | 6 + deps/v8/test/cctest/test-asm-validator.cc | 378 +- deps/v8/test/cctest/test-assembler-arm.cc | 84 +- deps/v8/test/cctest/test-assembler-arm64.cc | 9 +- deps/v8/test/cctest/test-assembler-mips.cc | 91 +- deps/v8/test/cctest/test-assembler-mips64.cc | 21 +- deps/v8/test/cctest/test-assembler-s390.cc | 416 + .../cctest/test-ast-expression-visitor.cc | 13 +- deps/v8/test/cctest/test-ast.cc | 3 +- deps/v8/test/cctest/test-bit-vector.cc | 3 +- deps/v8/test/cctest/test-compiler.cc | 23 +- deps/v8/test/cctest/test-cpu-profiler.cc | 120 +- deps/v8/test/cctest/test-debug.cc | 139 +- deps/v8/test/cctest/test-decls.cc | 90 - deps/v8/test/cctest/test-dictionary.cc | 8 +- deps/v8/test/cctest/test-disasm-arm.cc | 53 + deps/v8/test/cctest/test-disasm-ia32.cc | 14 +- deps/v8/test/cctest/test-disasm-s390.cc | 297 + deps/v8/test/cctest/test-disasm-x87.cc | 14 +- .../test/cctest/test-field-type-tracking.cc | 338 +- deps/v8/test/cctest/test-gc-tracer.cc | 124 - deps/v8/test/cctest/test-hashing.cc | 9 + deps/v8/test/cctest/test-heap-profiler.cc | 23 +- .../cctest/test-inobject-slack-tracking.cc | 2 + deps/v8/test/cctest/test-liveedit.cc | 3 +- deps/v8/test/cctest/test-lockers.cc | 8 +- deps/v8/test/cctest/test-log-stack-tracer.cc | 2 +- deps/v8/test/cctest/test-log.cc | 11 +- .../test/cctest/test-macro-assembler-mips.cc | 190 +- .../cctest/test-macro-assembler-mips64.cc | 267 +- .../v8/test/cctest/test-microtask-delivery.cc | 2 +- deps/v8/test/cctest/test-object-observe.cc | 21 +- deps/v8/test/cctest/test-parsing.cc | 1294 +- deps/v8/test/cctest/test-platform.cc | 4 + deps/v8/test/cctest/test-profile-generator.cc | 26 +- deps/v8/test/cctest/test-regexp.cc | 68 +- .../cctest/test-run-wasm-relocation-arm.cc | 80 + .../cctest/test-run-wasm-relocation-arm64.cc | 82 + .../cctest/test-run-wasm-relocation-ia32.cc | 89 + .../cctest/test-run-wasm-relocation-x64.cc | 83 + .../cctest/test-run-wasm-relocation-x87.cc | 89 + deps/v8/test/cctest/test-sampler-api.cc | 6 + deps/v8/test/cctest/test-serialize.cc | 502 +- deps/v8/test/cctest/test-strings.cc | 22 + .../v8/test/cctest/test-thread-termination.cc | 2 +- deps/v8/test/cctest/test-trace-event.cc | 28 +- deps/v8/test/cctest/test-types.cc | 4 +- deps/v8/test/cctest/test-unboxed-doubles.cc | 20 +- deps/v8/test/cctest/test-unique.cc | 24 +- deps/v8/test/cctest/test-utils.cc | 1 + deps/v8/test/cctest/testcfg.py | 27 +- deps/v8/test/cctest/wasm/test-run-wasm-64.cc | 1360 + deps/v8/test/cctest/wasm/test-run-wasm-js.cc | 132 +- .../test/cctest/wasm/test-run-wasm-module.cc | 73 +- deps/v8/test/cctest/wasm/test-run-wasm.cc | 1296 +- deps/v8/test/cctest/wasm/wasm-run-utils.h | 126 +- deps/v8/test/fuzzer/fuzzer.gyp | 52 + deps/v8/test/fuzzer/fuzzer.isolate | 4 + deps/v8/test/fuzzer/parser.cc | 2 +- deps/v8/test/fuzzer/testcfg.py | 2 +- deps/v8/test/fuzzer/wasm-asmjs.cc | 39 + deps/v8/test/fuzzer/wasm.cc | 39 + deps/v8/test/fuzzer/wasm/foo.wasm | Bin 0 -> 47 bytes deps/v8/test/fuzzer/wasm_asmjs/foo.wasm | Bin 0 -> 47 bytes deps/v8/test/ignition.isolate | 2 + .../intl/number-format/format-is-bound.js | 3 + deps/v8/test/intl/regexp-assert.js | 19 + deps/v8/test/intl/regexp-prepare.js | 5 + deps/v8/test/intl/testcfg.py | 5 +- deps/v8/test/js-perf-test/JSTests.json | 32 +- deps/v8/test/js-perf-test/Keys/keys.js | 209 + deps/v8/test/js-perf-test/Keys/run.js | 22 + .../test/js-perf-test/Object/ObjectTests.json | 31 + deps/v8/test/js-perf-test/Object/entries.js | 75 + deps/v8/test/js-perf-test/Object/run.js | 3 + deps/v8/test/js-perf-test/Object/values.js | 75 + ...-proto.js => const-decl-no-init-sloppy.js} | 10 +- .../message/const-decl-no-init-sloppy.out | 7 + .../message/default-parameter-tdz-arrow.js | 2 +- deps/v8/test/message/default-parameter-tdz.js | 2 +- .../destructuring-decl-no-init-array.js | 2 +- .../destructuring-decl-no-init-array2.js | 2 +- .../message/destructuring-decl-no-init-obj.js | 2 +- .../destructuring-decl-no-init-obj2.js | 2 +- .../message/destructuring-modify-const.js | 2 +- .../for-in-loop-initializers-destructuring.js | 2 +- deps/v8/test/message/for-of-throw-in-body.js | 5 + deps/v8/test/message/for-of-throw-in-body.out | 6 + .../instanceof-noncallable.js} | 6 +- .../test/message/instanceof-noncallable.out | 5 + ...{instanceof.js => instanceof-nonobject.js} | 2 + deps/v8/test/message/instanceof-nonobject.out | 5 + deps/v8/test/message/instanceof.out | 5 - .../let-lexical-name-in-array-prohibited.js | 2 +- .../let-lexical-name-in-object-prohibited.js | 2 +- deps/v8/test/message/message.status | 4 + deps/v8/test/message/no-legacy-const-2.js | 2 +- deps/v8/test/message/no-legacy-const-3.js | 2 +- deps/v8/test/message/no-legacy-const.js | 2 +- .../{preparser => message}/non-alphanum.js | 2 +- deps/v8/test/message/non-alphanum.out | 6 + .../non-use-strict-hex-escape.js | 0 .../message/non-use-strict-hex-escape.out | 0 .../non-use-strict-octal-escape.js | 0 .../message/non-use-strict-octal-escape.out | 0 .../non-use-strict-uhex-escape.js | 0 .../message/non-use-strict-uhex-escape.out | 0 .../nonstrict-arguments.js | 40 +- deps/v8/test/message/nonstrict-arguments.out | 0 .../{preparser => message}/nonstrict-eval.js | 40 +- deps/v8/test/message/nonstrict-eval.out | 0 .../{preparser => message}/nonstrict-with.js | 18 +- deps/v8/test/message/nonstrict-with.out | 0 .../v8/test/message/regress/regress-4829-1.js | 7 + .../test/message/regress/regress-4829-1.out | 8 + .../v8/test/message/regress/regress-4829-2.js | 7 + .../test/message/regress/regress-4829-2.out | 8 + .../strict-octal-indirect-regexp.js | 0 .../message/strict-octal-indirect-regexp.out | 0 .../strict-octal-number.js | 0 deps/v8/test/message/strict-octal-number.out | 4 + .../strict-octal-regexp.js | 0 deps/v8/test/message/strict-octal-regexp.out | 0 .../strict-octal-string.js | 0 deps/v8/test/message/strict-octal-string.out | 4 + .../strict-octal-use-strict-after.js | 0 .../message/strict-octal-use-strict-after.out | 4 + .../strict-octal-use-strict-before.js | 0 .../strict-octal-use-strict-before.out | 4 + .../{preparser => message}/strict-with.js | 0 deps/v8/test/message/strict-with.out | 4 + .../message/strong-object-freeze-prop.out | 9 - .../test/message/strong-object-set-proto.out | 9 - deps/v8/test/message/testcfg.py | 4 +- .../message/try-catch-lexical-conflict.js | 2 +- .../message/try-catch-variable-conflict.js | 2 +- .../test/message/unicode-escape-invalid-2.js | 5 + .../test/message/unicode-escape-invalid-2.out | 8 + .../v8/test/message/unicode-escape-invalid.js | 5 + .../test/message/unicode-escape-invalid.out | 8 + .../test/message/unicode-escape-undefined.js | 5 + .../test/message/unicode-escape-undefined.out | 8 + deps/v8/test/message/yield-in-arrow-param.js | 5 + deps/v8/test/message/yield-in-arrow-param.out | 4 + ...ze-prop.js => yield-in-generator-param.js} | 8 +- .../test/message/yield-in-generator-param.out | 4 + deps/v8/test/mjsunit/allocation-site-info.js | 23 + deps/v8/test/mjsunit/array-foreach.js | 17 + deps/v8/test/mjsunit/array-isarray.js | 2 - deps/v8/test/mjsunit/array-join.js | 13 + .../v8/test/mjsunit/array-natives-elements.js | 20 +- deps/v8/test/mjsunit/asm/atomics-add.js | 4 +- deps/v8/test/mjsunit/asm/atomics-and.js | 4 +- .../mjsunit/asm/atomics-compareexchange.js | 4 +- deps/v8/test/mjsunit/asm/atomics-exchange.js | 4 +- deps/v8/test/mjsunit/asm/atomics-load.js | 18 +- deps/v8/test/mjsunit/asm/atomics-or.js | 4 +- deps/v8/test/mjsunit/asm/atomics-store.js | 18 +- deps/v8/test/mjsunit/asm/atomics-sub.js | 4 +- deps/v8/test/mjsunit/asm/atomics-xor.js | 4 +- deps/v8/test/mjsunit/asm/math-clz32.js | 5 +- deps/v8/test/mjsunit/assert-opt-and-deopt.js | 2 +- .../test/mjsunit/call-intrinsic-type-error.js | 11 + .../compare-known-objects-tostringtag.js | 2 +- .../compiler/deopt-materialize-accumulator.js | 2 +- .../test/mjsunit/compiler/optimized-for-in.js | 2 +- .../test/mjsunit/compiler/regress-600593.js | 21 + .../v8/test/mjsunit/compiler/regress-96989.js | 43 - .../v8/test/mjsunit/compiler/regress-const.js | 5 +- deps/v8/test/mjsunit/const-declaration.js | 173 - deps/v8/test/mjsunit/const-eval-init.js | 118 - deps/v8/test/mjsunit/const-redecl.js | 228 - deps/v8/test/mjsunit/const.js | 72 - deps/v8/test/mjsunit/constant-folding.js | 7 - deps/v8/test/mjsunit/debug-backtrace.js | 4 +- .../v8/test/mjsunit/debug-evaluate-closure.js | 17 +- deps/v8/test/mjsunit/debug-evaluate-const.js | 118 - .../debug-evaluate-locals-capturing.js | 4 +- deps/v8/test/mjsunit/debug-evaluate-locals.js | 18 +- ...debug-evaluate-modify-catch-block-scope.js | 14 +- ...05581.js => debug-evaluate-modify-this.js} | 23 +- .../test/mjsunit/debug-evaluate-nested-let.js | 52 + deps/v8/test/mjsunit/debug-evaluate-nested.js | 49 + deps/v8/test/mjsunit/debug-function-scopes.js | 2 +- .../test/mjsunit/debug-multiple-var-decl.js | 74 + deps/v8/test/mjsunit/debug-scopes.js | 104 +- .../test/mjsunit/debug-step-end-of-script.js | 2 +- deps/v8/test/mjsunit/debug-step.js | 4 +- deps/v8/test/mjsunit/debug-stepin-accessor.js | 26 +- .../v8/test/mjsunit/debug-stepin-positions.js | 227 - deps/v8/test/mjsunit/declare-locally.js | 8 +- deps/v8/test/mjsunit/es6/array-concat.js | 22 +- deps/v8/test/mjsunit/es6/array-iterator.js | 4 +- .../mjsunit/es6/array-prototype-values.js | 15 + deps/v8/test/mjsunit/es6/array-tostring.js | 2 - .../es6/block-eval-var-over-legacy-const.js | 86 - .../es6/block-let-contextual-sloppy.js | 12 +- .../mjsunit/es6/built-in-accessor-names.js | 2 - deps/v8/test/mjsunit/es6/classes-proxy.js | 2 +- .../mjsunit/es6/classes-subclass-builtins.js | 113 +- deps/v8/test/mjsunit/es6/classes.js | 61 +- deps/v8/test/mjsunit/es6/classof-proxy.js | 2 +- .../test/mjsunit/es6/collection-iterator.js | 2 +- deps/v8/test/mjsunit/es6/collections.js | 2 +- deps/v8/test/mjsunit/es6/completion.js | 2 +- deps/v8/test/mjsunit/es6/debug-blockscopes.js | 1 - .../debug-evaluate-receiver-before-super.js | 39 + .../es6/debug-liveedit-new-target-1.js | 2 +- .../test/mjsunit/es6/debug-promises/events.js | 122 - .../resolve-after-aborted-try-finally.js | 32 - .../debug-promises/resolve-after-try-catch.js | 29 - .../debug-promises/rethrow-in-try-finally.js | 30 - .../throw-with-throw-in-reject.js | 1 + .../throw-with-undefined-reject.js | 69 +- .../debug-step-destructuring-assignment.js | 85 + .../debug-step-destructuring-bind.js | 14 +- .../debug-stepin-default-parameters.js | 4 +- .../{harmony => es6}/debug-stepin-proxies.js | 8 +- .../es6/debug-stepin-string-template.js | 3 +- .../mjsunit/es6/debug-stepin-tailcalls.js | 46 + .../v8/test/mjsunit/es6/debug-stepnext-for.js | 8 +- .../mjsunit/es6/debug-stepout-tailcalls.js | 45 + .../default-parameters-debug.js | 2 +- .../default-parameters-destructuring.js | 2 - .../{harmony => es6}/default-parameters.js | 2 - .../destructuring-assignment-lazy.js | 1 - .../destructuring-assignment.js | 2 - ...ucturing-parameters-literalcount-nolazy.js | 1 - .../destructuring-parameters-literalcount.js | 1 - .../mjsunit/{harmony => es6}/destructuring.js | 6 +- .../v8/test/mjsunit/es6/generators-objects.js | 2 +- .../v8/test/mjsunit/es6/instanceof-proxies.js | 2 +- .../test/mjsunit/es6/iteration-semantics.js | 2 - deps/v8/test/mjsunit/es6/json.js | 2 - deps/v8/test/mjsunit/es6/math-trunc.js | 97 +- deps/v8/test/mjsunit/es6/math.js | 2 - deps/v8/test/mjsunit/es6/new-target.js | 2 - .../mjsunit/es6/no-unicode-regexp-flag.js | 2 +- deps/v8/test/mjsunit/es6/object-tostring.js | 2 - .../test/mjsunit/es6/pattern-brand-check.js | 54 + deps/v8/test/mjsunit/es6/promises.js | 2 +- .../{harmony => es6}/proxies-accesschecks.js | 2 - .../mjsunit/{harmony => es6}/proxies-apply.js | 2 - .../mjsunit/{harmony => es6}/proxies-bind.js | 2 - .../{harmony => es6}/proxies-construct.js | 2 - .../proxies-cross-realm-exception.js | 2 +- .../proxies-define-property.js | 2 - .../proxies-delete-property.js | 2 - .../mjsunit/es6/proxies-example-membrane.js | 308 + .../mjsunit/{harmony => es6}/proxies-for.js | 94 +- deps/v8/test/mjsunit/es6/proxies-function.js | 630 + .../proxies-get-own-property-descriptor.js | 2 - .../proxies-get-prototype-of.js | 2 - .../mjsunit/{harmony => es6}/proxies-get.js | 2 +- .../proxies-global-reference.js | 2 - .../proxies-has-own-property.js | 2 - .../mjsunit/{harmony => es6}/proxies-has.js | 2 - .../mjsunit/{harmony => es6}/proxies-hash.js | 2 - .../{harmony => es6}/proxies-integrity.js | 2 - .../{harmony => es6}/proxies-is-extensible.js | 2 - .../mjsunit/{harmony => es6}/proxies-json.js | 13 +- .../mjsunit/{harmony => es6}/proxies-keys.js | 2 - .../{harmony => es6}/proxies-object-assign.js | 2 - .../{harmony => es6}/proxies-ownkeys.js | 2 - .../proxies-prevent-extensions.js | 2 - .../proxies-property-is-enumerable.js | 2 - ...proxies-prototype-handler-stackoverflow.js | 2 +- .../proxies-prototype-target-stackoverflow.js | 2 - .../{harmony => es6}/proxies-revocable.js | 3 - .../proxies-set-prototype-of.js | 2 - .../mjsunit/{harmony => es6}/proxies-set.js | 2 - .../proxies-with-unscopables.js | 2 - .../mjsunit/{harmony => es6}/proxies-with.js | 2 - .../test/mjsunit/{harmony => es6}/proxies.js | 16 +- .../mjsunit/{harmony => es6}/reflect-apply.js | 2 - .../{harmony => es6}/reflect-construct.js | 2 - .../reflect-define-property.js | 2 +- .../reflect-get-own-property-descriptor.js | 2 - .../reflect-get-prototype-of.js | 2 - .../{harmony => es6}/reflect-own-keys.js | 2 - .../reflect-prevent-extensions.js | 2 +- .../reflect-set-prototype-of.js | 2 - .../test/mjsunit/{harmony => es6}/reflect.js | 2 - .../v8/test/mjsunit/es6/regexp-constructor.js | 19 +- deps/v8/test/mjsunit/es6/regexp-flags.js | 67 +- .../mjsunit/{harmony => es6}/regexp-sticky.js | 2 - deps/v8/test/mjsunit/es6/regexp-tostring.js | 11 + .../{harmony => es6}/regress/regress-2219.js | 2 +- .../{harmony => es6}/regress/regress-2225.js | 2 - .../regress/regress-4395-global-eval.js | 2 - .../{harmony => es6}/regress/regress-4395.js | 2 - .../{harmony => es6}/regress/regress-4400.js | 2 +- .../{harmony => es6}/regress/regress-4585.js | 2 - .../test/mjsunit/es6/regress/regress-4759.js | 23 + .../regress/regress-517455.js | 2 - .../regress/regress-576662.js | 2 - .../mjsunit/es6/regress/regress-cr493566.js | 2 - .../mjsunit/es6/regress/regress-cr512574.js | 2 - .../regress/regress-crbug-448730.js | 2 +- .../regress/regress-crbug-461520.js | 2 - .../regress/regress-lookup-transition.js | 2 +- deps/v8/test/mjsunit/es6/string-endswith.js | 8 + deps/v8/test/mjsunit/es6/string-includes.js | 8 + deps/v8/test/mjsunit/es6/string-iterator.js | 2 - deps/v8/test/mjsunit/es6/string-startswith.js | 8 + deps/v8/test/mjsunit/es6/super.js | 2 +- deps/v8/test/mjsunit/es6/symbols.js | 3 +- .../mjsunit/es6/tail-call-megatest-shard0.js | 13 + .../mjsunit/es6/tail-call-megatest-shard1.js | 13 + .../mjsunit/es6/tail-call-megatest-shard2.js | 13 + .../mjsunit/es6/tail-call-megatest-shard3.js | 13 + .../mjsunit/es6/tail-call-megatest-shard4.js | 13 + .../mjsunit/es6/tail-call-megatest-shard5.js | 13 + .../mjsunit/es6/tail-call-megatest-shard6.js | 13 + .../mjsunit/es6/tail-call-megatest-shard7.js | 13 + .../mjsunit/es6/tail-call-megatest-shard8.js | 13 + .../mjsunit/es6/tail-call-megatest-shard9.js | 13 + .../v8/test/mjsunit/es6/tail-call-megatest.js | 283 +- deps/v8/test/mjsunit/es6/tail-call-proxies.js | 2 +- deps/v8/test/mjsunit/es6/tail-call-simple.js | 40 +- deps/v8/test/mjsunit/es6/tail-call.js | 159 + .../test/mjsunit/es6/typed-array-iterator.js | 8 +- deps/v8/test/mjsunit/es6/typedarray-of.js | 4 +- deps/v8/test/mjsunit/es6/typedarray-proto.js | 10 +- deps/v8/test/mjsunit/es6/typedarray.js | 2 - deps/v8/test/mjsunit/es7/object-observe.js | 2 +- deps/v8/test/mjsunit/for-in-opt.js | 47 +- deps/v8/test/mjsunit/for-in.js | 32 +- deps/v8/test/mjsunit/function-caller.js | 2 +- .../mjsunit/global-const-var-conflicts.js | 62 - .../array-species-constructor-accessor.js | 28 + .../array-species-constructor-delete.js | 3 +- .../harmony/array-species-constructor.js | 3 +- .../mjsunit/harmony/array-species-delete.js | 3 +- .../mjsunit/harmony/array-species-modified.js | 3 +- .../array-species-parent-constructor.js | 3 +- .../mjsunit/harmony/array-species-proto.js | 3 +- deps/v8/test/mjsunit/harmony/array-species.js | 2 +- deps/v8/test/mjsunit/harmony/atomics.js | 168 +- .../mjsunit/harmony/block-conflicts-sloppy.js | 2 +- .../harmony/block-const-assign-sloppy.js | 2 +- .../harmony/block-eval-var-over-let.js | 2 +- .../test/mjsunit/harmony/block-for-sloppy.js | 2 +- .../mjsunit/harmony/block-leave-sloppy.js | 2 +- .../harmony/block-let-crankshaft-sloppy.js | 2 +- .../harmony/block-let-declaration-sloppy.js | 2 +- .../harmony/block-let-semantics-sloppy.js | 2 +- .../mjsunit/harmony/block-scoping-sloppy.js | 2 +- .../harmony/block-scoping-top-level-sloppy.js | 2 +- .../mjsunit/harmony/block-sloppy-function.js | 4 +- .../debug-step-destructuring-assignment.js | 86 - .../mjsunit/harmony/do-expressions-control.js | 109 + .../v8/test/mjsunit/harmony/do-expressions.js | 1 - .../harmony/exponentiation-operator.js | 278 + deps/v8/test/mjsunit/harmony/function-name.js | 1 - deps/v8/test/mjsunit/harmony/futex.js | 36 +- deps/v8/test/mjsunit/harmony/generators.js | 24 +- .../mjsunit/harmony/harmony-string-pad-end.js | 87 + .../harmony/harmony-string-pad-start.js | 87 + .../v8/test/mjsunit/harmony/iterator-close.js | 1084 +- .../v8/test/mjsunit/harmony/module-linking.js | 298 - .../mjsunit/harmony/module-parsing-eval.js | 2 - .../test/mjsunit/harmony/module-recompile.js | 87 - .../test/mjsunit/harmony/module-resolution.js | 152 - .../v8/test/mjsunit/harmony/object-entries.js | 68 +- .../object-get-own-property-descriptors.js | 2 +- deps/v8/test/mjsunit/harmony/object-values.js | 65 +- .../test/mjsunit/harmony/private-symbols.js | 2 +- .../harmony/proxies-example-membrane.js | 512 - .../test/mjsunit/harmony/proxies-function.js | 768 - .../mjsunit/harmony/regexp-change-exec.js | 9 + deps/v8/test/mjsunit/harmony/regexp-flags.js | 56 - .../mjsunit/harmony/regexp-no-change-exec.js | 9 + .../mjsunit/harmony/regexp-property-blocks.js | 36 + .../harmony/regexp-property-char-class.js | 27 + .../harmony/regexp-property-disabled.js | 18 + .../harmony/regexp-property-exact-match.js | 33 + ...js => regexp-property-general-category.js} | 3 + .../harmony/regexp-property-scripts.js | 39 + .../mjsunit/harmony/regress/regress-343928.js | 22 - .../mjsunit/harmony/regress/regress-4482.js | 2 +- .../test/mjsunit/harmony/sharedarraybuffer.js | 2 +- deps/v8/test/mjsunit/harmony/simd.js | 2 +- .../harmony/sloppy-implicit-block-function.js | 97 + .../sloppy-restrictive-block-function.js | 52 + .../harmony/unicode-escapes-in-regexps.js | 2 +- .../mjsunit/ignition/debug-scope-on-return.js | 31 + .../ignition/debug-step-prefix-bytecodes.js | 375 + .../elided-instruction-no-ignition.js | 37 + .../mjsunit/ignition/elided-instruction.js | 41 + .../mjsunit/ignition/optimized-debug-frame.js | 38 + .../mjsunit/ignition/optimized-stack-trace.js | 22 + ...ress-597565-double-to-object-transition.js | 18 + .../ignition/regress-599001-verifyheap.js | 17 + deps/v8/test/mjsunit/ignition/tracing.js | 325 + deps/v8/test/mjsunit/json-stringify-stack.js | 8 + .../v8/test/mjsunit/lookup-behind-property.js | 6 + deps/v8/test/mjsunit/math-ceil.js | 78 + deps/v8/test/mjsunit/math-floor-part1.js | 29 + deps/v8/test/mjsunit/math-floor-part2.js | 29 + deps/v8/test/mjsunit/math-floor-part3.js | 29 + deps/v8/test/mjsunit/math-floor-part4.js | 29 + deps/v8/test/mjsunit/messages.js | 11 +- deps/v8/test/mjsunit/mirror-regexp.js | 2 +- deps/v8/test/mjsunit/mirror-script.js | 2 +- deps/v8/test/mjsunit/mjsunit.status | 341 +- deps/v8/test/mjsunit/object-literal.js | 6 +- .../mjsunit/parallel-optimize-disabled.js | 5 +- .../test/mjsunit/property-load-across-eval.js | 38 - deps/v8/test/mjsunit/readonly.js | 2 +- deps/v8/test/mjsunit/regexp-lastIndex.js | 18 + deps/v8/test/mjsunit/regexp-not-sticky-yet.js | 66 - deps/v8/test/mjsunit/regexp-string-methods.js | 2 + deps/v8/test/mjsunit/regress-3225.js | 12 +- .../mjsunit/regress-sync-optimized-lists.js | 1 - .../mjsunit/regress/get-array-keys-oob.js | 6 + .../test/mjsunit/regress/regress-1178598.js | 19 - .../test/mjsunit/regress/regress-1182832.js | 40 - .../test/mjsunit/regress/regress-1199637.js | 19 +- .../test/mjsunit/regress/regress-1201933.js | 42 - .../test/mjsunit/regress/regress-1207276.js | 38 - .../test/mjsunit/regress/regress-1213575.js | 42 - deps/v8/test/mjsunit/regress/regress-186.js | 12 - deps/v8/test/mjsunit/regress/regress-220.js | 2 + deps/v8/test/mjsunit/regress/regress-2618.js | 2 +- deps/v8/test/mjsunit/regress/regress-3138.js | 12 - .../v8/test/mjsunit/regress/regress-325676.js | 6 +- .../v8/test/mjsunit/regress/regress-343609.js | 2 +- .../v8/test/mjsunit/regress/regress-436896.js | 17 - deps/v8/test/mjsunit/regress/regress-4576.js | 12 - deps/v8/test/mjsunit/regress/regress-4693.js | 2 +- deps/v8/test/mjsunit/regress/regress-4769.js | 12 + deps/v8/test/mjsunit/regress/regress-4825.js | 95 + deps/v8/test/mjsunit/regress/regress-4970.js | 15 + deps/v8/test/mjsunit/regress/regress-5006.js | 11 + deps/v8/test/mjsunit/regress/regress-5036.js | 7 + .../v8/test/mjsunit/regress/regress-536751.js | 1 + .../v8/test/mjsunit/regress/regress-542099.js | 1 + .../v8/test/mjsunit/regress/regress-542100.js | 1 + .../v8/test/mjsunit/regress/regress-552302.js | 2 +- .../v8/test/mjsunit/regress/regress-554865.js | 2 - .../v8/test/mjsunit/regress/regress-572589.js | 1 - .../v8/test/mjsunit/regress/regress-575364.js | 4 +- .../v8/test/mjsunit/regress/regress-590074.js | 29 + .../v8/test/mjsunit/regress/regress-592341.js | 36 + .../v8/test/mjsunit/regress/regress-592353.js | 10 + .../v8/test/mjsunit/regress/regress-593299.js | 17 + .../v8/test/mjsunit/regress/regress-595319.js | 39 + .../v8/test/mjsunit/regress/regress-596718.js | 12 + .../regress/regress-599089-array-push.js | 10 + .../v8/test/mjsunit/regress/regress-599412.js | 22 + .../regress-599414-array-concat-fast-path.js | 11 + .../v8/test/mjsunit/regress/regress-599710.js | 49 + .../v8/test/mjsunit/regress/regress-599825.js | 17 + .../v8/test/mjsunit/regress/regress-602970.js | 17 + deps/v8/test/mjsunit/regress/regress-641.js | 37 - .../v8/test/mjsunit/regress/regress-799761.js | 94 - deps/v8/test/mjsunit/regress/regress-88591.js | 6 +- .../mjsunit/regress/regress-crbug-323936.js | 2 +- .../mjsunit/regress/regress-crbug-476477-1.js | 21 + .../mjsunit/regress/regress-crbug-476477-2.js | 16 + .../mjsunit/regress/regress-crbug-501809.js | 4 +- .../mjsunit/regress/regress-crbug-505907.js | 2 - .../mjsunit/regress/regress-crbug-506956.js | 2 - .../mjsunit/regress/regress-crbug-513471.js | 10 + .../mjsunit/regress/regress-crbug-537444.js | 28 + .../mjsunit/regress/regress-crbug-548580.js | 2 - .../mjsunit/regress/regress-crbug-568477-2.js | 2 +- .../mjsunit/regress/regress-crbug-573858.js | 2 +- .../mjsunit/regress/regress-crbug-587068.js | 14 + .../mjsunit/regress/regress-crbug-589472.js | 94 + .../mjsunit/regress/regress-crbug-592340.js | 13 + .../mjsunit/regress/regress-crbug-593697-2.js | 18 + .../mjsunit/regress/regress-crbug-594955.js | 11 + .../mjsunit/regress/regress-crbug-595615.js | 15 + .../mjsunit/regress/regress-crbug-595738.js | 7 + .../mjsunit/regress/regress-crbug-596394.js | 13 + .../mjsunit/regress/regress-crbug-598998.js | 32 + .../mjsunit/regress/regress-crbug-599067.js | 11 + .../mjsunit/regress/regress-crbug-599073-1.js | 11 + .../mjsunit/regress/regress-crbug-599073-2.js | 11 + .../mjsunit/regress/regress-crbug-599073-3.js | 11 + .../mjsunit/regress/regress-crbug-599073-4.js | 11 + .../mjsunit/regress/regress-crbug-599714.js | 13 + .../mjsunit/regress/regress-crbug-600995.js | 10 + .../mjsunit/regress/regress-crbug-601617.js | 32 + .../mjsunit/regress/regress-crbug-604680.js | 45 + .../mjsunit/regress/regress-crbug-608278.js | 62 + .../mjsunit/regress/regress-crbug-617524.js | 18 + .../regress-debug-deopt-while-recompile.js | 4 +- .../regress/regress-debugger-redirect.js | 37 - .../regress-handle-illegal-redeclaration.js | 15 - .../regress-inline-strong-as-construct.js | 21 - .../regress/regress-seqstrsetchar-ex2.js | 34 - .../test/mjsunit/regress/regress-v8-5009.js | 61 + deps/v8/test/mjsunit/stack-traces-custom.js | 16 +- deps/v8/test/mjsunit/strict-mode.js | 6 +- deps/v8/test/mjsunit/string-fromcharcode.js | 5 - deps/v8/test/mjsunit/strong/arrays.js | 12 - .../test/mjsunit/strong/class-extend-null.js | 97 - deps/v8/test/mjsunit/strong/class-literals.js | 159 - .../mjsunit/strong/class-object-frozen.js | 98 - deps/v8/test/mjsunit/strong/classes.js | 118 - deps/v8/test/mjsunit/strong/delete.js | 11 - deps/v8/test/mjsunit/strong/destructuring.js | 31 - .../v8/test/mjsunit/strong/empty-statement.js | 18 - deps/v8/test/mjsunit/strong/equality.js | 10 - deps/v8/test/mjsunit/strong/eval-direct.js | 22 - deps/v8/test/mjsunit/strong/for-in.js | 11 - deps/v8/test/mjsunit/strong/function-arity.js | 341 - deps/v8/test/mjsunit/strong/functions.js | 87 - .../strong/implicit-conversions-constants.js | 203 - .../strong/implicit-conversions-count.js | 168 - .../strong/implicit-conversions-inlining.js | 442 - .../mjsunit/strong/implicit-conversions.js | 412 - deps/v8/test/mjsunit/strong/literals.js | 291 - deps/v8/test/mjsunit/strong/load-builtins.js | 42 - .../load-element-mutate-backing-store.js | 239 - deps/v8/test/mjsunit/strong/load-element.js | 267 - .../load-property-mutate-backing-store.js | 174 - deps/v8/test/mjsunit/strong/load-property.js | 203 - deps/v8/test/mjsunit/strong/load-proxy.js | 100 - deps/v8/test/mjsunit/strong/load-super.js | 102 - .../strong/mutually-recursive-funcs.js | 25 - deps/v8/test/mjsunit/strong/object-delete.js | 255 - .../mjsunit/strong/object-freeze-property.js | 75 - .../mjsunit/strong/object-set-prototype.js | 83 - deps/v8/test/mjsunit/strong/super.js | 62 - deps/v8/test/mjsunit/strong/switch.js | 110 - deps/v8/test/mjsunit/strong/undefined.js | 200 - deps/v8/test/mjsunit/strong/use-strong.js | 26 - deps/v8/test/mjsunit/strong/var-let-const.js | 22 - deps/v8/test/mjsunit/tail-call-intrinsic.js | 108 - deps/v8/test/mjsunit/tools/profviz-test.log | 928 +- deps/v8/test/mjsunit/tools/tickprocessor.js | 1 - deps/v8/test/mjsunit/undetectable-compare.js | 12 + deps/v8/test/mjsunit/wasm/adapter-frame.js | 321 + deps/v8/test/mjsunit/wasm/asm-wasm-copy.js | 27 + deps/v8/test/mjsunit/wasm/asm-wasm-deopt.js | 29 + deps/v8/test/mjsunit/wasm/asm-wasm-f32.js | 242 + deps/v8/test/mjsunit/wasm/asm-wasm-f64.js | 313 + deps/v8/test/mjsunit/wasm/asm-wasm-heap.js | 239 + deps/v8/test/mjsunit/wasm/asm-wasm-i32.js | 252 + .../v8/test/mjsunit/wasm/asm-wasm-literals.js | 261 + deps/v8/test/mjsunit/wasm/asm-wasm-stdlib.js | 358 + deps/v8/test/mjsunit/wasm/asm-wasm-u32.js | 225 + deps/v8/test/mjsunit/wasm/asm-wasm.js | 475 +- deps/v8/test/mjsunit/wasm/calls.js | 211 +- deps/v8/test/mjsunit/wasm/divrem-trap.js | 45 +- deps/v8/test/mjsunit/wasm/embenchen/README | 3 + deps/v8/test/mjsunit/wasm/embenchen/box2d.js | 20325 ++++++++ deps/v8/test/mjsunit/wasm/embenchen/copy.js | 5979 +++ .../mjsunit/wasm/embenchen/corrections.js | 5986 +++ .../test/mjsunit/wasm/embenchen/fannkuch.js | 8438 +++ deps/v8/test/mjsunit/wasm/embenchen/fasta.js | 8608 ++++ .../mjsunit/wasm/embenchen/lua_binarytrees.js | 42713 ++++++++++++++++ deps/v8/test/mjsunit/wasm/embenchen/memops.js | 8090 +++ deps/v8/test/mjsunit/wasm/embenchen/primes.js | 5987 +++ deps/v8/test/mjsunit/wasm/embenchen/zlib.js | 14755 ++++++ deps/v8/test/mjsunit/wasm/export-table.js | 50 + deps/v8/test/mjsunit/wasm/ffi-error.js | 45 +- deps/v8/test/mjsunit/wasm/ffi.js | 166 +- .../test/mjsunit/wasm/function-prototype.js | 35 + deps/v8/test/mjsunit/wasm/gc-frame.js | 74 + deps/v8/test/mjsunit/wasm/import-table.js | 219 +- deps/v8/test/mjsunit/wasm/indirect-calls.js | 85 +- .../mjsunit/wasm/instantiate-module-basic.js | 54 +- .../mjsunit/wasm/instantiate-run-basic.js | 31 +- deps/v8/test/mjsunit/wasm/module-memory.js | 129 +- deps/v8/test/mjsunit/wasm/params.js | 142 +- deps/v8/test/mjsunit/wasm/stack.js | 65 +- deps/v8/test/mjsunit/wasm/stackwalk.js | 49 +- deps/v8/test/mjsunit/wasm/start-function.js | 179 +- .../mjsunit/wasm/test-wasm-module-builder.js | 153 + deps/v8/test/mjsunit/wasm/unreachable.js | 38 +- .../wasm/verify-function-basic-errors.js | 20 +- .../mjsunit/wasm/verify-function-simple.js | 14 +- .../wasm/verify-module-basic-errors.js | 20 +- deps/v8/test/mjsunit/wasm/wasm-constants.js | 52 +- .../test/mjsunit/wasm/wasm-module-builder.js | 335 + deps/v8/test/mjsunit/wasm/wasm-object-api.js | 12 +- deps/v8/test/mozilla/mozilla.status | 8 +- deps/v8/test/mozilla/testcfg.py | 6 +- deps/v8/test/preparser/functions-only.js | 38 - deps/v8/test/preparser/preparser.expectation | 14 - deps/v8/test/preparser/preparser.status | 13 - deps/v8/test/preparser/symbols-only.js | 49 - deps/v8/test/preparser/testcfg.py | 52 +- deps/v8/test/promises-aplus/testcfg.py | 8 +- deps/v8/test/simdjs/testcfg.py | 6 +- deps/v8/test/test262/archive.py | 5 + deps/v8/test/test262/test262.status | 391 +- deps/v8/test/test262/testcfg.py | 34 +- .../test/unittests/compiler/graph-unittest.h | 1 - .../compiler/int64-lowering-unittest.cc | 544 +- .../compiler/js-builtin-reducer-unittest.cc | 9 +- .../js-intrinsic-lowering-unittest.cc | 75 +- .../compiler/js-typed-lowering-unittest.cc | 2 +- .../compiler/load-elimination-unittest.cc | 15 +- .../compiler/loop-peeling-unittest.cc | 2 +- .../unittests/compiler/node-test-utils.cc | 164 +- .../test/unittests/compiler/node-test-utils.h | 36 + deps/v8/test/unittests/compiler/s390/OWNERS | 5 + .../instruction-selector-s390-unittest.cc | 11 + .../unittests/compiler/scheduler-unittest.cc | 49 +- .../compiler/select-lowering-unittest.cc | 74 - .../unittests/compiler/zone-pool-unittest.cc | 3 +- .../heap/gc-idle-time-handler-unittest.cc | 37 - .../test/unittests/heap/gc-tracer-unittest.cc | 49 + .../unittests/heap/scavenge-job-unittest.cc | 2 +- .../test/unittests/heap/slot-set-unittest.cc | 32 +- .../bytecode-array-builder-unittest.cc | 173 +- .../bytecode-array-iterator-unittest.cc | 90 +- .../bytecode-register-allocator-unittest.cc | 23 - .../interpreter/bytecodes-unittest.cc | 224 +- .../constant-array-builder-unittest.cc | 168 +- .../interpreter-assembler-unittest.cc | 410 +- .../interpreter-assembler-unittest.h | 25 +- .../register-translator-unittest.cc | 260 - .../source-position-table-unittest.cc | 84 + .../runtime/runtime-interpreter-unittest.cc | 73 - deps/v8/test/unittests/test-utils.h | 6 +- deps/v8/test/unittests/unittests.gyp | 11 +- deps/v8/test/unittests/unittests.status | 4 +- .../unittests/wasm/ast-decoder-unittest.cc | 1740 +- .../test/unittests/wasm/decoder-unittest.cc | 667 + .../test/unittests/wasm/encoder-unittest.cc | 93 +- .../wasm/loop-assignment-analysis-unittest.cc | 38 +- .../unittests/wasm/module-decoder-unittest.cc | 1129 +- .../unittests/wasm/wasm-macro-gen-unittest.cc | 53 +- .../test/webkit/class-syntax-declaration.js | 2 +- .../v8/test/webkit/class-syntax-expression.js | 2 +- .../const-without-initializer-expected.txt | 34 - .../test/webkit/const-without-initializer.js | 36 - .../test/webkit/constant-count-expected.txt | 34 - deps/v8/test/webkit/constant-count.js | 47 - .../exception-for-nonobject-expected.txt | 2 +- .../v8/test/webkit/exception-for-nonobject.js | 2 + .../webkit/fast/js/arguments-expected.txt | 1 - deps/v8/test/webkit/fast/js/arguments.js | 7 - .../fast/js/basic-strict-mode-expected.txt | 16 +- .../webkit/fast/js/kde/parse-expected.txt | 8 +- .../webkit/fast/js/parser-syntax-check.js | 2 + .../webkit/fast/regex/lastIndex-expected.txt | 6 +- .../webkit/fast/regex/toString-expected.txt | 2 +- .../webkit/function-declaration-statement.js | 2 + .../instance-of-immediates-expected.txt | 12 +- deps/v8/test/webkit/instance-of-immediates.js | 2 + deps/v8/test/webkit/testcfg.py | 10 +- deps/v8/test/webkit/webkit.status | 13 + deps/v8/tools/eval_gc_nvp.py | 42 +- deps/v8/tools/eval_gc_time.sh | 125 +- deps/v8/tools/external-reference-check.py | 2 +- deps/v8/tools/gcmole/gcmole.lua | 1 + deps/v8/tools/gen-postmortem-metadata.py | 4 - deps/v8/tools/gyp/v8.gyp | 118 +- deps/v8/tools/ll_prof.py | 100 +- deps/v8/tools/parser-shell.cc | 4 +- deps/v8/tools/presubmit.py | 1 - deps/v8/tools/profviz/composer.js | 10 +- deps/v8/tools/profviz/worker.js | 2 - deps/v8/tools/release/auto_roll.py | 1 + deps/v8/tools/release/check_clusterfuzz.py | 9 + deps/v8/tools/release/common_includes.py | 2 +- deps/v8/tools/release/test_mergeinfo.py | 180 + deps/v8/tools/release/test_scripts.py | 2 +- deps/v8/tools/run-deopt-fuzzer.py | 6 +- deps/v8/tools/run-perf.sh | 52 + deps/v8/tools/run-tests.py | 42 +- deps/v8/tools/sanitizers/sancov_formatter.py | 446 + .../tools/sanitizers/sancov_formatter_test.py | 222 + deps/v8/tools/sanitizers/sancov_merger.py | 229 + .../v8/tools/sanitizers/sancov_merger_test.py | 82 + deps/v8/tools/sanitizers/sanitize_pcs.py | 11 + deps/v8/tools/testrunner/local/commands.py | 16 +- deps/v8/tools/testrunner/local/execution.py | 42 +- deps/v8/tools/testrunner/local/statusfile.py | 9 +- deps/v8/tools/testrunner/local/testsuite.py | 26 +- deps/v8/tools/testrunner/local/utils.py | 2 + deps/v8/tools/testrunner/objects/context.py | 7 +- deps/v8/tools/testrunner/objects/output.py | 7 +- deps/v8/tools/testrunner/objects/testcase.py | 21 +- deps/v8/tools/testrunner/testrunner.isolate | 12 +- deps/v8/tools/tick-processor.html | 6 +- deps/v8/tools/tickprocessor-driver.js | 6 - deps/v8/tools/tickprocessor.js | 90 - 1487 files changed, 280129 insertions(+), 62497 deletions(-) create mode 100644 deps/v8/CODE_OF_CONDUCT.md create mode 100755 deps/v8/build/coverage_wrapper.py create mode 100644 deps/v8/src/api-arguments.cc create mode 100644 deps/v8/src/api-arguments.h create mode 100644 deps/v8/src/base/accounting-allocator.cc create mode 100644 deps/v8/src/base/accounting-allocator.h create mode 100644 deps/v8/src/collector.h create mode 100644 deps/v8/src/compiler/s390/OWNERS create mode 100644 deps/v8/src/compiler/s390/code-generator-s390.cc create mode 100644 deps/v8/src/compiler/s390/instruction-codes-s390.h create mode 100644 deps/v8/src/compiler/s390/instruction-scheduler-s390.cc create mode 100644 deps/v8/src/compiler/s390/instruction-selector-s390.cc create mode 100644 deps/v8/src/crankshaft/compilation-phase.cc create mode 100644 deps/v8/src/crankshaft/compilation-phase.h delete mode 100644 deps/v8/src/crankshaft/hydrogen-bch.cc delete mode 100644 deps/v8/src/crankshaft/hydrogen-bch.h create mode 100644 deps/v8/src/crankshaft/s390/OWNERS create mode 100644 deps/v8/src/crankshaft/s390/lithium-codegen-s390.cc create mode 100644 deps/v8/src/crankshaft/s390/lithium-codegen-s390.h create mode 100644 deps/v8/src/crankshaft/s390/lithium-gap-resolver-s390.cc create mode 100644 deps/v8/src/crankshaft/s390/lithium-gap-resolver-s390.h create mode 100644 deps/v8/src/crankshaft/s390/lithium-s390.cc create mode 100644 deps/v8/src/crankshaft/s390/lithium-s390.h create mode 100644 deps/v8/src/debug/s390/OWNERS create mode 100644 deps/v8/src/debug/s390/debug-s390.cc create mode 100644 deps/v8/src/external-reference-table.cc create mode 100644 deps/v8/src/external-reference-table.h rename deps/v8/src/{compiler => }/fast-accessor-assembler.cc (52%) rename deps/v8/src/{compiler => }/fast-accessor-assembler.h (79%) create mode 100644 deps/v8/src/full-codegen/s390/OWNERS create mode 100644 deps/v8/src/full-codegen/s390/full-codegen-s390.cc create mode 100644 deps/v8/src/heap/page-parallel-job.h delete mode 100644 deps/v8/src/heap/slots-buffer.cc delete mode 100644 deps/v8/src/heap/slots-buffer.h delete mode 100644 deps/v8/src/heap/store-buffer-inl.h create mode 100644 deps/v8/src/ic/s390/OWNERS create mode 100644 deps/v8/src/ic/s390/access-compiler-s390.cc create mode 100644 deps/v8/src/ic/s390/handler-compiler-s390.cc create mode 100644 deps/v8/src/ic/s390/ic-compiler-s390.cc create mode 100644 deps/v8/src/ic/s390/ic-s390.cc create mode 100644 deps/v8/src/ic/s390/stub-cache-s390.cc create mode 100644 deps/v8/src/interpreter/interpreter-intrinsics.cc create mode 100644 deps/v8/src/interpreter/interpreter-intrinsics.h delete mode 100644 deps/v8/src/interpreter/register-translator.cc delete mode 100644 deps/v8/src/interpreter/register-translator.h create mode 100644 deps/v8/src/js/harmony-regexp-exec.js delete mode 100644 deps/v8/src/js/harmony-regexp.js create mode 100644 deps/v8/src/js/harmony-string-padding.js rename deps/v8/src/{key-accumulator.cc => keys.cc} (65%) rename deps/v8/src/{key-accumulator.h => keys.h} (74%) create mode 100644 deps/v8/src/perf-jit.cc create mode 100644 deps/v8/src/perf-jit.h create mode 100644 deps/v8/src/regexp/s390/OWNERS create mode 100644 deps/v8/src/regexp/s390/regexp-macro-assembler-s390.cc create mode 100644 deps/v8/src/regexp/s390/regexp-macro-assembler-s390.h create mode 100644 deps/v8/src/s390/OWNERS create mode 100644 deps/v8/src/s390/assembler-s390-inl.h create mode 100644 deps/v8/src/s390/assembler-s390.cc create mode 100644 deps/v8/src/s390/assembler-s390.h create mode 100644 deps/v8/src/s390/builtins-s390.cc create mode 100644 deps/v8/src/s390/code-stubs-s390.cc create mode 100644 deps/v8/src/s390/code-stubs-s390.h create mode 100644 deps/v8/src/s390/codegen-s390.cc create mode 100644 deps/v8/src/s390/codegen-s390.h create mode 100644 deps/v8/src/s390/constants-s390.cc create mode 100644 deps/v8/src/s390/constants-s390.h create mode 100644 deps/v8/src/s390/cpu-s390.cc create mode 100644 deps/v8/src/s390/deoptimizer-s390.cc create mode 100644 deps/v8/src/s390/disasm-s390.cc create mode 100644 deps/v8/src/s390/frames-s390.cc create mode 100644 deps/v8/src/s390/frames-s390.h create mode 100644 deps/v8/src/s390/interface-descriptors-s390.cc create mode 100644 deps/v8/src/s390/macro-assembler-s390.cc create mode 100644 deps/v8/src/s390/macro-assembler-s390.h create mode 100644 deps/v8/src/s390/simulator-s390.cc create mode 100644 deps/v8/src/s390/simulator-s390.h create mode 100644 deps/v8/src/snapshot/code-serializer.cc create mode 100644 deps/v8/src/snapshot/code-serializer.h create mode 100644 deps/v8/src/snapshot/deserializer.cc create mode 100644 deps/v8/src/snapshot/deserializer.h create mode 100644 deps/v8/src/snapshot/partial-serializer.cc create mode 100644 deps/v8/src/snapshot/partial-serializer.h delete mode 100644 deps/v8/src/snapshot/serialize.cc delete mode 100644 deps/v8/src/snapshot/serialize.h create mode 100644 deps/v8/src/snapshot/serializer-common.cc create mode 100644 deps/v8/src/snapshot/serializer-common.h create mode 100644 deps/v8/src/snapshot/serializer.cc create mode 100644 deps/v8/src/snapshot/serializer.h create mode 100644 deps/v8/src/snapshot/startup-serializer.cc create mode 100644 deps/v8/src/snapshot/startup-serializer.h create mode 100644 deps/v8/src/wasm/wasm-external-refs.h create mode 100644 deps/v8/test/cctest/compiler/test-run-calls-to-external-references.cc create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/BasicBlockToBoolean.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/CallNew.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/Conditional.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ConstVariable.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/CountOperators.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/CreateArguments.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/DeadCodeRemoval.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/Delete.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/DeleteLookupSlotInEval.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/DoDebugger.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/DoExpression.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/Eval.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ForIn.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/HeapNumberConstants.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/IfConditions.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/IntegerConstants.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/JumpsRequiringConstantWideOperands.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/LetVariable.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/LogicalExpressions.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/LookupSlot.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/LookupSlotInEval.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/LookupSlotWideInEval.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/NewTarget.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ObjectLiteralsWide.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/Parameters.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/PrimitiveReturnStatements.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/PropertyLoads.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/PropertyStores.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/RegExpLiterals.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/RegExpLiteralsWide.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/StoreGlobal.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/StringConstants.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/Switch.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/ThisFunction.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/Throw.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/TryCatch.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/TryFinally.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/Typeof.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/WideRegisters.golden create mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/WithStatement.golden create mode 100644 deps/v8/test/cctest/interpreter/interpreter-tester.cc create mode 100644 deps/v8/test/cctest/interpreter/interpreter-tester.h create mode 100644 deps/v8/test/cctest/interpreter/test-interpreter-intrinsics.cc create mode 100644 deps/v8/test/cctest/test-assembler-s390.cc create mode 100644 deps/v8/test/cctest/test-disasm-s390.cc delete mode 100644 deps/v8/test/cctest/test-gc-tracer.cc create mode 100644 deps/v8/test/cctest/test-run-wasm-relocation-arm.cc create mode 100644 deps/v8/test/cctest/test-run-wasm-relocation-arm64.cc create mode 100644 deps/v8/test/cctest/test-run-wasm-relocation-ia32.cc create mode 100644 deps/v8/test/cctest/test-run-wasm-relocation-x64.cc create mode 100644 deps/v8/test/cctest/test-run-wasm-relocation-x87.cc create mode 100644 deps/v8/test/cctest/wasm/test-run-wasm-64.cc create mode 100644 deps/v8/test/fuzzer/wasm-asmjs.cc create mode 100644 deps/v8/test/fuzzer/wasm.cc create mode 100644 deps/v8/test/fuzzer/wasm/foo.wasm create mode 100644 deps/v8/test/fuzzer/wasm_asmjs/foo.wasm create mode 100644 deps/v8/test/intl/regexp-assert.js create mode 100644 deps/v8/test/intl/regexp-prepare.js create mode 100644 deps/v8/test/js-perf-test/Keys/keys.js create mode 100644 deps/v8/test/js-perf-test/Keys/run.js create mode 100644 deps/v8/test/js-perf-test/Object/ObjectTests.json create mode 100644 deps/v8/test/js-perf-test/Object/entries.js create mode 100644 deps/v8/test/js-perf-test/Object/values.js rename deps/v8/test/message/{strong-object-set-proto.js => const-decl-no-init-sloppy.js} (73%) create mode 100644 deps/v8/test/message/const-decl-no-init-sloppy.out create mode 100644 deps/v8/test/message/for-of-throw-in-body.js create mode 100644 deps/v8/test/message/for-of-throw-in-body.out rename deps/v8/test/{preparser/empty.js => message/instanceof-noncallable.js} (93%) create mode 100644 deps/v8/test/message/instanceof-noncallable.out rename deps/v8/test/message/{instanceof.js => instanceof-nonobject.js} (98%) create mode 100644 deps/v8/test/message/instanceof-nonobject.out delete mode 100644 deps/v8/test/message/instanceof.out rename deps/v8/test/{preparser => message}/non-alphanum.js (99%) create mode 100644 deps/v8/test/message/non-alphanum.out rename deps/v8/test/{preparser => message}/non-use-strict-hex-escape.js (100%) create mode 100644 deps/v8/test/message/non-use-strict-hex-escape.out rename deps/v8/test/{preparser => message}/non-use-strict-octal-escape.js (100%) create mode 100644 deps/v8/test/message/non-use-strict-octal-escape.out rename deps/v8/test/{preparser => message}/non-use-strict-uhex-escape.js (100%) create mode 100644 deps/v8/test/message/non-use-strict-uhex-escape.out rename deps/v8/test/{preparser => message}/nonstrict-arguments.js (76%) create mode 100644 deps/v8/test/message/nonstrict-arguments.out rename deps/v8/test/{preparser => message}/nonstrict-eval.js (80%) create mode 100644 deps/v8/test/message/nonstrict-eval.out rename deps/v8/test/{preparser => message}/nonstrict-with.js (92%) create mode 100644 deps/v8/test/message/nonstrict-with.out create mode 100644 deps/v8/test/message/regress/regress-4829-1.js create mode 100644 deps/v8/test/message/regress/regress-4829-1.out create mode 100644 deps/v8/test/message/regress/regress-4829-2.js create mode 100644 deps/v8/test/message/regress/regress-4829-2.out rename deps/v8/test/{preparser => message}/strict-octal-indirect-regexp.js (100%) create mode 100644 deps/v8/test/message/strict-octal-indirect-regexp.out rename deps/v8/test/{preparser => message}/strict-octal-number.js (100%) create mode 100644 deps/v8/test/message/strict-octal-number.out rename deps/v8/test/{preparser => message}/strict-octal-regexp.js (100%) create mode 100644 deps/v8/test/message/strict-octal-regexp.out rename deps/v8/test/{preparser => message}/strict-octal-string.js (100%) create mode 100644 deps/v8/test/message/strict-octal-string.out rename deps/v8/test/{preparser => message}/strict-octal-use-strict-after.js (100%) create mode 100644 deps/v8/test/message/strict-octal-use-strict-after.out rename deps/v8/test/{preparser => message}/strict-octal-use-strict-before.js (100%) create mode 100644 deps/v8/test/message/strict-octal-use-strict-before.out rename deps/v8/test/{preparser => message}/strict-with.js (100%) create mode 100644 deps/v8/test/message/strict-with.out delete mode 100644 deps/v8/test/message/strong-object-freeze-prop.out delete mode 100644 deps/v8/test/message/strong-object-set-proto.out create mode 100644 deps/v8/test/message/unicode-escape-invalid-2.js create mode 100644 deps/v8/test/message/unicode-escape-invalid-2.out create mode 100644 deps/v8/test/message/unicode-escape-invalid.js create mode 100644 deps/v8/test/message/unicode-escape-invalid.out create mode 100644 deps/v8/test/message/unicode-escape-undefined.js create mode 100644 deps/v8/test/message/unicode-escape-undefined.out create mode 100644 deps/v8/test/message/yield-in-arrow-param.js create mode 100644 deps/v8/test/message/yield-in-arrow-param.out rename deps/v8/test/message/{strong-object-freeze-prop.js => yield-in-generator-param.js} (51%) create mode 100644 deps/v8/test/message/yield-in-generator-param.out create mode 100644 deps/v8/test/mjsunit/array-foreach.js create mode 100644 deps/v8/test/mjsunit/call-intrinsic-type-error.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-600593.js delete mode 100644 deps/v8/test/mjsunit/compiler/regress-96989.js delete mode 100644 deps/v8/test/mjsunit/const-declaration.js delete mode 100644 deps/v8/test/mjsunit/const-eval-init.js delete mode 100644 deps/v8/test/mjsunit/const-redecl.js delete mode 100644 deps/v8/test/mjsunit/const.js delete mode 100644 deps/v8/test/mjsunit/debug-evaluate-const.js rename deps/v8/test/mjsunit/{regress/regress-crbug-605581.js => debug-evaluate-modify-this.js} (60%) create mode 100644 deps/v8/test/mjsunit/debug-evaluate-nested-let.js create mode 100644 deps/v8/test/mjsunit/debug-evaluate-nested.js create mode 100644 deps/v8/test/mjsunit/debug-multiple-var-decl.js delete mode 100644 deps/v8/test/mjsunit/debug-stepin-positions.js create mode 100644 deps/v8/test/mjsunit/es6/array-prototype-values.js delete mode 100644 deps/v8/test/mjsunit/es6/block-eval-var-over-legacy-const.js create mode 100644 deps/v8/test/mjsunit/es6/debug-evaluate-receiver-before-super.js delete mode 100644 deps/v8/test/mjsunit/es6/debug-promises/events.js delete mode 100644 deps/v8/test/mjsunit/es6/debug-promises/resolve-after-aborted-try-finally.js delete mode 100644 deps/v8/test/mjsunit/es6/debug-promises/resolve-after-try-catch.js delete mode 100644 deps/v8/test/mjsunit/es6/debug-promises/rethrow-in-try-finally.js create mode 100644 deps/v8/test/mjsunit/es6/debug-step-destructuring-assignment.js rename deps/v8/test/mjsunit/{harmony => es6}/debug-step-destructuring-bind.js (89%) rename deps/v8/test/mjsunit/{harmony => es6}/debug-stepin-default-parameters.js (89%) rename deps/v8/test/mjsunit/{harmony => es6}/debug-stepin-proxies.js (85%) create mode 100644 deps/v8/test/mjsunit/es6/debug-stepin-tailcalls.js create mode 100644 deps/v8/test/mjsunit/es6/debug-stepout-tailcalls.js rename deps/v8/test/mjsunit/{harmony => es6}/default-parameters-debug.js (96%) rename deps/v8/test/mjsunit/{harmony => es6}/default-parameters-destructuring.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/default-parameters.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/destructuring-assignment-lazy.js (80%) rename deps/v8/test/mjsunit/{harmony => es6}/destructuring-assignment.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/destructuring-parameters-literalcount-nolazy.js (95%) rename deps/v8/test/mjsunit/{harmony => es6}/destructuring-parameters-literalcount.js (95%) rename deps/v8/test/mjsunit/{harmony => es6}/destructuring.js (99%) create mode 100644 deps/v8/test/mjsunit/es6/pattern-brand-check.js rename deps/v8/test/mjsunit/{harmony => es6}/proxies-accesschecks.js (93%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-apply.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-bind.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-construct.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-cross-realm-exception.js (96%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-define-property.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-delete-property.js (99%) create mode 100644 deps/v8/test/mjsunit/es6/proxies-example-membrane.js rename deps/v8/test/mjsunit/{harmony => es6}/proxies-for.js (64%) create mode 100644 deps/v8/test/mjsunit/es6/proxies-function.js rename deps/v8/test/mjsunit/{harmony => es6}/proxies-get-own-property-descriptor.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-get-prototype-of.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-get.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-global-reference.js (93%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-has-own-property.js (97%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-has.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-hash.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-integrity.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-is-extensible.js (97%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-json.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-keys.js (97%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-object-assign.js (95%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-ownkeys.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-prevent-extensions.js (97%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-property-is-enumerable.js (97%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-prototype-handler-stackoverflow.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-prototype-target-stackoverflow.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-revocable.js (90%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-set-prototype-of.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-set.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-with-unscopables.js (98%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies-with.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/proxies.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/reflect-apply.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/reflect-construct.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/reflect-define-property.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/reflect-get-own-property-descriptor.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/reflect-get-prototype-of.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/reflect-own-keys.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/reflect-prevent-extensions.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/reflect-set-prototype-of.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/reflect.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/regexp-sticky.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-2219.js (97%) rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-2225.js (99%) rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-4395-global-eval.js (79%) rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-4395.js (97%) rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-4400.js (77%) rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-4585.js (94%) create mode 100644 deps/v8/test/mjsunit/es6/regress/regress-4759.js rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-517455.js (83%) rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-576662.js (92%) rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-crbug-448730.js (86%) rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-crbug-461520.js (94%) rename deps/v8/test/mjsunit/{harmony => es6}/regress/regress-lookup-transition.js (88%) create mode 100644 deps/v8/test/mjsunit/es6/tail-call-megatest-shard0.js create mode 100644 deps/v8/test/mjsunit/es6/tail-call-megatest-shard1.js create mode 100644 deps/v8/test/mjsunit/es6/tail-call-megatest-shard2.js create mode 100644 deps/v8/test/mjsunit/es6/tail-call-megatest-shard3.js create mode 100644 deps/v8/test/mjsunit/es6/tail-call-megatest-shard4.js create mode 100644 deps/v8/test/mjsunit/es6/tail-call-megatest-shard5.js create mode 100644 deps/v8/test/mjsunit/es6/tail-call-megatest-shard6.js create mode 100644 deps/v8/test/mjsunit/es6/tail-call-megatest-shard7.js create mode 100644 deps/v8/test/mjsunit/es6/tail-call-megatest-shard8.js create mode 100644 deps/v8/test/mjsunit/es6/tail-call-megatest-shard9.js delete mode 100644 deps/v8/test/mjsunit/global-const-var-conflicts.js create mode 100644 deps/v8/test/mjsunit/harmony/array-species-constructor-accessor.js delete mode 100644 deps/v8/test/mjsunit/harmony/debug-step-destructuring-assignment.js create mode 100644 deps/v8/test/mjsunit/harmony/do-expressions-control.js create mode 100644 deps/v8/test/mjsunit/harmony/exponentiation-operator.js create mode 100644 deps/v8/test/mjsunit/harmony/harmony-string-pad-end.js create mode 100644 deps/v8/test/mjsunit/harmony/harmony-string-pad-start.js delete mode 100644 deps/v8/test/mjsunit/harmony/module-linking.js delete mode 100644 deps/v8/test/mjsunit/harmony/module-recompile.js delete mode 100644 deps/v8/test/mjsunit/harmony/module-resolution.js delete mode 100644 deps/v8/test/mjsunit/harmony/proxies-example-membrane.js delete mode 100644 deps/v8/test/mjsunit/harmony/proxies-function.js create mode 100644 deps/v8/test/mjsunit/harmony/regexp-change-exec.js delete mode 100644 deps/v8/test/mjsunit/harmony/regexp-flags.js create mode 100644 deps/v8/test/mjsunit/harmony/regexp-no-change-exec.js create mode 100644 deps/v8/test/mjsunit/harmony/regexp-property-blocks.js create mode 100644 deps/v8/test/mjsunit/harmony/regexp-property-char-class.js create mode 100644 deps/v8/test/mjsunit/harmony/regexp-property-disabled.js create mode 100644 deps/v8/test/mjsunit/harmony/regexp-property-exact-match.js rename deps/v8/test/mjsunit/harmony/{unicode-regexp-property-class.js => regexp-property-general-category.js} (95%) create mode 100644 deps/v8/test/mjsunit/harmony/regexp-property-scripts.js delete mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-343928.js create mode 100644 deps/v8/test/mjsunit/harmony/sloppy-implicit-block-function.js create mode 100644 deps/v8/test/mjsunit/harmony/sloppy-restrictive-block-function.js create mode 100644 deps/v8/test/mjsunit/ignition/debug-scope-on-return.js create mode 100644 deps/v8/test/mjsunit/ignition/debug-step-prefix-bytecodes.js create mode 100644 deps/v8/test/mjsunit/ignition/elided-instruction-no-ignition.js create mode 100644 deps/v8/test/mjsunit/ignition/elided-instruction.js create mode 100644 deps/v8/test/mjsunit/ignition/optimized-debug-frame.js create mode 100644 deps/v8/test/mjsunit/ignition/optimized-stack-trace.js create mode 100644 deps/v8/test/mjsunit/ignition/regress-597565-double-to-object-transition.js create mode 100644 deps/v8/test/mjsunit/ignition/regress-599001-verifyheap.js create mode 100644 deps/v8/test/mjsunit/ignition/tracing.js create mode 100644 deps/v8/test/mjsunit/json-stringify-stack.js create mode 100644 deps/v8/test/mjsunit/lookup-behind-property.js create mode 100644 deps/v8/test/mjsunit/math-ceil.js create mode 100644 deps/v8/test/mjsunit/regexp-lastIndex.js delete mode 100644 deps/v8/test/mjsunit/regexp-not-sticky-yet.js create mode 100644 deps/v8/test/mjsunit/regress/get-array-keys-oob.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-1182832.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-1201933.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-1207276.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-1213575.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-436896.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-4576.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4769.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4825.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4970.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5006.js create mode 100644 deps/v8/test/mjsunit/regress/regress-5036.js create mode 100644 deps/v8/test/mjsunit/regress/regress-590074.js create mode 100644 deps/v8/test/mjsunit/regress/regress-592341.js create mode 100644 deps/v8/test/mjsunit/regress/regress-592353.js create mode 100644 deps/v8/test/mjsunit/regress/regress-593299.js create mode 100644 deps/v8/test/mjsunit/regress/regress-595319.js create mode 100644 deps/v8/test/mjsunit/regress/regress-596718.js create mode 100644 deps/v8/test/mjsunit/regress/regress-599089-array-push.js create mode 100644 deps/v8/test/mjsunit/regress/regress-599412.js create mode 100644 deps/v8/test/mjsunit/regress/regress-599414-array-concat-fast-path.js create mode 100644 deps/v8/test/mjsunit/regress/regress-599710.js create mode 100644 deps/v8/test/mjsunit/regress/regress-599825.js create mode 100644 deps/v8/test/mjsunit/regress/regress-602970.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-641.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-799761.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-476477-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-476477-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-513471.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-537444.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-587068.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-589472.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-592340.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-593697-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-594955.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-595615.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-595738.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-596394.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-598998.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-599067.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-599073-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-599073-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-599073-3.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-599073-4.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-599714.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-600995.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-601617.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-604680.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-608278.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-617524.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-debugger-redirect.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-handle-illegal-redeclaration.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-inline-strong-as-construct.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-seqstrsetchar-ex2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-5009.js delete mode 100644 deps/v8/test/mjsunit/strong/arrays.js delete mode 100644 deps/v8/test/mjsunit/strong/class-extend-null.js delete mode 100644 deps/v8/test/mjsunit/strong/class-literals.js delete mode 100644 deps/v8/test/mjsunit/strong/class-object-frozen.js delete mode 100644 deps/v8/test/mjsunit/strong/classes.js delete mode 100644 deps/v8/test/mjsunit/strong/delete.js delete mode 100644 deps/v8/test/mjsunit/strong/destructuring.js delete mode 100644 deps/v8/test/mjsunit/strong/empty-statement.js delete mode 100644 deps/v8/test/mjsunit/strong/equality.js delete mode 100644 deps/v8/test/mjsunit/strong/eval-direct.js delete mode 100644 deps/v8/test/mjsunit/strong/for-in.js delete mode 100644 deps/v8/test/mjsunit/strong/function-arity.js delete mode 100644 deps/v8/test/mjsunit/strong/functions.js delete mode 100644 deps/v8/test/mjsunit/strong/implicit-conversions-constants.js delete mode 100644 deps/v8/test/mjsunit/strong/implicit-conversions-count.js delete mode 100644 deps/v8/test/mjsunit/strong/implicit-conversions-inlining.js delete mode 100644 deps/v8/test/mjsunit/strong/implicit-conversions.js delete mode 100644 deps/v8/test/mjsunit/strong/literals.js delete mode 100644 deps/v8/test/mjsunit/strong/load-builtins.js delete mode 100644 deps/v8/test/mjsunit/strong/load-element-mutate-backing-store.js delete mode 100644 deps/v8/test/mjsunit/strong/load-element.js delete mode 100644 deps/v8/test/mjsunit/strong/load-property-mutate-backing-store.js delete mode 100644 deps/v8/test/mjsunit/strong/load-property.js delete mode 100644 deps/v8/test/mjsunit/strong/load-proxy.js delete mode 100644 deps/v8/test/mjsunit/strong/load-super.js delete mode 100644 deps/v8/test/mjsunit/strong/mutually-recursive-funcs.js delete mode 100644 deps/v8/test/mjsunit/strong/object-delete.js delete mode 100644 deps/v8/test/mjsunit/strong/object-freeze-property.js delete mode 100644 deps/v8/test/mjsunit/strong/object-set-prototype.js delete mode 100644 deps/v8/test/mjsunit/strong/super.js delete mode 100644 deps/v8/test/mjsunit/strong/switch.js delete mode 100644 deps/v8/test/mjsunit/strong/undefined.js delete mode 100644 deps/v8/test/mjsunit/strong/use-strong.js delete mode 100644 deps/v8/test/mjsunit/strong/var-let-const.js delete mode 100644 deps/v8/test/mjsunit/tail-call-intrinsic.js create mode 100644 deps/v8/test/mjsunit/wasm/adapter-frame.js create mode 100644 deps/v8/test/mjsunit/wasm/asm-wasm-copy.js create mode 100644 deps/v8/test/mjsunit/wasm/asm-wasm-deopt.js create mode 100644 deps/v8/test/mjsunit/wasm/asm-wasm-f32.js create mode 100644 deps/v8/test/mjsunit/wasm/asm-wasm-f64.js create mode 100644 deps/v8/test/mjsunit/wasm/asm-wasm-heap.js create mode 100644 deps/v8/test/mjsunit/wasm/asm-wasm-i32.js create mode 100644 deps/v8/test/mjsunit/wasm/asm-wasm-literals.js create mode 100644 deps/v8/test/mjsunit/wasm/asm-wasm-stdlib.js create mode 100644 deps/v8/test/mjsunit/wasm/asm-wasm-u32.js create mode 100644 deps/v8/test/mjsunit/wasm/embenchen/README create mode 100644 deps/v8/test/mjsunit/wasm/embenchen/box2d.js create mode 100644 deps/v8/test/mjsunit/wasm/embenchen/copy.js create mode 100644 deps/v8/test/mjsunit/wasm/embenchen/corrections.js create mode 100644 deps/v8/test/mjsunit/wasm/embenchen/fannkuch.js create mode 100644 deps/v8/test/mjsunit/wasm/embenchen/fasta.js create mode 100644 deps/v8/test/mjsunit/wasm/embenchen/lua_binarytrees.js create mode 100644 deps/v8/test/mjsunit/wasm/embenchen/memops.js create mode 100644 deps/v8/test/mjsunit/wasm/embenchen/primes.js create mode 100644 deps/v8/test/mjsunit/wasm/embenchen/zlib.js create mode 100644 deps/v8/test/mjsunit/wasm/export-table.js create mode 100644 deps/v8/test/mjsunit/wasm/function-prototype.js create mode 100644 deps/v8/test/mjsunit/wasm/gc-frame.js create mode 100644 deps/v8/test/mjsunit/wasm/test-wasm-module-builder.js create mode 100644 deps/v8/test/mjsunit/wasm/wasm-module-builder.js delete mode 100644 deps/v8/test/preparser/functions-only.js delete mode 100644 deps/v8/test/preparser/preparser.expectation delete mode 100644 deps/v8/test/preparser/symbols-only.js create mode 100644 deps/v8/test/unittests/compiler/s390/OWNERS create mode 100644 deps/v8/test/unittests/compiler/s390/instruction-selector-s390-unittest.cc delete mode 100644 deps/v8/test/unittests/compiler/select-lowering-unittest.cc create mode 100644 deps/v8/test/unittests/heap/gc-tracer-unittest.cc delete mode 100644 deps/v8/test/unittests/interpreter/register-translator-unittest.cc create mode 100644 deps/v8/test/unittests/interpreter/source-position-table-unittest.cc delete mode 100644 deps/v8/test/unittests/runtime/runtime-interpreter-unittest.cc create mode 100644 deps/v8/test/unittests/wasm/decoder-unittest.cc delete mode 100644 deps/v8/test/webkit/const-without-initializer-expected.txt delete mode 100644 deps/v8/test/webkit/const-without-initializer.js delete mode 100644 deps/v8/test/webkit/constant-count-expected.txt delete mode 100644 deps/v8/test/webkit/constant-count.js create mode 100755 deps/v8/tools/release/test_mergeinfo.py create mode 100755 deps/v8/tools/run-perf.sh create mode 100755 deps/v8/tools/sanitizers/sancov_formatter.py create mode 100644 deps/v8/tools/sanitizers/sancov_formatter_test.py create mode 100755 deps/v8/tools/sanitizers/sancov_merger.py create mode 100644 deps/v8/tools/sanitizers/sancov_merger_test.py create mode 100755 deps/v8/tools/sanitizers/sanitize_pcs.py diff --git a/deps/v8/.ycm_extra_conf.py b/deps/v8/.ycm_extra_conf.py index e065a0896bdb82..a451d9f31c34b0 100644 --- a/deps/v8/.ycm_extra_conf.py +++ b/deps/v8/.ycm_extra_conf.py @@ -42,7 +42,7 @@ # Flags from YCM's default config. flags = [ '-DUSE_CLANG_COMPLETER', -'-std=gnu++0x', +'-std=gnu++11', '-x', 'c++', ] diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index ceffb49a99be45..60b6c51db5eb1a 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -71,6 +71,7 @@ Jianghua Yang Joel Stanley Johan Bergström Jonathan Liu +Julien Brianceau JunHo Seo Kang-Hao (Kenny) Lu Karl Skomski @@ -87,6 +88,7 @@ Michael Smith Mike Gilbert Mike Pennisi Milton Chiang +Myeong-bo Shim Nicolas Antonius Ernst Leopold Maria Kaiser Paolo Giarrusso Patrick Gansterer diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 5f3baf23c9cff6..28aca24afc81c4 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -21,6 +21,12 @@ declare_args() { # Enable the snapshot feature, for fast context creation. # http://v8project.blogspot.com/2015/09/custom-startup-snapshots.html v8_use_snapshot = true + + # Similar to vfp but on MIPS. + v8_can_use_fpu_instructions = true + + # Similar to the ARM hard float ABI but on MIPS. + v8_use_mips_abi_hardfloat = true } # TODO(jochen): These will need to be user-settable to support standalone V8 @@ -28,7 +34,7 @@ declare_args() { v8_deprecation_warnings = false v8_enable_disassembler = false v8_enable_gdbjit = false -v8_enable_handle_zapping = is_debug +v8_enable_handle_zapping = false v8_enable_i18n_support = true v8_enable_verify_heap = false v8_interpreted_regexp = false @@ -77,6 +83,11 @@ config("internal_config_base") { include_dirs = [ "." ] } +# This config should be applied to code using the libplatform. +config("libplatform_config") { + include_dirs = [ "include" ] +} + # This config should only be applied to code using V8 and not any V8 code # itself. config("external_config") { @@ -137,48 +148,93 @@ config("toolchain") { defines = [] cflags = [] - # TODO(jochen): Add support for arm subarchs, mips, mipsel, mips64el. - if (v8_target_arch == "arm") { defines += [ "V8_TARGET_ARCH_ARM" ] - if (current_cpu == "arm") { - if (arm_version == 7) { - defines += [ "CAN_USE_ARMV7_INSTRUCTIONS" ] - } - if (arm_fpu == "vfpv3-d16") { - defines += [ "CAN_USE_VFP3_INSTRUCTIONS" ] - } else if (arm_fpu == "vfpv3") { - defines += [ - "CAN_USE_VFP3_INSTRUCTIONS", - "CAN_USE_VFP32DREGS", - ] - } else if (arm_fpu == "neon") { - defines += [ - "CAN_USE_VFP3_INSTRUCTIONS", - "CAN_USE_VFP32DREGS", - "CAN_USE_NEON", - ] - } - } else { - # These defines ares used for the ARM simulator. + if (arm_version == 7) { + defines += [ "CAN_USE_ARMV7_INSTRUCTIONS" ] + } + if (arm_fpu == "vfpv3-d16") { + defines += [ "CAN_USE_VFP3_INSTRUCTIONS" ] + } else if (arm_fpu == "vfpv3") { + defines += [ + "CAN_USE_VFP3_INSTRUCTIONS", + "CAN_USE_VFP32DREGS", + ] + } else if (arm_fpu == "neon") { defines += [ - "CAN_USE_ARMV7_INSTRUCTIONS", "CAN_USE_VFP3_INSTRUCTIONS", "CAN_USE_VFP32DREGS", - "USE_EABI_HARDFLOAT=0", + "CAN_USE_NEON", ] } - # TODO(jochen): Add support for arm_test_noprobe. + + if (current_cpu != "arm") { + # These defines ares used for the ARM simulator. + if (arm_float_abi == "hard") { + defines += [ "USE_EABI_HARDFLOAT=1" ] + } else if (arm_float_abi == "softfp") { + defines += [ "USE_EABI_HARDFLOAT=0" ] + } + } } if (v8_target_arch == "arm64") { defines += [ "V8_TARGET_ARCH_ARM64" ] } + # TODO(jochen): Add support for mips. if (v8_target_arch == "mipsel") { defines += [ "V8_TARGET_ARCH_MIPS" ] + if (v8_can_use_fpu_instructions) { + defines += [ "CAN_USE_FPU_INSTRUCTIONS" ] + } + if (v8_use_mips_abi_hardfloat) { + defines += [ + "__mips_hard_float=1", + "CAN_USE_FPU_INSTRUCTIONS", + ] + } else { + defines += [ "__mips_soft_float=1" ] + } + if (mips_arch_variant == "r6") { + defines += [ + "_MIPS_ARCH_MIPS32R6", + "FPU_MODE_FP64", + ] + } else if (mips_arch_variant == "r2") { + defines += [ "_MIPS_ARCH_MIPS32R2" ] + if (mips_fpu_mode == "fp64") { + defines += [ "FPU_MODE_FP64" ] + } else if (mips_fpu_mode == "fpxx") { + defines += [ "FPU_MODE_FPXX" ] + } else if (mips_fpu_mode == "fp32") { + defines += [ "FPU_MODE_FP32" ] + } + } else if (mips_arch_variant == "r1") { + defines += [ "FPU_MODE_FP32" ] + } + # TODO(jochen): Add support for mips_arch_variant rx and loongson. } + # TODO(jochen): Add support for mips64. if (v8_target_arch == "mips64el") { defines += [ "V8_TARGET_ARCH_MIPS64" ] + if (v8_can_use_fpu_instructions) { + defines += [ "CAN_USE_FPU_INSTRUCTIONS" ] + } + # TODO(jochen): Add support for big endian host byteorder. + defines += [ "V8_TARGET_ARCH_MIPS64_LE" ] + if (v8_use_mips_abi_hardfloat) { + defines += [ + "__mips_hard_float=1", + "CAN_USE_FPU_INSTRUCTIONS", + ] + } else { + defines += [ "__mips_soft_float=1" ] + } + if (mips_arch_variant == "r6") { + defines += [ "_MIPS_ARCH_MIPS64R6" ] + } else if (mips_arch_variant == "r2") { + defines += [ "_MIPS_ARCH_MIPS64R2" ] + } } if (v8_target_arch == "s390") { defines += [ "V8_TARGET_ARCH_S390" ] @@ -227,8 +283,11 @@ action("js2c") { # The script depends on this other script, this rule causes a rebuild if it # changes. - inputs = [ "tools/jsmin.py" ] + inputs = [ + "tools/jsmin.py", + ] + # NOSORT sources = [ "src/js/macros.py", "src/messages.h", @@ -257,6 +316,7 @@ action("js2c") { "src/js/string-iterator.js", "src/js/templates.js", "src/js/spread.js", + "src/js/proxy.js", "src/debug/mirrors.js", "src/debug/debug.js", "src/debug/liveedit.js", @@ -291,21 +351,24 @@ action("js2c_experimental") { # The script depends on this other script, this rule causes a rebuild if it # changes. - inputs = [ "tools/jsmin.py" ] + inputs = [ + "tools/jsmin.py", + ] + # NOSORT sources = [ "src/js/macros.py", "src/messages.h", - "src/js/proxy.js", "src/js/generator.js", "src/js/harmony-atomics.js", - "src/js/harmony-regexp.js", + "src/js/harmony-regexp-exec.js", "src/js/harmony-object-observe.js", "src/js/harmony-sharedarraybuffer.js", "src/js/harmony-simd.js", "src/js/harmony-species.js", "src/js/harmony-unicode-regexps.js", - "src/js/promise-extra.js" + "src/js/harmony-string-padding.js", + "src/js/promise-extra.js", ] outputs = [ @@ -334,7 +397,9 @@ action("js2c_extras") { # The script depends on this other script, this rule causes a rebuild if it # changes. - inputs = [ "tools/jsmin.py" ] + inputs = [ + "tools/jsmin.py", + ] sources = v8_extra_library_files @@ -343,8 +408,7 @@ action("js2c_extras") { ] args = [ - rebase_path("$target_gen_dir/extras-libraries.cc", - root_build_dir), + rebase_path("$target_gen_dir/extras-libraries.cc", root_build_dir), "EXTRAS", ] + rebase_path(sources, root_build_dir) @@ -364,7 +428,9 @@ action("js2c_experimental_extras") { # The script depends on this other script, this rule causes a rebuild if it # changes. - inputs = [ "tools/jsmin.py" ] + inputs = [ + "tools/jsmin.py", + ] sources = v8_experimental_extra_library_files @@ -382,7 +448,8 @@ action("js2c_experimental_extras") { outputs += [ "$target_gen_dir/libraries_experimental_extras.bin" ] args += [ "--startup_blob", - rebase_path("$target_gen_dir/libraries_experimental_extras.bin", root_build_dir), + rebase_path("$target_gen_dir/libraries_experimental_extras.bin", + root_build_dir), ] } } @@ -392,6 +459,7 @@ action("d8_js2c") { script = "tools/js2c.py" + # NOSORT inputs = [ "src/d8.js", "src/js/macros.py", @@ -425,10 +493,11 @@ if (v8_use_external_startup_data) { deps = [ ":js2c", ":js2c_experimental", - ":js2c_extras", ":js2c_experimental_extras", + ":js2c_extras", ] + # NOSORT sources = [ "$target_gen_dir/libraries.bin", "$target_gen_dir/libraries_experimental.bin", @@ -456,6 +525,7 @@ action("postmortem-metadata") { script = "tools/gen-postmortem-metadata.py" + # NOSORT sources = [ "src/objects.h", "src/objects-inl.h", @@ -486,9 +556,6 @@ action("run_mksnapshot") { "./" + rebase_path(get_label_info(":mksnapshot($snapshot_toolchain)", "root_out_dir") + "/mksnapshot", root_build_dir), - "--log-snapshot-positions", - "--logfile", - rebase_path("$target_gen_dir/snapshot.log", root_build_dir), "--startup_src", rebase_path("$target_gen_dir/snapshot.cc", root_build_dir), ] @@ -519,16 +586,16 @@ source_set("v8_nosnapshot") { deps = [ ":js2c", ":js2c_experimental", - ":js2c_extras", ":js2c_experimental_extras", + ":js2c_extras", ":v8_base", ] sources = [ - "$target_gen_dir/libraries.cc", + "$target_gen_dir/experimental-extras-libraries.cc", "$target_gen_dir/experimental-libraries.cc", "$target_gen_dir/extras-libraries.cc", - "$target_gen_dir/experimental-extras-libraries.cc", + "$target_gen_dir/libraries.cc", "src/snapshot/snapshot-empty.cc", ] @@ -552,8 +619,8 @@ source_set("v8_snapshot") { deps = [ ":js2c", ":js2c_experimental", - ":js2c_extras", ":js2c_experimental_extras", + ":js2c_extras", ":v8_base", ] public_deps = [ @@ -563,10 +630,10 @@ source_set("v8_snapshot") { ] sources = [ - "$target_gen_dir/libraries.cc", + "$target_gen_dir/experimental-extras-libraries.cc", "$target_gen_dir/experimental-libraries.cc", "$target_gen_dir/extras-libraries.cc", - "$target_gen_dir/experimental-extras-libraries.cc", + "$target_gen_dir/libraries.cc", "$target_gen_dir/snapshot.cc", ] @@ -586,8 +653,8 @@ if (v8_use_external_startup_data) { deps = [ ":js2c", ":js2c_experimental", - ":js2c_extras", ":js2c_experimental_extras", + ":js2c_extras", ":v8_base", ] public_deps = [ @@ -629,22 +696,24 @@ source_set("v8_base") { "src/accessors.h", "src/address-map.cc", "src/address-map.h", - "src/allocation.cc", - "src/allocation.h", "src/allocation-site-scopes.cc", "src/allocation-site-scopes.h", - "src/api.cc", - "src/api.h", + "src/allocation.cc", + "src/allocation.h", + "src/api-arguments.cc", + "src/api-arguments.h", "src/api-experimental.cc", "src/api-experimental.h", "src/api-natives.cc", "src/api-natives.h", + "src/api.cc", + "src/api.h", "src/arguments.cc", "src/arguments.h", "src/assembler.cc", "src/assembler.h", - "src/assert-scope.h", "src/assert-scope.cc", + "src/assert-scope.h", "src/ast/ast-expression-rewriter.cc", "src/ast/ast-expression-rewriter.h", "src/ast/ast-expression-visitor.cc", @@ -684,27 +753,30 @@ source_set("v8_base") { "src/bootstrapper.h", "src/builtins.cc", "src/builtins.h", - "src/cancelable-task.cc", - "src/cancelable-task.h", "src/cached-powers.cc", "src/cached-powers.h", - "src/char-predicates.cc", + "src/cancelable-task.cc", + "src/cancelable-task.h", "src/char-predicates-inl.h", + "src/char-predicates.cc", "src/char-predicates.h", "src/checks.h", "src/code-factory.cc", "src/code-factory.h", + "src/code-stubs-hydrogen.cc", "src/code-stubs.cc", "src/code-stubs.h", - "src/code-stubs-hydrogen.cc", "src/codegen.cc", "src/codegen.h", + "src/collector.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.cc", + "src/compiler.h", "src/compiler/access-builder.cc", "src/compiler/access-builder.h", "src/compiler/access-info.cc", @@ -723,9 +795,9 @@ source_set("v8_base") { "src/compiler/bytecode-branch-analysis.h", "src/compiler/bytecode-graph-builder.cc", "src/compiler/bytecode-graph-builder.h", + "src/compiler/c-linkage.cc", "src/compiler/change-lowering.cc", "src/compiler/change-lowering.h", - "src/compiler/c-linkage.cc", "src/compiler/coalesced-live-ranges.cc", "src/compiler/coalesced-live-ranges.h", "src/compiler/code-generator-impl.h", @@ -748,18 +820,16 @@ source_set("v8_base") { "src/compiler/dead-code-elimination.cc", "src/compiler/dead-code-elimination.h", "src/compiler/diamond.h", - "src/compiler/escape-analysis.cc", - "src/compiler/escape-analysis.h", "src/compiler/escape-analysis-reducer.cc", "src/compiler/escape-analysis-reducer.h", - "src/compiler/fast-accessor-assembler.cc", - "src/compiler/fast-accessor-assembler.h", - "src/compiler/frame.cc", - "src/compiler/frame.h", + "src/compiler/escape-analysis.cc", + "src/compiler/escape-analysis.h", "src/compiler/frame-elider.cc", "src/compiler/frame-elider.h", "src/compiler/frame-states.cc", "src/compiler/frame-states.h", + "src/compiler/frame.cc", + "src/compiler/frame.h", "src/compiler/gap-resolver.cc", "src/compiler/gap-resolver.h", "src/compiler/graph-reducer.cc", @@ -800,10 +870,10 @@ source_set("v8_base") { "src/compiler/js-global-object-specialization.h", "src/compiler/js-graph.cc", "src/compiler/js-graph.h", - "src/compiler/js-inlining.cc", - "src/compiler/js-inlining.h", "src/compiler/js-inlining-heuristic.cc", "src/compiler/js-inlining-heuristic.h", + "src/compiler/js-inlining.cc", + "src/compiler/js-inlining.h", "src/compiler/js-intrinsic-lowering.cc", "src/compiler/js-intrinsic-lowering.h", "src/compiler/js-native-context-specialization.cc", @@ -822,9 +892,9 @@ source_set("v8_base") { "src/compiler/liveness-analyzer.h", "src/compiler/load-elimination.cc", "src/compiler/load-elimination.h", - "src/compiler/loop-peeling.cc", "src/compiler/loop-analysis.cc", "src/compiler/loop-analysis.h", + "src/compiler/loop-peeling.cc", "src/compiler/machine-operator-reducer.cc", "src/compiler/machine-operator-reducer.h", "src/compiler/machine-operator.cc", @@ -850,16 +920,16 @@ source_set("v8_base") { "src/compiler/operator.h", "src/compiler/osr.cc", "src/compiler/osr.h", - "src/compiler/pipeline.cc", - "src/compiler/pipeline.h", "src/compiler/pipeline-statistics.cc", "src/compiler/pipeline-statistics.h", + "src/compiler/pipeline.cc", + "src/compiler/pipeline.h", "src/compiler/raw-machine-assembler.cc", "src/compiler/raw-machine-assembler.h", - "src/compiler/register-allocator.cc", - "src/compiler/register-allocator.h", "src/compiler/register-allocator-verifier.cc", "src/compiler/register-allocator-verifier.h", + "src/compiler/register-allocator.cc", + "src/compiler/register-allocator.h", "src/compiler/representation-change.cc", "src/compiler/representation-change.h", "src/compiler/schedule.cc", @@ -895,8 +965,6 @@ source_set("v8_base") { "src/compiler/wasm-linkage.cc", "src/compiler/zone-pool.cc", "src/compiler/zone-pool.h", - "src/compiler.cc", - "src/compiler.h", "src/context-measure.cc", "src/context-measure.h", "src/contexts-inl.h", @@ -907,11 +975,11 @@ source_set("v8_base") { "src/conversions.h", "src/counters.cc", "src/counters.h", + "src/crankshaft/compilation-phase.cc", + "src/crankshaft/compilation-phase.h", "src/crankshaft/hydrogen-alias-analysis.h", "src/crankshaft/hydrogen-bce.cc", "src/crankshaft/hydrogen-bce.h", - "src/crankshaft/hydrogen-bch.cc", - "src/crankshaft/hydrogen-bch.h", "src/crankshaft/hydrogen-canonicalize.cc", "src/crankshaft/hydrogen-canonicalize.h", "src/crankshaft/hydrogen-check-elimination.cc", @@ -1011,12 +1079,16 @@ source_set("v8_base") { "src/extensions/statistics-extension.h", "src/extensions/trigger-failure-extension.cc", "src/extensions/trigger-failure-extension.h", + "src/external-reference-table.cc", + "src/external-reference-table.h", "src/factory.cc", "src/factory.h", + "src/fast-accessor-assembler.cc", + "src/fast-accessor-assembler.h", "src/fast-dtoa.cc", "src/fast-dtoa.h", - "src/field-index.h", "src/field-index-inl.h", + "src/field-index.h", "src/field-type.cc", "src/field-type.h", "src/fixed-dtoa.cc", @@ -1064,47 +1136,43 @@ source_set("v8_base") { "src/heap/objects-visiting-inl.h", "src/heap/objects-visiting.cc", "src/heap/objects-visiting.h", + "src/heap/page-parallel-job.h", "src/heap/remembered-set.cc", "src/heap/remembered-set.h", - "src/heap/scavenge-job.h", "src/heap/scavenge-job.cc", + "src/heap/scavenge-job.h", "src/heap/scavenger-inl.h", "src/heap/scavenger.cc", "src/heap/scavenger.h", "src/heap/slot-set.h", - "src/heap/slots-buffer.cc", - "src/heap/slots-buffer.h", "src/heap/spaces-inl.h", "src/heap/spaces.cc", "src/heap/spaces.h", - "src/heap/store-buffer-inl.h", "src/heap/store-buffer.cc", "src/heap/store-buffer.h", "src/i18n.cc", "src/i18n.h", - "src/icu_util.cc", - "src/icu_util.h", "src/ic/access-compiler.cc", "src/ic/access-compiler.h", "src/ic/call-optimization.cc", "src/ic/call-optimization.h", "src/ic/handler-compiler.cc", "src/ic/handler-compiler.h", + "src/ic/ic-compiler.cc", + "src/ic/ic-compiler.h", "src/ic/ic-inl.h", "src/ic/ic-state.cc", "src/ic/ic-state.h", "src/ic/ic.cc", "src/ic/ic.h", - "src/ic/ic-compiler.cc", - "src/ic/ic-compiler.h", "src/ic/stub-cache.cc", "src/ic/stub-cache.h", + "src/icu_util.cc", + "src/icu_util.h", "src/identity-map.cc", "src/identity-map.h", "src/interface-descriptors.cc", "src/interface-descriptors.h", - "src/interpreter/bytecodes.cc", - "src/interpreter/bytecodes.h", "src/interpreter/bytecode-array-builder.cc", "src/interpreter/bytecode-array-builder.h", "src/interpreter/bytecode-array-iterator.cc", @@ -1114,18 +1182,20 @@ source_set("v8_base") { "src/interpreter/bytecode-register-allocator.cc", "src/interpreter/bytecode-register-allocator.h", "src/interpreter/bytecode-traits.h", + "src/interpreter/bytecodes.cc", + "src/interpreter/bytecodes.h", "src/interpreter/constant-array-builder.cc", "src/interpreter/constant-array-builder.h", "src/interpreter/control-flow-builders.cc", "src/interpreter/control-flow-builders.h", "src/interpreter/handler-table-builder.cc", "src/interpreter/handler-table-builder.h", - "src/interpreter/interpreter.cc", - "src/interpreter/interpreter.h", "src/interpreter/interpreter-assembler.cc", "src/interpreter/interpreter-assembler.h", - "src/interpreter/register-translator.cc", - "src/interpreter/register-translator.h", + "src/interpreter/interpreter-intrinsics.cc", + "src/interpreter/interpreter-intrinsics.h", + "src/interpreter/interpreter.cc", + "src/interpreter/interpreter.h", "src/interpreter/source-position-table.cc", "src/interpreter/source-position-table.h", "src/isolate-inl.h", @@ -1133,8 +1203,8 @@ source_set("v8_base") { "src/isolate.h", "src/json-parser.h", "src/json-stringifier.h", - "src/key-accumulator.h", - "src/key-accumulator.cc", + "src/keys.cc", + "src/keys.h", "src/layout-descriptor-inl.h", "src/layout-descriptor.cc", "src/layout-descriptor.h", @@ -1147,9 +1217,9 @@ source_set("v8_base") { "src/log.h", "src/lookup.cc", "src/lookup.h", - "src/macro-assembler.h", "src/machine-type.cc", "src/machine-type.h", + "src/macro-assembler.h", "src/messages.cc", "src/messages.h", "src/msan.h", @@ -1188,6 +1258,8 @@ source_set("v8_base") { "src/parsing/token.h", "src/pending-compilation-error-handler.cc", "src/pending-compilation-error-handler.h", + "src/perf-jit.cc", + "src/perf-jit.h", "src/profiler/allocation-tracker.cc", "src/profiler/allocation-tracker.h", "src/profiler/circular-queue-inl.h", @@ -1279,19 +1351,29 @@ source_set("v8_base") { "src/signature.h", "src/simulator.h", "src/small-pointer-list.h", - "src/snapshot/natives.h", + "src/snapshot/code-serializer.cc", + "src/snapshot/code-serializer.h", + "src/snapshot/deserializer.cc", + "src/snapshot/deserializer.h", "src/snapshot/natives-common.cc", - "src/snapshot/serialize.cc", - "src/snapshot/serialize.h", + "src/snapshot/natives.h", + "src/snapshot/partial-serializer.cc", + "src/snapshot/partial-serializer.h", + "src/snapshot/serializer-common.cc", + "src/snapshot/serializer-common.h", + "src/snapshot/serializer.cc", + "src/snapshot/serializer.h", "src/snapshot/snapshot-common.cc", "src/snapshot/snapshot-source-sink.cc", "src/snapshot/snapshot-source-sink.h", + "src/snapshot/snapshot.h", + "src/snapshot/startup-serializer.cc", + "src/snapshot/startup-serializer.h", "src/source-position.h", - "src/splay-tree.h", "src/splay-tree-inl.h", - "src/snapshot/snapshot.h", - "src/startup-data-util.h", + "src/splay-tree.h", "src/startup-data-util.cc", + "src/startup-data-util.h", "src/string-builder.cc", "src/string-builder.h", "src/string-search.h", @@ -1299,6 +1381,8 @@ source_set("v8_base") { "src/string-stream.h", "src/strtod.cc", "src/strtod.h", + "src/third_party/fdlibm/fdlibm.cc", + "src/third_party/fdlibm/fdlibm.h", "src/tracing/trace-event.cc", "src/tracing/trace-event.h", "src/transitions-inl.h", @@ -1317,13 +1401,13 @@ source_set("v8_base") { "src/typing-asm.h", "src/typing-reset.cc", "src/typing-reset.h", - "src/unicode-inl.h", - "src/unicode.cc", - "src/unicode.h", "src/unicode-cache-inl.h", "src/unicode-cache.h", "src/unicode-decoder.cc", "src/unicode-decoder.h", + "src/unicode-inl.h", + "src/unicode.cc", + "src/unicode.h", "src/utils-inl.h", "src/utils.cc", "src/utils.h", @@ -1345,6 +1429,7 @@ source_set("v8_base") { "src/wasm/encoder.h", "src/wasm/module-decoder.cc", "src/wasm/module-decoder.h", + "src/wasm/wasm-external-refs.h", "src/wasm/wasm-js.cc", "src/wasm/wasm-js.h", "src/wasm/wasm-macro-gen.h", @@ -1354,26 +1439,24 @@ source_set("v8_base") { "src/wasm/wasm-opcodes.h", "src/wasm/wasm-result.cc", "src/wasm/wasm-result.h", - "src/zone.cc", - "src/zone.h", "src/zone-allocator.h", "src/zone-containers.h", - "src/third_party/fdlibm/fdlibm.cc", - "src/third_party/fdlibm/fdlibm.h", + "src/zone.cc", + "src/zone.h", ] if (v8_target_arch == "x86") { sources += [ + "src/compiler/ia32/code-generator-ia32.cc", + "src/compiler/ia32/instruction-codes-ia32.h", + "src/compiler/ia32/instruction-scheduler-ia32.cc", + "src/compiler/ia32/instruction-selector-ia32.cc", "src/crankshaft/ia32/lithium-codegen-ia32.cc", "src/crankshaft/ia32/lithium-codegen-ia32.h", "src/crankshaft/ia32/lithium-gap-resolver-ia32.cc", "src/crankshaft/ia32/lithium-gap-resolver-ia32.h", "src/crankshaft/ia32/lithium-ia32.cc", "src/crankshaft/ia32/lithium-ia32.h", - "src/compiler/ia32/code-generator-ia32.cc", - "src/compiler/ia32/instruction-codes-ia32.h", - "src/compiler/ia32/instruction-scheduler-ia32.cc", - "src/compiler/ia32/instruction-selector-ia32.cc", "src/debug/ia32/debug-ia32.cc", "src/full-codegen/ia32/full-codegen-ia32.cc", "src/ia32/assembler-ia32-inl.h", @@ -1394,8 +1477,8 @@ source_set("v8_base") { "src/ia32/macro-assembler-ia32.h", "src/ic/ia32/access-compiler-ia32.cc", "src/ic/ia32/handler-compiler-ia32.cc", - "src/ic/ia32/ic-ia32.cc", "src/ic/ia32/ic-compiler-ia32.cc", + "src/ic/ia32/ic-ia32.cc", "src/ic/ia32/stub-cache-ia32.cc", "src/regexp/ia32/regexp-macro-assembler-ia32.cc", "src/regexp/ia32/regexp-macro-assembler-ia32.h", @@ -1416,8 +1499,8 @@ source_set("v8_base") { "src/full-codegen/x64/full-codegen-x64.cc", "src/ic/x64/access-compiler-x64.cc", "src/ic/x64/handler-compiler-x64.cc", - "src/ic/x64/ic-x64.cc", "src/ic/x64/ic-compiler-x64.cc", + "src/ic/x64/ic-x64.cc", "src/ic/x64/stub-cache-x64.cc", "src/regexp/x64/regexp-macro-assembler-x64.cc", "src/regexp/x64/regexp-macro-assembler-x64.h", @@ -1448,8 +1531,8 @@ source_set("v8_base") { "src/arm/code-stubs-arm.h", "src/arm/codegen-arm.cc", "src/arm/codegen-arm.h", - "src/arm/constants-arm.h", "src/arm/constants-arm.cc", + "src/arm/constants-arm.h", "src/arm/cpu-arm.cc", "src/arm/deoptimizer-arm.cc", "src/arm/disasm-arm.cc", @@ -1483,19 +1566,19 @@ source_set("v8_base") { ] } else if (v8_target_arch == "arm64") { sources += [ + "src/arm64/assembler-arm64-inl.h", "src/arm64/assembler-arm64.cc", "src/arm64/assembler-arm64.h", - "src/arm64/assembler-arm64-inl.h", "src/arm64/builtins-arm64.cc", - "src/arm64/codegen-arm64.cc", - "src/arm64/codegen-arm64.h", "src/arm64/code-stubs-arm64.cc", "src/arm64/code-stubs-arm64.h", + "src/arm64/codegen-arm64.cc", + "src/arm64/codegen-arm64.h", "src/arm64/constants-arm64.h", "src/arm64/cpu-arm64.cc", + "src/arm64/decoder-arm64-inl.h", "src/arm64/decoder-arm64.cc", "src/arm64/decoder-arm64.h", - "src/arm64/decoder-arm64-inl.h", "src/arm64/deoptimizer-arm64.cc", "src/arm64/disasm-arm64.cc", "src/arm64/disasm-arm64.h", @@ -1507,9 +1590,9 @@ source_set("v8_base") { "src/arm64/instrument-arm64.h", "src/arm64/interface-descriptors-arm64.cc", "src/arm64/interface-descriptors-arm64.h", + "src/arm64/macro-assembler-arm64-inl.h", "src/arm64/macro-assembler-arm64.cc", "src/arm64/macro-assembler-arm64.h", - "src/arm64/macro-assembler-arm64-inl.h", "src/arm64/simulator-arm64.cc", "src/arm64/simulator-arm64.h", "src/arm64/utils-arm64.cc", @@ -1518,9 +1601,9 @@ source_set("v8_base") { "src/compiler/arm64/instruction-codes-arm64.h", "src/compiler/arm64/instruction-scheduler-arm64.cc", "src/compiler/arm64/instruction-selector-arm64.cc", + "src/crankshaft/arm64/delayed-masm-arm64-inl.h", "src/crankshaft/arm64/delayed-masm-arm64.cc", "src/crankshaft/arm64/delayed-masm-arm64.h", - "src/crankshaft/arm64/delayed-masm-arm64-inl.h", "src/crankshaft/arm64/lithium-arm64.cc", "src/crankshaft/arm64/lithium-arm64.h", "src/crankshaft/arm64/lithium-codegen-arm64.cc", @@ -1553,17 +1636,17 @@ source_set("v8_base") { "src/full-codegen/mips/full-codegen-mips.cc", "src/ic/mips/access-compiler-mips.cc", "src/ic/mips/handler-compiler-mips.cc", - "src/ic/mips/ic-mips.cc", "src/ic/mips/ic-compiler-mips.cc", + "src/ic/mips/ic-mips.cc", "src/ic/mips/stub-cache-mips.cc", + "src/mips/assembler-mips-inl.h", "src/mips/assembler-mips.cc", "src/mips/assembler-mips.h", - "src/mips/assembler-mips-inl.h", "src/mips/builtins-mips.cc", - "src/mips/codegen-mips.cc", - "src/mips/codegen-mips.h", "src/mips/code-stubs-mips.cc", "src/mips/code-stubs-mips.h", + "src/mips/codegen-mips.cc", + "src/mips/codegen-mips.h", "src/mips/constants-mips.cc", "src/mips/constants-mips.h", "src/mips/cpu-mips.cc", @@ -1595,17 +1678,17 @@ source_set("v8_base") { "src/full-codegen/mips64/full-codegen-mips64.cc", "src/ic/mips64/access-compiler-mips64.cc", "src/ic/mips64/handler-compiler-mips64.cc", - "src/ic/mips64/ic-mips64.cc", "src/ic/mips64/ic-compiler-mips64.cc", + "src/ic/mips64/ic-mips64.cc", "src/ic/mips64/stub-cache-mips64.cc", + "src/mips64/assembler-mips64-inl.h", "src/mips64/assembler-mips64.cc", "src/mips64/assembler-mips64.h", - "src/mips64/assembler-mips64-inl.h", "src/mips64/builtins-mips64.cc", - "src/mips64/codegen-mips64.cc", - "src/mips64/codegen-mips64.h", "src/mips64/code-stubs-mips64.cc", "src/mips64/code-stubs-mips64.h", + "src/mips64/codegen-mips64.cc", + "src/mips64/codegen-mips64.h", "src/mips64/constants-mips64.cc", "src/mips64/constants-mips64.h", "src/mips64/cpu-mips64.cc", @@ -1621,6 +1704,48 @@ source_set("v8_base") { "src/regexp/mips64/regexp-macro-assembler-mips64.cc", "src/regexp/mips64/regexp-macro-assembler-mips64.h", ] + } else if (v8_target_arch == "s390" || v8_target_arch == "s390x") { + sources += [ + "src/compiler/s390/code-generator-s390.cc", + "src/compiler/s390/instruction-codes-s390.h", + "src/compiler/s390/instruction-scheduler-s390.cc", + "src/compiler/s390/instruction-selector-s390.cc", + "src/crankshaft/s390/lithium-codegen-s390.cc", + "src/crankshaft/s390/lithium-codegen-s390.h", + "src/crankshaft/s390/lithium-gap-resolver-s390.cc", + "src/crankshaft/s390/lithium-gap-resolver-s390.h", + "src/crankshaft/s390/lithium-s390.cc", + "src/crankshaft/s390/lithium-s390.h", + "src/debug/s390/debug-s390.cc", + "src/full-codegen/s390/full-codegen-s390.cc", + "src/ic/s390/access-compiler-s390.cc", + "src/ic/s390/handler-compiler-s390.cc", + "src/ic/s390/ic-compiler-s390.cc", + "src/ic/s390/ic-s390.cc", + "src/ic/s390/stub-cache-s390.cc", + "src/regexp/s390/regexp-macro-assembler-s390.cc", + "src/regexp/s390/regexp-macro-assembler-s390.h", + "src/s390/assembler-s390-inl.h", + "src/s390/assembler-s390.cc", + "src/s390/assembler-s390.h", + "src/s390/builtins-s390.cc", + "src/s390/code-stubs-s390.cc", + "src/s390/code-stubs-s390.h", + "src/s390/codegen-s390.cc", + "src/s390/codegen-s390.h", + "src/s390/constants-s390.cc", + "src/s390/constants-s390.h", + "src/s390/cpu-s390.cc", + "src/s390/deoptimizer-s390.cc", + "src/s390/disasm-s390.cc", + "src/s390/frames-s390.cc", + "src/s390/frames-s390.h", + "src/s390/interface-descriptors-s390.cc", + "src/s390/macro-assembler-s390.cc", + "src/s390/macro-assembler-s390.h", + "src/s390/simulator-s390.cc", + "src/s390/simulator-s390.h", + ] } configs -= [ "//build/config/compiler:chromium_code" ] @@ -1671,14 +1796,16 @@ source_set("v8_libbase") { visibility = [ ":*" ] # Only targets in this file can depend on this. sources = [ + "src/base/accounting-allocator.cc", + "src/base/accounting-allocator.h", "src/base/adapters.h", "src/base/atomicops.h", "src/base/atomicops_internals_arm64_gcc.h", "src/base/atomicops_internals_arm_gcc.h", "src/base/atomicops_internals_atomicword_compat.h", "src/base/atomicops_internals_mac.h", - "src/base/atomicops_internals_mips_gcc.h", "src/base/atomicops_internals_mips64_gcc.h", + "src/base/atomicops_internals_mips_gcc.h", "src/base/atomicops_internals_portable.h", "src/base/atomicops_internals_s390_gcc.h", "src/base/atomicops_internals_tsan.h", @@ -1702,16 +1829,16 @@ source_set("v8_libbase") { "src/base/macros.h", "src/base/once.cc", "src/base/once.h", - "src/base/platform/elapsed-timer.h", - "src/base/platform/time.cc", - "src/base/platform/time.h", "src/base/platform/condition-variable.cc", "src/base/platform/condition-variable.h", + "src/base/platform/elapsed-timer.h", "src/base/platform/mutex.cc", "src/base/platform/mutex.h", "src/base/platform/platform.h", "src/base/platform/semaphore.cc", "src/base/platform/semaphore.h", + "src/base/platform/time.cc", + "src/base/platform/time.h", "src/base/safe_conversions.h", "src/base/safe_conversions_impl.h", "src/base/safe_math.h", @@ -1745,10 +1872,16 @@ source_set("v8_libbase") { if (is_linux) { sources += [ "src/base/platform/platform-linux.cc" ] - libs = [ "dl", "rt" ] + libs = [ + "dl", + "rt", + ] } else if (is_android) { if (current_toolchain == host_toolchain) { - libs = [ "dl", "rt" ] + libs = [ + "dl", + "rt", + ] if (host_os == "mac") { sources += [ "src/base/platform/platform-macos.cc" ] } else { @@ -1818,6 +1951,7 @@ source_set("fuzzer_support") { configs += [ "//build/config/compiler:no_chromium_code" ] configs += [ ":internal_config_base", + ":libplatform_config", ":features", ":toolchain", ] @@ -1844,6 +1978,7 @@ if (current_toolchain == snapshot_toolchain) { configs += [ "//build/config/compiler:no_chromium_code" ] configs += [ ":internal_config", + ":libplatform_config", ":features", ":toolchain", ] @@ -1933,9 +2068,7 @@ if ((current_toolchain == host_toolchain && v8_toolset_for_d8 == "host") || } if (!is_component_build) { - sources += [ - "$target_gen_dir/d8-js.cc", - ] + sources += [ "$target_gen_dir/d8-js.cc" ] } if (v8_enable_i18n_support) { deps += [ "//third_party/icu" ] @@ -1956,6 +2089,7 @@ source_set("json_fuzzer") { configs += [ "//build/config/compiler:no_chromium_code" ] configs += [ ":internal_config", + ":libplatform_config", ":features", ":toolchain", ] @@ -1974,6 +2108,7 @@ source_set("parser_fuzzer") { configs += [ "//build/config/compiler:no_chromium_code" ] configs += [ ":internal_config", + ":libplatform_config", ":features", ":toolchain", ] @@ -1992,6 +2127,45 @@ source_set("regexp_fuzzer") { configs += [ "//build/config/compiler:no_chromium_code" ] configs += [ ":internal_config", + ":libplatform_config", + ":features", + ":toolchain", + ] +} + +source_set("wasm_fuzzer") { + sources = [ + "test/fuzzer/wasm.cc", + ] + + deps = [ + ":fuzzer_support", + ] + + configs -= [ "//build/config/compiler:chromium_code" ] + configs += [ "//build/config/compiler:no_chromium_code" ] + configs += [ + ":internal_config", + ":libplatform_config", + ":features", + ":toolchain", + ] +} + +source_set("wasm_asmjs_fuzzer") { + sources = [ + "test/fuzzer/wasm-asmjs.cc", + ] + + deps = [ + ":fuzzer_support", + ] + + configs -= [ "//build/config/compiler:chromium_code" ] + configs += [ "//build/config/compiler:no_chromium_code" ] + configs += [ + ":internal_config", + ":libplatform_config", ":features", ":toolchain", ] diff --git a/deps/v8/CODE_OF_CONDUCT.md b/deps/v8/CODE_OF_CONDUCT.md new file mode 100644 index 00000000000000..15fc2259ada6b7 --- /dev/null +++ b/deps/v8/CODE_OF_CONDUCT.md @@ -0,0 +1,8 @@ +# V8 Code of Conduct + +As part of the Chromium team, the V8 team is committed to preserving and +fostering a diverse, welcoming community. To this end, the [Chromium Code of +Conduct](https://chromium.googlesource.com/chromium/src/+/master/CODE_OF_CONDUCT.md) +applies to our repos and organizations, mailing lists, blog content, and any +other Chromium-supported communication group, as well as any private +communication initiated in the context of these spaces. diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index 9e21ba1cd76881..dc97b8042244cc 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,1764 @@ +2016-04-06: Version 5.1.281 + + Performance and stability improvements on all platforms. + + +2016-04-05: Version 5.1.280 + + Performance and stability improvements on all platforms. + + +2016-04-05: Version 5.1.279 + + Ship --harmony-regexp-exec (issue 4602). + + Performance and stability improvements on all platforms. + + +2016-04-05: Version 5.1.278 + + [V8] Removed debugger V8::PromiseEvent (Chromium issue 526811). + + [asm.js] Fix typing bug for non-literals in heap access (Chromium issue + 599825). + + Ensure CreateDataProperty works correctly on TypedArrays (Chromium issue + 596394). + + Performance and stability improvements on all platforms. + + +2016-04-05: Version 5.1.277 + + Performance and stability improvements on all platforms. + + +2016-04-05: Version 5.1.276 + + Performance and stability improvements on all platforms. + + +2016-04-05: Version 5.1.275 + + Performance and stability improvements on all platforms. + + +2016-04-05: Version 5.1.274 + + Performance and stability improvements on all platforms. + + +2016-04-05: Version 5.1.273 + + Performance and stability improvements on all platforms. + + +2016-04-05: Version 5.1.272 + + Performance and stability improvements on all platforms. + + +2016-04-05: Version 5.1.271 + + Performance and stability improvements on all platforms. + + +2016-04-04: Version 5.1.270 + + Performance and stability improvements on all platforms. + + +2016-04-04: Version 5.1.269 + + Performance and stability improvements on all platforms. + + +2016-04-04: Version 5.1.268 + + Performance and stability improvements on all platforms. + + +2016-04-04: Version 5.1.267 + + [api] Restrict Template::Set to take templates or primitive values. + + Performance and stability improvements on all platforms. + + +2016-04-04: Version 5.1.266 + + Performance and stability improvements on all platforms. + + +2016-04-04: Version 5.1.265 + + Performance and stability improvements on all platforms. + + +2016-04-04: Version 5.1.264 + + Performance and stability improvements on all platforms. + + +2016-04-04: Version 5.1.263 + + Performance and stability improvements on all platforms. + + +2016-04-04: Version 5.1.262 + + Performance and stability improvements on all platforms. + + +2016-04-04: Version 5.1.261 + + Performance and stability improvements on all platforms. + + +2016-04-04: Version 5.1.260 + + Performance and stability improvements on all platforms. + + +2016-04-04: Version 5.1.259 + + Further ES2015 RegExp spec compliance fixes (issue 4602). + + Performance and stability improvements on all platforms. + + +2016-04-03: Version 5.1.258 + + Performance and stability improvements on all platforms. + + +2016-04-02: Version 5.1.257 + + Performance and stability improvements on all platforms. + + +2016-04-02: Version 5.1.256 + + Performance and stability improvements on all platforms. + + +2016-04-02: Version 5.1.255 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.254 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.253 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.252 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.251 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.250 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.249 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.248 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.247 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.246 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.245 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.244 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.243 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.242 + + Performance and stability improvements on all platforms. + + +2016-04-01: Version 5.1.241 + + [GN] Define USE_EABI_HARDFLOAT=1 when arm_float_abi=="hard" (Chromium + issue 592660). + + Ship --harmony-regexp-exec (issue 4602). + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.240 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.239 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.238 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.237 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.236 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.235 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.234 + + [arm/Linux] Don't rely on KUSER_HELPERS feature (Chromium issue 599051). + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.233 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.232 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.231 + + Turn scavenge_reclaim_unmodified_objects on by default (Chromium issue + 4880). + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.230 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.229 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.228 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.227 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.226 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.225 + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.224 + + Raise minimum Mac OS version to 10.7 (issue 4847). + + Performance and stability improvements on all platforms. + + +2016-03-31: Version 5.1.223 + + Performance and stability improvements on all platforms. + + +2016-03-30: Version 5.1.222 + + Performance and stability improvements on all platforms. + + +2016-03-30: Version 5.1.221 + + Performance and stability improvements on all platforms. + + +2016-03-30: Version 5.1.220 + + Stage --harmony-regexp-exec (issue 4602). + + Add fast paths for native RegExps in ES2015 subclass-aware code (issue + 4602). + + [V8] Add FunctionMirror.prototype.contextDebugId method (Chromium issue + 595206). + + Performance and stability improvements on all platforms. + + +2016-03-30: Version 5.1.219 + + Remove RegExp.prototype.source getter compat workaround (issue 4827, + Chromium issue 581577). + + Check for proper types from error handling code (Chromium issue 596718). + + Add ES2015 RegExp full subclassing semantics behind a flag (issue 4602). + + Performance and stability improvements on all platforms. + + +2016-03-24: Version 5.1.218 + + Performance and stability improvements on all platforms. + + +2016-03-24: Version 5.1.217 + + [esnext] implement String padding proposal. + + Performance and stability improvements on all platforms. + + +2016-03-24: Version 5.1.216 + + Performance and stability improvements on all platforms. + + +2016-03-24: Version 5.1.215 + + Performance and stability improvements on all platforms. + + +2016-03-24: Version 5.1.214 + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.213 + + Implement ES2015 labelled function declaration restrictions (Chromium + issue 595309). + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.212 + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.211 + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.210 + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.209 + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.208 + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.207 + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.206 + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.205 + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.204 + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.203 + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.202 + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.201 + + Performance and stability improvements on all platforms. + + +2016-03-23: Version 5.1.200 + + Performance and stability improvements on all platforms. + + +2016-03-22: Version 5.1.199 + + Performance and stability improvements on all platforms. + + +2016-03-22: Version 5.1.198 + + Performance and stability improvements on all platforms. + + +2016-03-22: Version 5.1.197 + + Performance and stability improvements on all platforms. + + +2016-03-22: Version 5.1.196 + + Performance and stability improvements on all platforms. + + +2016-03-22: Version 5.1.195 + + Performance and stability improvements on all platforms. + + +2016-03-22: Version 5.1.194 + + Fix match default behavior on strings for ES2015 semantics (issue 4602). + + Performance and stability improvements on all platforms. + + +2016-03-22: Version 5.1.193 + + Performance and stability improvements on all platforms. + + +2016-03-22: Version 5.1.192 + + Performance and stability improvements on all platforms. + + +2016-03-22: Version 5.1.191 + + [Interpreter] TurboFan implementation of intrinsics (issue 4822). + + Performance and stability improvements on all platforms. + + +2016-03-22: Version 5.1.190 + + Performance and stability improvements on all platforms. + + +2016-03-21: Version 5.1.189 + + Performance and stability improvements on all platforms. + + +2016-03-21: Version 5.1.188 + + Performance and stability improvements on all platforms. + + +2016-03-21: Version 5.1.187 + + Performance and stability improvements on all platforms. + + +2016-03-21: Version 5.1.186 + + Performance and stability improvements on all platforms. + + +2016-03-21: Version 5.1.185 + + Performance and stability improvements on all platforms. + + +2016-03-21: Version 5.1.184 + + Performance and stability improvements on all platforms. + + +2016-03-21: Version 5.1.183 + + Performance and stability improvements on all platforms. + + +2016-03-21: Version 5.1.182 + + Performance and stability improvements on all platforms. + + +2016-03-21: Version 5.1.181 + + Temporarily undeprecate ForceSet (Chromium issue 595601). + + Performance and stability improvements on all platforms. + + +2016-03-21: Version 5.1.180 + + Performance and stability improvements on all platforms. + + +2016-03-20: Version 5.1.179 + + Performance and stability improvements on all platforms. + + +2016-03-20: Version 5.1.178 + + Performance and stability improvements on all platforms. + + +2016-03-20: Version 5.1.177 + + Performance and stability improvements on all platforms. + + +2016-03-19: Version 5.1.176 + + Performance and stability improvements on all platforms. + + +2016-03-18: Version 5.1.175 + + Performance and stability improvements on all platforms. + + +2016-03-18: Version 5.1.174 + + Performance and stability improvements on all platforms. + + +2016-03-18: Version 5.1.173 + + Parser: Make skipping HTML comments optional (Chromium issue 573887). + + [es7] implement exponentiation operator proposal (issue 3915). + + Performance and stability improvements on all platforms. + + +2016-03-18: Version 5.1.172 + + Performance and stability improvements on all platforms. + + +2016-03-18: Version 5.1.171 + + Performance and stability improvements on all platforms. + + +2016-03-18: Version 5.1.170 + + Performance and stability improvements on all platforms. + + +2016-03-18: Version 5.1.169 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.168 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.167 + + Throw the right exceptions from setting elements in + Array.prototype.concat (Chromium issue 595319). + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.166 + + Throw exceptions from CreateDataProperty when should_throw (Chromium + issue 595319). + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.165 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.164 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.163 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.162 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.161 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.160 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.159 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.158 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.157 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.156 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.155 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.154 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.153 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.152 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.151 + + Move FastAccessorAssembler from RawMachineAssembler to CodeStubAssembler + (Chromium issue 508898). + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.150 + + [serializer] Add API to warm up startup snapshot with an additional + script (issue 4836). + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.149 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.148 + + Performance and stability improvements on all platforms. + + +2016-03-17: Version 5.1.147 + + Performance and stability improvements on all platforms. + + +2016-03-16: Version 5.1.146 + + Ship ES2015 restrictions on function declaration locations (issue 4824). + + Performance and stability improvements on all platforms. + + +2016-03-16: Version 5.1.145 + + Performance and stability improvements on all platforms. + + +2016-03-16: Version 5.1.144 + + Performance and stability improvements on all platforms. + + +2016-03-16: Version 5.1.143 + + Performance and stability improvements on all platforms. + + +2016-03-16: Version 5.1.142 + + Performance and stability improvements on all platforms. + + +2016-03-16: Version 5.1.141 + + Performance and stability improvements on all platforms. + + +2016-03-16: Version 5.1.140 + + Put RegExp js code in strict mode (issue 4504). + + Performance and stability improvements on all platforms. + + +2016-03-15: Version 5.1.139 + + Performance and stability improvements on all platforms. + + +2016-03-15: Version 5.1.138 + + [builtins] Fix Array.prototype.concat bug (Chromium issue 594574). + + Performance and stability improvements on all platforms. + + +2016-03-15: Version 5.1.137 + + Performance and stability improvements on all platforms. + + +2016-03-15: Version 5.1.136 + + Performance and stability improvements on all platforms. + + +2016-03-15: Version 5.1.135 + + Ship Array.prototype.values (issue 4247). + + Performance and stability improvements on all platforms. + + +2016-03-15: Version 5.1.134 + + Performance and stability improvements on all platforms. + + +2016-03-15: Version 5.1.133 + + Performance and stability improvements on all platforms. + + +2016-03-15: Version 5.1.132 + + Performance and stability improvements on all platforms. + + +2016-03-15: Version 5.1.131 + + Performance and stability improvements on all platforms. + + +2016-03-15: Version 5.1.130 + + Performance and stability improvements on all platforms. + + +2016-03-15: Version 5.1.129 + + Performance and stability improvements on all platforms. + + +2016-03-15: Version 5.1.128 + + Performance and stability improvements on all platforms. + + +2016-03-14: Version 5.1.127 + + Performance and stability improvements on all platforms. + + +2016-03-14: Version 5.1.126 + + Remove --harmony-modules flag and let embedder decide when modules are + used (issue 1569, Chromium issue 594639). + + Performance and stability improvements on all platforms. + + +2016-03-14: Version 5.1.125 + + Make test262 test runner check for which exception is thrown (issue + 4803). + + Performance and stability improvements on all platforms. + + +2016-03-14: Version 5.1.124 + + Performance and stability improvements on all platforms. + + +2016-03-14: Version 5.1.123 + + Performance and stability improvements on all platforms. + + +2016-03-14: Version 5.1.122 + + Performance and stability improvements on all platforms. + + +2016-03-14: Version 5.1.121 + + Performance and stability improvements on all platforms. + + +2016-03-14: Version 5.1.120 + + Performance and stability improvements on all platforms. + + +2016-03-14: Version 5.1.119 + + Performance and stability improvements on all platforms. + + +2016-03-13: Version 5.1.118 + + Performance and stability improvements on all platforms. + + +2016-03-11: Version 5.1.117 + + Performance and stability improvements on all platforms. + + +2016-03-11: Version 5.1.116 + + Performance and stability improvements on all platforms. + + +2016-03-11: Version 5.1.115 + + Performance and stability improvements on all platforms. + + +2016-03-11: Version 5.1.114 + + [arm64] Fix i/d cache line size confusion typo (Chromium issue 593867). + + Performance and stability improvements on all platforms. + + +2016-03-11: Version 5.1.113 + + Fix expression positions for for-loops (issue 4690). + + Performance and stability improvements on all platforms. + + +2016-03-11: Version 5.1.112 + + Performance and stability improvements on all platforms. + + +2016-03-11: Version 5.1.111 + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.110 + + Minor library function fixes for TypedArray spec compliance (issue + 4785). + + Check that Promise subclasses have callable resolve/reject (issue 4633). + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.109 + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.108 + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.107 + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.106 + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.105 + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.104 + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.103 + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.102 + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.101 + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.100 + + [strong] Remove all remainders of strong mode (issue 3956). + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.99 + + Marks the label associated with the runtime call in + CodeStubAssembler::Allocate as deferred (Chromium issue 593359). + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.98 + + Implement iterator finalization in array destructuring (issue 3566). + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.97 + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.96 + + Performance and stability improvements on all platforms. + + +2016-03-10: Version 5.1.95 + + String.prototype[Symbol.iterator] does RequireObjectCoercible(this) + (issue 4348). + + Stage restrictive declarations flag (issue 4824). + + Expose Array.prototype.values behind a flag and stage it (issue 4247). + + Performance and stability improvements on all platforms. + + +2016-03-09: Version 5.1.94 + + Performance and stability improvements on all platforms. + + +2016-03-09: Version 5.1.93 + + Ensure appropriate bounds checking for Array subclass concat (Chromium + issue 592340). + + Performance and stability improvements on all platforms. + + +2016-03-09: Version 5.1.92 + + Performance and stability improvements on all platforms. + + +2016-03-09: Version 5.1.91 + + Performance and stability improvements on all platforms. + + +2016-03-09: Version 5.1.90 + + Performance and stability improvements on all platforms. + + +2016-03-09: Version 5.1.89 + + Performance and stability improvements on all platforms. + + +2016-03-09: Version 5.1.88 + + Performance and stability improvements on all platforms. + + +2016-03-09: Version 5.1.87 + + Performance and stability improvements on all platforms. + + +2016-03-09: Version 5.1.86 + + Performance and stability improvements on all platforms. + + +2016-03-09: Version 5.1.85 + + Performance and stability improvements on all platforms. + + +2016-03-09: Version 5.1.84 + + Performance and stability improvements on all platforms. + + +2016-03-08: Version 5.1.83 + + Performance and stability improvements on all platforms. + + +2016-03-08: Version 5.1.82 + + Performance and stability improvements on all platforms. + + +2016-03-08: Version 5.1.81 + + Optimize new TypedArray(typedArray) constructor (Chromium issue 592007). + + Ensure the @@species protector is updated for accessors (issue 4093). + + Add UseCounters for various RegExp compatibility issues (Chromium issue + 581577). + + Performance and stability improvements on all platforms. + + +2016-03-08: Version 5.1.80 + + Performance and stability improvements on all platforms. + + +2016-03-08: Version 5.1.79 + + Performance and stability improvements on all platforms. + + +2016-03-08: Version 5.1.78 + + Performance and stability improvements on all platforms. + + +2016-03-08: Version 5.1.77 + + Performance and stability improvements on all platforms. + + +2016-03-08: Version 5.1.76 + + Performance and stability improvements on all platforms. + + +2016-03-08: Version 5.1.75 + + Performance and stability improvements on all platforms. + + +2016-03-08: Version 5.1.74 + + Performance and stability improvements on all platforms. + + +2016-03-08: Version 5.1.73 + + Performance and stability improvements on all platforms. + + +2016-03-08: Version 5.1.72 + + Performance and stability improvements on all platforms. + + +2016-03-08: Version 5.1.71 + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.70 + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.69 + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.68 + + [key-accumulator] Starting to reimplement the key-accumulator (issue + 4758, Chromium issue 545503). + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.67 + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.66 + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.65 + + [key-accumulator] Starting to reimplement the key-accumulator (issue + 4758, Chromium issue 545503). + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.64 + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.63 + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.62 + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.61 + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.60 + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.59 + + Use v8::kGCCallbackFlagCollectAllAvailableGarbage in + Heap::CollectAllAvailableGarbage (Chromium issue 591463). + + [key-accumulator] Starting to reimplement the key-accumulator (issue + 4758, Chromium issue 545503). + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.58 + + [regexp] Fix off-by-one in CharacterRange::Negate (Chromium issue + 592343). + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.57 + + Performance and stability improvements on all platforms. + + +2016-03-07: Version 5.1.56 + + Use v8::kGCCallbackFlagCollectAllAvailableGarbage in + Heap::CollectAllAvailableGarbage (Chromium issue 591463). + + Performance and stability improvements on all platforms. + + +2016-03-06: Version 5.1.55 + + Performance and stability improvements on all platforms. + + +2016-03-06: Version 5.1.54 + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.53 + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.52 + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.51 + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.50 + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.49 + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.48 + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.47 + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.46 + + Introduce v8::MicrotasksScope (Chromium issue 585949). + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.45 + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.44 + + Use a different GCCallbackFlag for GCs triggered by + CollectAllAvailableGarbage (Chromium issue 591463). + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.43 + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.42 + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.41 + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.40 + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.39 + + Ship ES2015 Function.name reform (issue 3699, Chromium issue 588803). + + Introduce v8::MicrotasksScope (Chromium issue 585949). + + Performance and stability improvements on all platforms. + + +2016-03-04: Version 5.1.38 + + Performance and stability improvements on all platforms. + + +2016-03-03: Version 5.1.37 + + Restrict FunctionDeclarations in Statement position (issue 4647). + + Performance and stability improvements on all platforms. + + +2016-03-03: Version 5.1.36 + + Performance and stability improvements on all platforms. + + +2016-03-03: Version 5.1.35 + + Performance and stability improvements on all platforms. + + +2016-03-03: Version 5.1.34 + + Performance and stability improvements on all platforms. + + +2016-03-03: Version 5.1.33 + + Performance and stability improvements on all platforms. + + +2016-03-03: Version 5.1.32 + + Performance and stability improvements on all platforms. + + +2016-03-03: Version 5.1.31 + + Performance and stability improvements on all platforms. + + +2016-03-03: Version 5.1.30 + + Implement TypedArray(typedarray) constructor (issue 4726). + + Performance and stability improvements on all platforms. + + +2016-03-02: Version 5.1.29 + + Performance and stability improvements on all platforms. + + +2016-03-02: Version 5.1.28 + + [turbofan] Adds an Allocate macro to the CodeStubAssembler (Chromium + issue 588692). + + Performance and stability improvements on all platforms. + + +2016-03-02: Version 5.1.27 + + Performance and stability improvements on all platforms. + + +2016-03-02: Version 5.1.26 + + Performance and stability improvements on all platforms. + + +2016-03-02: Version 5.1.25 + + Performance and stability improvements on all platforms. + + +2016-03-02: Version 5.1.24 + + Devtools: expose scopes source location to debugger (Chromium issue + 327092). + + CodeStubAssembler can generate code for builtins (issue 4614). + + Performance and stability improvements on all platforms. + + +2016-03-01: Version 5.1.23 + + Performance and stability improvements on all platforms. + + +2016-03-01: Version 5.1.22 + + Performance and stability improvements on all platforms. + + +2016-03-01: Version 5.1.21 + + Performance and stability improvements on all platforms. + + +2016-03-01: Version 5.1.20 + + Performance and stability improvements on all platforms. + + +2016-03-01: Version 5.1.19 + + Performance and stability improvements on all platforms. + + +2016-03-01: Version 5.1.18 + + Performance and stability improvements on all platforms. + + +2016-03-01: Version 5.1.17 + + Performance and stability improvements on all platforms. + + +2016-03-01: Version 5.1.16 + + Performance and stability improvements on all platforms. + + +2016-03-01: Version 5.1.15 + + Performance and stability improvements on all platforms. + + +2016-03-01: Version 5.1.14 + + Performance and stability improvements on all platforms. + + +2016-03-01: Version 5.1.13 + + Performance and stability improvements on all platforms. + + +2016-03-01: Version 5.1.12 + + Performance and stability improvements on all platforms. + + +2016-03-01: Version 5.1.11 + + Make %TypedArray%.from spec-compliant (issue 4782). + + Performance and stability improvements on all platforms. + + +2016-02-29: Version 5.1.10 + + Performance and stability improvements on all platforms. + + +2016-02-29: Version 5.1.9 + + Performance and stability improvements on all platforms. + + +2016-02-28: Version 5.1.8 + + Performance and stability improvements on all platforms. + + +2016-02-28: Version 5.1.7 + + Performance and stability improvements on all platforms. + + +2016-02-28: Version 5.1.6 + + Performance and stability improvements on all platforms. + + +2016-02-28: Version 5.1.5 + + Performance and stability improvements on all platforms. + + +2016-02-28: Version 5.1.4 + + Performance and stability improvements on all platforms. + + +2016-02-28: Version 5.1.3 + + Performance and stability improvements on all platforms. + + +2016-02-28: Version 5.1.2 + + Performance and stability improvements on all platforms. + + +2016-02-27: Version 5.1.1 + + Fix strict mode function error message (issue 2198). + + Reland of Make Intl install properties more like how other builtins do + (patchset #1 id:1 of https://codereview.chromium.org/1733293003/ ) + (issue 4778). + + [turbofan] Bailout if LoadBuffer typing assumption doesn't hold + (Chromium issue 589792). + + Performance and stability improvements on all platforms. + + +2016-02-26: Version 5.0.104 + + Performance and stability improvements on all platforms. + + +2016-02-26: Version 5.0.103 + + Make Intl install properties more like how other builtins do (issue + 4778). + + Performance and stability improvements on all platforms. + + +2016-02-26: Version 5.0.102 + + Make TypedArray.from and TypedArray.of writable and configurable (issue + 4315). + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.101 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.100 + + Ship ES2015 iterator finalization (issue 3566). + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.99 + + Introduce MicrotasksCompletedCallback (Chromium issue 585949). + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.98 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.97 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.96 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.95 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.94 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.93 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.92 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.91 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.90 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.89 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.88 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.87 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.86 + + Performance and stability improvements on all platforms. + + +2016-02-25: Version 5.0.85 + + Performance and stability improvements on all platforms. + + +2016-02-24: Version 5.0.84 + + Performance and stability improvements on all platforms. + + +2016-02-24: Version 5.0.83 + + Performance and stability improvements on all platforms. + + +2016-02-24: Version 5.0.82 + + Ensure IteratorClose is called for errors in non-declaring assignments + (issue 4776). + + Fix priority of exceptions being thrown from for-of loops (issue 4775). + + Performance and stability improvements on all platforms. + + +2016-02-24: Version 5.0.81 + + Performance and stability improvements on all platforms. + + +2016-02-24: Version 5.0.80 + + Encode interpreter::SourcePositionTable as variable-length ints (issue + 4690). + + Stage ES2015 iterator finalization (issue 3566). + + Performance and stability improvements on all platforms. + + +2016-02-24: Version 5.0.79 + + Performance and stability improvements on all platforms. + + +2016-02-24: Version 5.0.78 + + Performance and stability improvements on all platforms. + + +2016-02-24: Version 5.0.77 + + Performance and stability improvements on all platforms. + + +2016-02-24: Version 5.0.76 + + Performance and stability improvements on all platforms. + + +2016-02-24: Version 5.0.75 + + Performance and stability improvements on all platforms. + + +2016-02-24: Version 5.0.74 + + Performance and stability improvements on all platforms. + + +2016-02-23: Version 5.0.73 + + Intl: Use private symbols to memoize bound functions (issue 3785). + + Ensure Array.prototype.indexOf returns +0 rather than -0. + + Ship ES2015 Symbol.species (issue 4093). + + Performance and stability improvements on all platforms. + + +2016-02-23: Version 5.0.72 + + Performance and stability improvements on all platforms. + + 2016-02-23: Version 5.0.71 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index 5f26e91ecfa565..0559523283f74e 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -8,15 +8,15 @@ vars = { deps = { "v8/build/gyp": - Var("git_url") + "/external/gyp.git" + "@" + "ed163ce233f76a950dce1751ac851dbe4b1c00cc", + Var("git_url") + "/external/gyp.git" + "@" + "4ec6c4e3a94bd04a6da2858163d40b2429b8aad1", "v8/third_party/icu": - Var("git_url") + "/chromium/deps/icu.git" + "@" + "e466f6ac8f60bb9697af4a91c6911c6fc4aec95f", + Var("git_url") + "/chromium/deps/icu.git" + "@" + "c291cde264469b20ca969ce8832088acb21e0c48", "v8/buildtools": - Var("git_url") + "/chromium/buildtools.git" + "@" + "97b5c485707335dd2952c05bf11412ada3f4fb6f", + Var("git_url") + "/chromium/buildtools.git" + "@" + "80b5126f91be4eb359248d28696746ef09d5be67", "v8/base/trace_event/common": - Var("git_url") + "/chromium/src/base/trace_event/common.git" + "@" + "4b09207e447ae5bd34643b4c6321bee7b76d35f9", + Var("git_url") + "/chromium/src/base/trace_event/common.git" + "@" + "c8c8665c2deaf1cc749d9f8e153256d4f67bf1b8", "v8/tools/swarming_client": - Var('git_url') + '/external/swarming.client.git' + '@' + "0b908f18767c8304dc089454bc1c91755d21f1f5", + Var('git_url') + '/external/swarming.client.git' + '@' + "df6e95e7669883c8fe9ef956c69a544154701a49", "v8/testing/gtest": Var("git_url") + "/external/github.com/google/googletest.git" + "@" + "6f8a66431cb592dad629028a50b3dd418a408c87", "v8/testing/gmock": @@ -27,15 +27,15 @@ deps = { Var("git_url") + "/v8/deps/third_party/mozilla-tests.git" + "@" + "f6c578a10ea707b1a8ab0b88943fe5115ce2b9be", "v8/test/simdjs/data": Var("git_url") + "/external/github.com/tc39/ecmascript_simd.git" + "@" + "c8ef63c728283debc25891123eb00482fee4b8cd", "v8/test/test262/data": - Var("git_url") + "/external/github.com/tc39/test262.git" + "@" + "738a24b109f3fa71be44d5c3701d73141d494510", + Var("git_url") + "/external/github.com/tc39/test262.git" + "@" + "57d3e2216fa86ad63b6c0a54914ba9dcbff96003", "v8/tools/clang": - Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "a8adb78c8eda9bddb2aa9c51f3fee60296de1ad4", + Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "faee82e064e04e5cbf60cc7327e7a81d2a4557ad", } deps_os = { "android": { "v8/third_party/android_tools": - Var("git_url") + "/android_tools.git" + "@" + "f4c36ad89b2696b37d9cd7ca7d984b691888b188", + Var("git_url") + "/android_tools.git" + "@" + "adfd31794011488cd0fc716b53558b2d8a67af8b", }, "win": { "v8/third_party/cygwin": diff --git a/deps/v8/Makefile b/deps/v8/Makefile index 4fb6ee0162275f..a0c08a6d9634c7 100644 --- a/deps/v8/Makefile +++ b/deps/v8/Makefile @@ -162,6 +162,9 @@ endif ifdef embedscript GYPFLAGS += -Dembed_script=$(embedscript) endif +ifdef warmupscript + GYPFLAGS += -Dwarmup_script=$(warmupscript) +endif ifeq ($(goma), on) GYPFLAGS += -Duse_goma=1 endif @@ -219,6 +222,10 @@ endif ifeq ($(arm_test_noprobe), on) GYPFLAGS += -Darm_test_noprobe=on endif +# Do not omit the frame pointer, needed for profiling with perf +ifeq ($(no_omit_framepointer), on) + GYPFLAGS += -Drelease_extra_cflags=-fno-omit-frame-pointer +endif # ----------------- available targets: -------------------- # - "grokdump": rebuilds heap constants lists used by grokdump diff --git a/deps/v8/OWNERS b/deps/v8/OWNERS index 2c5caeb125accb..3f2caecd498284 100644 --- a/deps/v8/OWNERS +++ b/deps/v8/OWNERS @@ -1,5 +1,7 @@ adamk@chromium.org +ahaas@chromium.org bmeurer@chromium.org +cbruni@chromium.org danno@chromium.org epertoso@chromium.org hablich@chromium.org @@ -10,10 +12,13 @@ jkummerow@chromium.org jochen@chromium.org littledan@chromium.org machenbach@chromium.org -mlippautz@chromium.org marja@chromium.org +mlippautz@chromium.org mstarzinger@chromium.org mvstanton@chromium.org +mythria@chromium.org +neis@chromium.org +oth@chromium.org rmcilroy@chromium.org rossberg@chromium.org titzer@chromium.org diff --git a/deps/v8/base/trace_event/common/trace_event_common.h b/deps/v8/base/trace_event/common/trace_event_common.h index 8d13fc2e8cb8a5..7a1533ed822e88 100644 --- a/deps/v8/base/trace_event/common/trace_event_common.h +++ b/deps/v8/base/trace_event/common/trace_event_common.h @@ -156,7 +156,7 @@ // }; // // TRACE_EVENT1("foo", "bar", "data", -// scoped_refptr(new MyData())); +// std::unique_ptr(new MyData())); // // The trace framework will take ownership if the passed pointer and it will // be free'd when the trace buffer is flushed. @@ -926,6 +926,20 @@ name, id, TRACE_EVENT_FLAG_COPY, arg1_name, \ arg1_val, arg2_name, arg2_val) +// Special trace event macro to trace task execution with the location where it +// was posted from. +#define TRACE_TASK_EXECUTION(run_function, task) \ + TRACE_EVENT2("toplevel", run_function, "src_file", \ + (task).posted_from.file_name(), "src_func", \ + (task).posted_from.function_name()); \ + TRACE_EVENT_API_SCOPED_TASK_EXECUTION_EVENT INTERNAL_TRACE_EVENT_UID( \ + task_event)((task).posted_from.file_name()); + +// TRACE_EVENT_METADATA* events are information related to other +// injected events, not events in their own right. +#define TRACE_EVENT_METADATA1(category_group, name, arg1_name, arg1_val) \ + INTERNAL_TRACE_EVENT_METADATA_ADD(category_group, name, arg1_name, arg1_val) + // Records a clock sync event. #define TRACE_EVENT_CLOCK_SYNC_RECEIVER(sync_id) \ INTERNAL_TRACE_EVENT_ADD( \ diff --git a/deps/v8/build/coverage_wrapper.py b/deps/v8/build/coverage_wrapper.py new file mode 100755 index 00000000000000..5b365d8e63d911 --- /dev/null +++ b/deps/v8/build/coverage_wrapper.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# Copyright 2016 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# CC/CXX wrapper script that excludes certain file patterns from coverage +# instrumentation. + +import re +import subprocess +import sys + +exclusions = [ + 'buildtools', + 'src/third_party', + 'third_party', + 'test', + 'testing', +] + +def remove_if_exists(string_list, item): + if item in string_list: + string_list.remove(item) + +args = sys.argv[1:] +text = ' '.join(sys.argv[2:]) +for exclusion in exclusions: + if re.search(r'\-o obj/%s[^ ]*\.o' % exclusion, text): + remove_if_exists(args, '-fprofile-arcs') + remove_if_exists(args, '-ftest-coverage') + remove_if_exists(args, '-fsanitize-coverage=func') + remove_if_exists(args, '-fsanitize-coverage=bb') + remove_if_exists(args, '-fsanitize-coverage=edge') + break + +sys.exit(subprocess.check_call(args)) diff --git a/deps/v8/build/get_landmines.py b/deps/v8/build/get_landmines.py index ea0ae0d415235d..2bbf7a61bfe290 100755 --- a/deps/v8/build/get_landmines.py +++ b/deps/v8/build/get_landmines.py @@ -26,6 +26,7 @@ def main(): print 'Cleanup after windows ninja switch attempt.' print 'Switching to pinned msvs toolchain.' print 'Clobbering to hopefully resolve problem with mksnapshot' + print 'Clobber after ICU roll.' return 0 diff --git a/deps/v8/build/isolate.gypi b/deps/v8/build/isolate.gypi index 546870a755a81a..4cfbbfddd100d7 100644 --- a/deps/v8/build/isolate.gypi +++ b/deps/v8/build/isolate.gypi @@ -76,6 +76,8 @@ '--config-variable', 'icu_use_data_file_flag=0', '--config-variable', 'msan=<(msan)', '--config-variable', 'tsan=<(tsan)', + '--config-variable', 'coverage=<(coverage)', + '--config-variable', 'sanitizer_coverage=<(sanitizer_coverage)', '--config-variable', 'component=<(component)', '--config-variable', 'target_arch=<(target_arch)', '--config-variable', 'use_custom_libcxx=<(use_custom_libcxx)', diff --git a/deps/v8/build/standalone.gypi b/deps/v8/build/standalone.gypi index 5269b95f64dbd9..6c88409dbee892 100644 --- a/deps/v8/build/standalone.gypi +++ b/deps/v8/build/standalone.gypi @@ -44,7 +44,7 @@ 'v8_deprecation_warnings': 1, 'v8_imminent_deprecation_warnings': 1, 'msvs_multi_core_compile%': '1', - 'mac_deployment_target%': '10.5', + 'mac_deployment_target%': '10.7', 'release_extra_cflags%': '', 'variables': { 'variables': { @@ -68,7 +68,9 @@ 'target_arch%': '<(host_arch)', 'base_dir%': ' GetInternalProperties(Isolate* isolate, Local value); + + /** + * Defines if the ES2015 tail call elimination feature is enabled or not. + * The change of this flag triggers deoptimization of all functions that + * contain calls at tail position. + */ + static bool IsTailCallEliminationEnabled(Isolate* isolate); + static void SetTailCallEliminationEnabled(Isolate* isolate, bool enabled); }; diff --git a/deps/v8/include/v8-experimental.h b/deps/v8/include/v8-experimental.h index 3874e91101f347..294ba647f03df9 100644 --- a/deps/v8/include/v8-experimental.h +++ b/deps/v8/include/v8-experimental.h @@ -10,7 +10,7 @@ #ifndef V8_INCLUDE_V8_EXPERIMENTAL_H_ #define V8_INCLUDE_V8_EXPERIMENTAL_H_ -#include "include/v8.h" +#include "v8.h" // NOLINT(build/include) namespace v8 { namespace experimental { diff --git a/deps/v8/include/v8-platform.h b/deps/v8/include/v8-platform.h index 11f8d51f02573e..4023a5b234fd4b 100644 --- a/deps/v8/include/v8-platform.h +++ b/deps/v8/include/v8-platform.h @@ -152,9 +152,9 @@ class Platform { */ virtual uint64_t AddTraceEvent( char phase, const uint8_t* category_enabled_flag, const char* name, - uint64_t id, uint64_t bind_id, int32_t num_args, const char** arg_names, - const uint8_t* arg_types, const uint64_t* arg_values, - unsigned int flags) { + const char* scope, uint64_t id, uint64_t bind_id, int32_t num_args, + const char** arg_names, const uint8_t* arg_types, + const uint64_t* arg_values, unsigned int flags) { return 0; } diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index c24f07202b0847..4a331318bdaa50 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 5 -#define V8_MINOR_VERSION 0 -#define V8_BUILD_NUMBER 71 -#define V8_PATCH_LEVEL 52 +#define V8_MINOR_VERSION 1 +#define V8_BUILD_NUMBER 281 +#define V8_PATCH_LEVEL 69 // 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 9ccbc6eb1863bd..703a4f4f4ad575 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -18,6 +18,8 @@ #include #include #include +#include +#include #include "v8-version.h" // NOLINT(build/include) #include "v8config.h" // NOLINT(build/include) @@ -328,6 +330,8 @@ class Local { template friend class PersistentValueMapBase; template friend class PersistentValueVector; + template + friend class ReturnValue; explicit V8_INLINE Local(T* that) : val_(that) {} V8_INLINE static Local New(Isolate* isolate, T* that); @@ -593,6 +597,13 @@ template class PersistentBase { // TODO(dcarney): remove this. V8_INLINE void ClearWeak() { ClearWeak(); } + /** + * Allows the embedder to tell the v8 garbage collector that a certain object + * is alive. Only allowed when the embedder is asked to trace its heap by + * EmbedderHeapTracer. + */ + V8_INLINE void RegisterExternalReference(Isolate* isolate); + /** * Marks the reference to this object independent. Garbage collector is free * to ignore any object groups containing this object. Weak callback for an @@ -2628,6 +2639,10 @@ enum AccessControl { PROHIBITS_OVERWRITING = 1 << 2 }; +/** + * Integrity level for objects. + */ +enum class IntegrityLevel { kFrozen, kSealed }; /** * A JavaScript object (ECMA-262, 4.3.3) @@ -2819,6 +2834,11 @@ class V8_EXPORT Object : public Value { */ Local GetConstructorName(); + /** + * Sets the integrity level of the object. + */ + Maybe SetIntegrityLevel(Local context, IntegrityLevel level); + /** Gets the number of internal fields for this Object. */ int InternalFieldCount(); @@ -3118,12 +3138,17 @@ class ReturnValue { V8_INLINE void SetUndefined(); V8_INLINE void SetEmptyString(); // Convenience getter for Isolate - V8_INLINE Isolate* GetIsolate(); + V8_INLINE Isolate* GetIsolate() const; // Pointer setter: Uncompilable to prevent inadvertent misuse. template V8_INLINE void Set(S* whatever); + // Getter. Creates a new Local<> so it comes with a certain performance + // hit. If the ReturnValue was not yet set, this will return the undefined + // value. + V8_INLINE Local Get() const; + private: template friend class ReturnValue; template friend class FunctionCallbackInfo; @@ -4886,7 +4911,6 @@ V8_INLINE Local Null(Isolate* isolate); V8_INLINE Local True(Isolate* isolate); V8_INLINE Local False(Isolate* isolate); - /** * A set of constraints that specifies the limits of the runtime's memory use. * You must set the heap size before initializing the VM - the size cannot be @@ -4895,6 +4919,9 @@ V8_INLINE Local False(Isolate* isolate); * If you are using threads then you should hold the V8::Locker lock while * setting the stack limit and you must set a non-default stack limit separately * for each thread. + * + * The arguments for set_max_semi_space_size, set_max_old_space_size, + * set_max_executable_size, set_code_range_size specify limits in MB. */ class V8_EXPORT ResourceConstraints { public: @@ -4913,17 +4940,23 @@ class V8_EXPORT ResourceConstraints { uint64_t virtual_memory_limit); int max_semi_space_size() const { return max_semi_space_size_; } - void set_max_semi_space_size(int value) { max_semi_space_size_ = value; } + void set_max_semi_space_size(int limit_in_mb) { + max_semi_space_size_ = limit_in_mb; + } int max_old_space_size() const { return max_old_space_size_; } - void set_max_old_space_size(int value) { max_old_space_size_ = value; } + void set_max_old_space_size(int limit_in_mb) { + max_old_space_size_ = limit_in_mb; + } int max_executable_size() const { return max_executable_size_; } - void set_max_executable_size(int value) { max_executable_size_ = value; } + void set_max_executable_size(int limit_in_mb) { + max_executable_size_ = limit_in_mb; + } uint32_t* stack_limit() const { return stack_limit_; } // Sets an address beyond which the VM's stack may not grow. void set_stack_limit(uint32_t* value) { stack_limit_ = value; } size_t code_range_size() const { return code_range_size_; } - void set_code_range_size(size_t value) { - code_range_size_ = value; + void set_code_range_size(size_t limit_in_mb) { + code_range_size_ = limit_in_mb; } private: @@ -5047,9 +5080,57 @@ class PromiseRejectMessage { typedef void (*PromiseRejectCallback)(PromiseRejectMessage message); -// --- Microtask Callback --- +// --- Microtasks Callbacks --- +typedef void (*MicrotasksCompletedCallback)(Isolate*); typedef void (*MicrotaskCallback)(void* data); + +/** + * Policy for running microtasks: + * - explicit: microtasks are invoked with Isolate::RunMicrotasks() method; + * - scoped: microtasks invocation is controlled by MicrotasksScope objects; + * - auto: microtasks are invoked when the script call depth decrements + * to zero. + */ +enum class MicrotasksPolicy { kExplicit, kScoped, kAuto }; + + +/** + * This scope is used to control microtasks when kScopeMicrotasksInvocation + * is used on Isolate. In this mode every non-primitive call to V8 should be + * done inside some MicrotasksScope. + * Microtasks are executed when topmost MicrotasksScope marked as kRunMicrotasks + * exits. + * kDoNotRunMicrotasks should be used to annotate calls not intended to trigger + * microtasks. + */ +class V8_EXPORT MicrotasksScope { + public: + enum Type { kRunMicrotasks, kDoNotRunMicrotasks }; + + MicrotasksScope(Isolate* isolate, Type type); + ~MicrotasksScope(); + + /** + * Runs microtasks if no kRunMicrotasks scope is currently active. + */ + static void PerformCheckpoint(Isolate* isolate); + + /** + * Returns current depth of nested kRunMicrotasks scopes. + */ + static int GetCurrentDepth(Isolate* isolate); + + private: + internal::Isolate* const isolate_; + bool run_; + + // Prevent copying. + MicrotasksScope(const MicrotasksScope&); + MicrotasksScope& operator=(const MicrotasksScope&); +}; + + // --- Failed Access Check Callback --- typedef void (*FailedAccessCheckCallback)(Local target, AccessType type, @@ -5121,6 +5202,7 @@ class V8_EXPORT HeapStatistics { size_t total_available_size() { return total_available_size_; } size_t used_heap_size() { return used_heap_size_; } size_t heap_size_limit() { return heap_size_limit_; } + size_t malloced_memory() { return malloced_memory_; } size_t does_zap_garbage() { return does_zap_garbage_; } private: @@ -5130,6 +5212,7 @@ class V8_EXPORT HeapStatistics { size_t total_available_size_; size_t used_heap_size_; size_t heap_size_limit_; + size_t malloced_memory_; bool does_zap_garbage_; friend class V8; @@ -5294,6 +5377,52 @@ class V8_EXPORT PersistentHandleVisitor { // NOLINT uint16_t class_id) {} }; +/** + * Memory pressure level for the MemoryPressureNotification. + * kNone hints V8 that there is no memory pressure. + * kModerate hints V8 to speed up incremental garbage collection at the cost of + * of higher latency due to garbage collection pauses. + * kCritical hints V8 to free memory as soon as possible. Garbage collection + * pauses at this level will be large. + */ +enum class MemoryPressureLevel { kNone, kModerate, kCritical }; + +/** + * Interface for tracing through the embedder heap. During the v8 garbage + * collection, v8 collects hidden fields of all potential wrappers, and at the + * end of its marking phase iterates the collection and asks the embedder to + * trace through its heap and call PersistentBase::RegisterExternalReference on + * each js object reachable from any of the given wrappers. + * + * Before the first call to the TraceWrappableFrom function v8 will call + * TraceRoots. When the v8 garbage collection is finished, v8 will call + * ClearTracingMarks. + */ +class EmbedderHeapTracer { + public: + /** + * V8 will call this method at the beginning of the gc cycle. + */ + virtual void TraceRoots(Isolate* isolate) = 0; + + /** + * V8 will call this method with internal fields of a potential wrappers. + * Embedder is expected to trace its heap (synchronously) and call + * PersistentBase::RegisterExternalReference() on all wrappers reachable from + * any of the given wrappers. + */ + virtual void TraceWrappableFrom( + Isolate* isolate, + const std::vector >& internal_fields) = 0; + /** + * V8 will call this method at the end of the gc cycle. Allocation is *not* + * allowed in the ClearTracingMarks. + */ + virtual void ClearTracingMarks(Isolate* isolate) = 0; + + protected: + virtual ~EmbedderHeapTracer() = default; +}; /** * Isolate represents an isolated instance of the V8 engine. V8 isolates have @@ -5489,6 +5618,9 @@ class V8_EXPORT Isolate { kArrayPrototypeConstructorModified = 26, kArrayInstanceProtoModified = 27, kArrayInstanceConstructorModified = 28, + kLegacyFunctionDeclaration = 29, + kRegExpPrototypeSourceGetter = 30, + kRegExpPrototypeOldFlagGetter = 31, // If you add new values here, you'll also need to update V8Initializer.cpp // in Chromium. @@ -5531,6 +5663,14 @@ class V8_EXPORT Isolate { void SetAbortOnUncaughtExceptionCallback( AbortOnUncaughtExceptionCallback callback); + /** + * Optional notification that the system is running low on memory. + * V8 uses these notifications to guide heuristics. + * It is allowed to call this function from another thread while + * the isolate is executing long running JavaScript code. + */ + void MemoryPressureNotification(MemoryPressureLevel level); + /** * Methods below this point require holding a lock (using Locker) in * a multi-threaded environment. @@ -5752,6 +5892,11 @@ class V8_EXPORT Isolate { */ void RemoveGCPrologueCallback(GCCallback callback); + /** + * Sets the embedder heap tracer for the isolate. + */ + void SetEmbedderHeapTracer(EmbedderHeapTracer* tracer); + /** * Enables the host application to receive a notification after a * garbage collection. Allocations are allowed in the callback function, @@ -5888,17 +6033,39 @@ class V8_EXPORT Isolate { */ void EnqueueMicrotask(MicrotaskCallback microtask, void* data = NULL); - /** - * Experimental: Controls whether the Microtask Work Queue is automatically - * run when the script call depth decrements to zero. + /** + * Experimental: Controls how Microtasks are invoked. See MicrotasksPolicy + * for details. */ - void SetAutorunMicrotasks(bool autorun); + void SetMicrotasksPolicy(MicrotasksPolicy policy); + V8_DEPRECATE_SOON("Use SetMicrotasksPolicy", + void SetAutorunMicrotasks(bool autorun)); /** - * Experimental: Returns whether the Microtask Work Queue is automatically - * run when the script call depth decrements to zero. + * Experimental: Returns the policy controlling how Microtasks are invoked. */ - bool WillAutorunMicrotasks() const; + MicrotasksPolicy GetMicrotasksPolicy() const; + V8_DEPRECATE_SOON("Use GetMicrotasksPolicy", + bool WillAutorunMicrotasks() const); + + /** + * Experimental: adds a callback to notify the host application after + * microtasks were run. The callback is triggered by explicit RunMicrotasks + * call or automatic microtasks execution (see SetAutorunMicrotasks). + * + * Callback will trigger even if microtasks were attempted to run, + * but the microtasks queue was empty and no single microtask was actually + * executed. + * + * Executing scriptsinside the callback will not re-trigger microtasks and + * the callback. + */ + void AddMicrotasksCompletedCallback(MicrotasksCompletedCallback callback); + + /** + * Removes callback that was installed by AddMicrotasksCompletedCallback. + */ + void RemoveMicrotasksCompletedCallback(MicrotasksCompletedCallback callback); /** * Sets a callback for counting the number of times a feature of V8 is used. @@ -6195,11 +6362,23 @@ class V8_EXPORT V8 { static void SetSnapshotDataBlob(StartupData* startup_blob); /** - * Create a new isolate and context for the purpose of capturing a snapshot + * Bootstrap an isolate and a context from scratch to create a startup + * snapshot. Include the side-effects of running the optional script. * Returns { NULL, 0 } on failure. - * The caller owns the data array in the return value. + * The caller acquires ownership of the data array in the return value. */ - static StartupData CreateSnapshotDataBlob(const char* custom_source = NULL); + static StartupData CreateSnapshotDataBlob(const char* embedded_source = NULL); + + /** + * Bootstrap an isolate and a context from the cold startup blob, run the + * warm-up script to trigger code compilation. The side effects are then + * discarded. The resulting startup snapshot will include compiled code. + * Returns { NULL, 0 } on failure. + * The caller acquires ownership of the data array in the return value. + * The argument startup blob is untouched. + */ + static StartupData WarmUpSnapshotDataBlob(StartupData cold_startup_blob, + const char* warmup_source); /** * Adds a message listener. @@ -6475,6 +6654,8 @@ class V8_EXPORT V8 { static internal::Object** CopyPersistent(internal::Object** handle); static void DisposeGlobal(internal::Object** global_handle); typedef WeakCallbackData::Callback WeakCallback; + static void RegisterExternallyReferencedObject(internal::Object** object, + internal::Isolate* isolate); static void MakeWeak(internal::Object** global_handle, void* data, WeakCallback weak_callback); static void MakeWeak(internal::Object** global_handle, void* data, @@ -7149,7 +7330,7 @@ class Internals { 1 * kApiPointerSize + kApiIntSize; static const int kStringResourceOffset = 3 * kApiPointerSize; - static const int kOddballKindOffset = 4 * kApiPointerSize; + static const int kOddballKindOffset = 5 * kApiPointerSize; static const int kForeignAddressOffset = kApiPointerSize; static const int kJSObjectHeaderSize = 3 * kApiPointerSize; static const int kFixedArrayHeaderSize = 2 * kApiPointerSize; @@ -7168,11 +7349,12 @@ class Internals { static const int kIsolateRootsOffset = kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset + kApiInt64Size + kApiPointerSize; - static const int kUndefinedValueRootIndex = 5; - static const int kNullValueRootIndex = 7; - static const int kTrueValueRootIndex = 8; - static const int kFalseValueRootIndex = 9; - static const int kEmptyStringRootIndex = 10; + static const int kUndefinedValueRootIndex = 4; + static const int kTheHoleValueRootIndex = 5; + static const int kNullValueRootIndex = 6; + static const int kTrueValueRootIndex = 7; + static const int kFalseValueRootIndex = 8; + static const int kEmptyStringRootIndex = 9; // The external allocation limit should be below 256 MB on all architectures // to avoid that resource-constrained embedders run low on memory. @@ -7188,7 +7370,7 @@ class Internals { static const int kNodeIsPartiallyDependentShift = 4; static const int kNodeIsActiveShift = 4; - static const int kJSObjectType = 0xb5; + static const int kJSObjectType = 0xb8; static const int kFirstNonstringType = 0x80; static const int kOddballType = 0x83; static const int kForeignType = 0x87; @@ -7492,6 +7674,13 @@ P* PersistentBase::ClearWeak() { V8::ClearWeak(reinterpret_cast(this->val_))); } +template +void PersistentBase::RegisterExternalReference(Isolate* isolate) { + if (IsEmpty()) return; + V8::RegisterExternallyReferencedObject( + reinterpret_cast(this->val_), + reinterpret_cast(isolate)); +} template void PersistentBase::MarkIndependent() { @@ -7641,14 +7830,22 @@ void ReturnValue::SetEmptyString() { *value_ = *I::GetRoot(GetIsolate(), I::kEmptyStringRootIndex); } -template -Isolate* ReturnValue::GetIsolate() { +template +Isolate* ReturnValue::GetIsolate() const { // Isolate is always the pointer below the default value on the stack. return *reinterpret_cast(&value_[-2]); } -template -template +template +Local ReturnValue::Get() const { + typedef internal::Internals I; + if (*value_ == *I::GetRoot(GetIsolate(), I::kTheHoleValueRootIndex)) + return Local(*Undefined(GetIsolate())); + return Local::New(GetIsolate(), reinterpret_cast(value_)); +} + +template +template void ReturnValue::Set(S* whatever) { // Uncompilable to prevent inadvertent misuse. TYPE_CHECK(S*, Primitive); diff --git a/deps/v8/include/v8config.h b/deps/v8/include/v8config.h index d2be68561c0cc3..ce3a9d2f4f6620 100644 --- a/deps/v8/include/v8config.h +++ b/deps/v8/include/v8config.h @@ -266,13 +266,7 @@ # define V8_HAS_BUILTIN_FRAME_ADDRESS (V8_GNUC_PREREQ(2, 96, 0)) # define V8_HAS_BUILTIN_POPCOUNT (V8_GNUC_PREREQ(3, 4, 0)) -// g++ requires -std=c++0x or -std=gnu++0x to support C++11 functionality -// without warnings (functionality used by the macros below). These modes -// are detectable by checking whether __GXX_EXPERIMENTAL_CXX0X__ is defined or, -// more standardly, by checking whether __cplusplus has a C++11 or greater -// value. Current versions of g++ do not correctly set __cplusplus, so we check -// both for forward compatibility. -# if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L +# if __cplusplus >= 201103L # define V8_HAS_CXX11_ALIGNAS (V8_GNUC_PREREQ(4, 8, 0)) # define V8_HAS_CXX11_ALIGNOF (V8_GNUC_PREREQ(4, 8, 0)) # endif diff --git a/deps/v8/infra/config/cq.cfg b/deps/v8/infra/config/cq.cfg index fbf090bb595acc..5f85111f200ac4 100644 --- a/deps/v8/infra/config/cq.cfg +++ b/deps/v8/infra/config/cq.cfg @@ -65,13 +65,14 @@ verifiers { name: "v8_win_rel_ng_triggered" triggered_by: "v8_win_rel_ng" } - } - buckets { - name: "tryserver.v8" builders { name: "v8_linux_blink_rel" experiment_percentage: 20 } + builders { + name: "v8_linux64_sanitizer_coverage_rel" + experiment_percentage: 100 + } } } diff --git a/deps/v8/src/DEPS b/deps/v8/src/DEPS index b0b703b7cc409f..1bb616ef33dd2d 100644 --- a/deps/v8/src/DEPS +++ b/deps/v8/src/DEPS @@ -21,7 +21,4 @@ specific_include_rules = { "d8\.cc": [ "+include/libplatform/libplatform.h", ], - "api-experimental\.cc": [ - "+src/compiler/fast-accessor-assembler.h", - ], } diff --git a/deps/v8/src/accessors.cc b/deps/v8/src/accessors.cc index 766509e2a5a408..374c0a21f84b25 100644 --- a/deps/v8/src/accessors.cc +++ b/deps/v8/src/accessors.cc @@ -32,6 +32,7 @@ Handle Accessors::MakeAccessor( info->set_all_can_read(false); info->set_all_can_write(false); info->set_is_special_data_property(true); + info->set_is_sloppy(false); name = factory->InternalizeName(name); info->set_name(*name); Handle get = v8::FromCData(isolate, getter); @@ -817,7 +818,7 @@ void Accessors::FunctionLengthGetter( } else { // If the function isn't compiled yet, the length is not computed // correctly yet. Compile it now and return the right length. - if (Compiler::Compile(function, KEEP_EXCEPTION)) { + if (Compiler::Compile(function, Compiler::KEEP_EXCEPTION)) { length = function->shared()->length(); } if (isolate->has_pending_exception()) { diff --git a/deps/v8/src/api-arguments.cc b/deps/v8/src/api-arguments.cc new file mode 100644 index 00000000000000..c4b698c5a2146f --- /dev/null +++ b/deps/v8/src/api-arguments.cc @@ -0,0 +1,31 @@ +// Copyright 2016 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "src/api-arguments.h" + +namespace v8 { +namespace internal { + +Handle FunctionCallbackArguments::Call(FunctionCallback f) { + Isolate* isolate = this->isolate(); + VMState state(isolate); + ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); + FunctionCallbackInfo info(begin(), argv_, argc_, + is_construct_call_); + f(info); + return GetReturnValue(isolate); +} + +Handle PropertyCallbackArguments::Call( + IndexedPropertyEnumeratorCallback f) { + Isolate* isolate = this->isolate(); + VMState state(isolate); + ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); + PropertyCallbackInfo info(begin()); + f(info); + return GetReturnValue(isolate); +} + +} // namespace internal +} // namespace v8 diff --git a/deps/v8/src/api-arguments.h b/deps/v8/src/api-arguments.h new file mode 100644 index 00000000000000..3bfe34dc894c18 --- /dev/null +++ b/deps/v8/src/api-arguments.h @@ -0,0 +1,254 @@ +// Copyright 2016 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef V8_API_ARGUMENTS_H_ +#define V8_API_ARGUMENTS_H_ + +#include "src/api.h" +#include "src/isolate.h" +#include "src/tracing/trace-event.h" +#include "src/vm-state-inl.h" + +namespace v8 { +namespace internal { + +// Custom arguments replicate a small segment of stack that can be +// accessed through an Arguments object the same way the actual stack +// can. +template +class CustomArgumentsBase : public Relocatable { + public: + virtual inline void IterateInstance(ObjectVisitor* v) { + v->VisitPointers(values_, values_ + kArrayLength); + } + + protected: + inline Object** begin() { return values_; } + explicit inline CustomArgumentsBase(Isolate* isolate) + : Relocatable(isolate) {} + Object* values_[kArrayLength]; +}; + +template +class CustomArguments : public CustomArgumentsBase { + public: + static const int kReturnValueOffset = T::kReturnValueIndex; + + typedef CustomArgumentsBase Super; + ~CustomArguments() { + this->begin()[kReturnValueOffset] = + reinterpret_cast(kHandleZapValue); + } + + protected: + explicit inline CustomArguments(Isolate* isolate) : Super(isolate) {} + + template + Handle GetReturnValue(Isolate* isolate); + + inline Isolate* isolate() { + return reinterpret_cast(this->begin()[T::kIsolateIndex]); + } +}; + +template +template +Handle CustomArguments::GetReturnValue(Isolate* isolate) { + // Check the ReturnValue. + Object** handle = &this->begin()[kReturnValueOffset]; + // Nothing was set, return empty handle as per previous behaviour. + if ((*handle)->IsTheHole()) return Handle(); + Handle result = Handle::cast(Handle(handle)); + result->VerifyApiCallResultType(); + return result; +} + +class PropertyCallbackArguments + : public CustomArguments > { + public: + typedef PropertyCallbackInfo T; + typedef CustomArguments Super; + static const int kArgsLength = T::kArgsLength; + static const int kThisIndex = T::kThisIndex; + static const int kHolderIndex = T::kHolderIndex; + static const int kDataIndex = T::kDataIndex; + static const int kReturnValueDefaultValueIndex = + T::kReturnValueDefaultValueIndex; + static const int kIsolateIndex = T::kIsolateIndex; + static const int kShouldThrowOnErrorIndex = T::kShouldThrowOnErrorIndex; + + PropertyCallbackArguments(Isolate* isolate, Object* data, Object* self, + JSObject* holder, Object::ShouldThrow should_throw) + : Super(isolate) { + Object** values = this->begin(); + values[T::kThisIndex] = self; + values[T::kHolderIndex] = holder; + values[T::kDataIndex] = data; + values[T::kIsolateIndex] = reinterpret_cast(isolate); + values[T::kShouldThrowOnErrorIndex] = + Smi::FromInt(should_throw == Object::THROW_ON_ERROR ? 1 : 0); + + // Here the hole is set as default value. + // It cannot escape into js as it's remove in Call below. + values[T::kReturnValueDefaultValueIndex] = + isolate->heap()->the_hole_value(); + values[T::kReturnValueIndex] = isolate->heap()->the_hole_value(); + DCHECK(values[T::kHolderIndex]->IsHeapObject()); + DCHECK(values[T::kIsolateIndex]->IsSmi()); + } + +/* + * The following Call functions wrap the calling of all callbacks to handle + * calling either the old or the new style callbacks depending on which one + * has been registered. + * For old callbacks which return an empty handle, the ReturnValue is checked + * and used if it's been set to anything inside the callback. + * New style callbacks always use the return value. + */ + Handle Call(IndexedPropertyEnumeratorCallback f); + +#define FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME(F) \ + F(AccessorNameGetterCallback, "get", v8::Value, Object) \ + F(GenericNamedPropertyQueryCallback, "has", v8::Integer, Object) \ + F(GenericNamedPropertyDeleterCallback, "delete", v8::Boolean, Object) + +#define WRITE_CALL_1_NAME(Function, type, ApiReturn, InternalReturn) \ + Handle Call(Function f, Handle name) { \ + Isolate* isolate = this->isolate(); \ + VMState state(isolate); \ + ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); \ + PropertyCallbackInfo info(begin()); \ + LOG(isolate, \ + ApiNamedPropertyAccess("interceptor-named-" type, holder(), *name)); \ + f(v8::Utils::ToLocal(name), info); \ + return GetReturnValue(isolate); \ + } + + FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME(WRITE_CALL_1_NAME) + +#undef FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME +#undef WRITE_CALL_1_NAME + +#define FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX(F) \ + F(IndexedPropertyGetterCallback, "get", v8::Value, Object) \ + F(IndexedPropertyQueryCallback, "has", v8::Integer, Object) \ + F(IndexedPropertyDeleterCallback, "delete", v8::Boolean, Object) + +#define WRITE_CALL_1_INDEX(Function, type, ApiReturn, InternalReturn) \ + Handle Call(Function f, uint32_t index) { \ + Isolate* isolate = this->isolate(); \ + VMState state(isolate); \ + ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); \ + PropertyCallbackInfo info(begin()); \ + LOG(isolate, ApiIndexedPropertyAccess("interceptor-indexed-" type, \ + holder(), index)); \ + f(index, info); \ + return GetReturnValue(isolate); \ + } + + FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX(WRITE_CALL_1_INDEX) + +#undef FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX +#undef WRITE_CALL_1_INDEX + + Handle Call(GenericNamedPropertySetterCallback f, Handle name, + Handle value) { + Isolate* isolate = this->isolate(); + VMState state(isolate); + ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); + PropertyCallbackInfo info(begin()); + LOG(isolate, + ApiNamedPropertyAccess("interceptor-named-set", holder(), *name)); + f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), info); + return GetReturnValue(isolate); + } + + Handle Call(IndexedPropertySetterCallback f, uint32_t index, + Handle value) { + Isolate* isolate = this->isolate(); + VMState state(isolate); + ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); + PropertyCallbackInfo info(begin()); + LOG(isolate, + ApiIndexedPropertyAccess("interceptor-indexed-set", holder(), index)); + f(index, v8::Utils::ToLocal(value), info); + return GetReturnValue(isolate); + } + + void Call(AccessorNameSetterCallback f, Handle name, + Handle value) { + Isolate* isolate = this->isolate(); + VMState state(isolate); + ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); + PropertyCallbackInfo info(begin()); + LOG(isolate, + ApiNamedPropertyAccess("interceptor-named-set", holder(), *name)); + f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), info); + } + + private: + inline JSObject* holder() { + return JSObject::cast(this->begin()[T::kHolderIndex]); + } +}; + +class FunctionCallbackArguments + : public CustomArguments > { + public: + typedef FunctionCallbackInfo T; + typedef CustomArguments Super; + static const int kArgsLength = T::kArgsLength; + static const int kHolderIndex = T::kHolderIndex; + static const int kDataIndex = T::kDataIndex; + static const int kReturnValueDefaultValueIndex = + T::kReturnValueDefaultValueIndex; + static const int kIsolateIndex = T::kIsolateIndex; + static const int kCalleeIndex = T::kCalleeIndex; + static const int kContextSaveIndex = T::kContextSaveIndex; + + FunctionCallbackArguments(internal::Isolate* isolate, internal::Object* data, + internal::HeapObject* callee, + internal::Object* holder, internal::Object** argv, + int argc, bool is_construct_call) + : Super(isolate), + argv_(argv), + argc_(argc), + is_construct_call_(is_construct_call) { + Object** values = begin(); + values[T::kDataIndex] = data; + values[T::kCalleeIndex] = callee; + values[T::kHolderIndex] = holder; + values[T::kContextSaveIndex] = isolate->heap()->the_hole_value(); + values[T::kIsolateIndex] = reinterpret_cast(isolate); + // Here the hole is set as default value. + // It cannot escape into js as it's remove in Call below. + values[T::kReturnValueDefaultValueIndex] = + isolate->heap()->the_hole_value(); + values[T::kReturnValueIndex] = isolate->heap()->the_hole_value(); + DCHECK(values[T::kCalleeIndex]->IsJSFunction() || + values[T::kCalleeIndex]->IsFunctionTemplateInfo()); + DCHECK(values[T::kHolderIndex]->IsHeapObject()); + DCHECK(values[T::kIsolateIndex]->IsSmi()); + } + + /* + * The following Call function wraps the calling of all callbacks to handle + * calling either the old or the new style callbacks depending on which one + * has been registered. + * For old callbacks which return an empty handle, the ReturnValue is checked + * and used if it's been set to anything inside the callback. + * New style callbacks always use the return value. + */ + Handle Call(FunctionCallback f); + + private: + internal::Object** argv_; + int argc_; + bool is_construct_call_; +}; + +} // namespace internal +} // namespace v8 + +#endif // V8_API_ARGUMENTS_H_ diff --git a/deps/v8/src/api-experimental.cc b/deps/v8/src/api-experimental.cc index 98d62e33a2f035..39284342702273 100644 --- a/deps/v8/src/api-experimental.cc +++ b/deps/v8/src/api-experimental.cc @@ -11,20 +11,17 @@ #include "include/v8.h" #include "include/v8-experimental.h" #include "src/api.h" -#include "src/compiler/fast-accessor-assembler.h" +#include "src/fast-accessor-assembler.h" namespace { - -v8::internal::compiler::FastAccessorAssembler* FromApi( +v8::internal::FastAccessorAssembler* FromApi( v8::experimental::FastAccessorBuilder* builder) { - return reinterpret_cast( - builder); + return reinterpret_cast(builder); } - v8::experimental::FastAccessorBuilder* FromInternal( - v8::internal::compiler::FastAccessorAssembler* fast_accessor_assembler) { + v8::internal::FastAccessorAssembler* fast_accessor_assembler) { return reinterpret_cast( fast_accessor_assembler); } @@ -57,8 +54,8 @@ namespace experimental { FastAccessorBuilder* FastAccessorBuilder::New(Isolate* isolate) { i::Isolate* i_isolate = reinterpret_cast(isolate); - internal::compiler::FastAccessorAssembler* faa = - new internal::compiler::FastAccessorAssembler(i_isolate); + internal::FastAccessorAssembler* faa = + new internal::FastAccessorAssembler(i_isolate); return FromInternal(faa); } diff --git a/deps/v8/src/api-natives.cc b/deps/v8/src/api-natives.cc index 3be2df0bb686a5..adf4b6af576431 100644 --- a/deps/v8/src/api-natives.cc +++ b/deps/v8/src/api-natives.cc @@ -266,28 +266,45 @@ MaybeHandle ConfigureInstance(Isolate* isolate, Handle obj, return obj; } -void CacheTemplateInstantiation(Isolate* isolate, Handle serial_number, +void CacheTemplateInstantiation(Isolate* isolate, uint32_t serial_number, Handle object) { auto cache = isolate->template_instantiations_cache(); - auto new_cache = ObjectHashTable::Put(cache, serial_number, object); + auto new_cache = + UnseededNumberDictionary::AtNumberPut(cache, serial_number, object); isolate->native_context()->set_template_instantiations_cache(*new_cache); } -void UncacheTemplateInstantiation(Isolate* isolate, Handle serial_number) { +void UncacheTemplateInstantiation(Isolate* isolate, uint32_t serial_number) { auto cache = isolate->template_instantiations_cache(); - bool was_present = false; - auto new_cache = ObjectHashTable::Remove(cache, serial_number, &was_present); - DCHECK(was_present); + int entry = cache->FindEntry(serial_number); + DCHECK(entry != UnseededNumberDictionary::kNotFound); + Handle result = + UnseededNumberDictionary::DeleteProperty(cache, entry); + USE(result); + DCHECK(result->IsTrue()); + auto new_cache = UnseededNumberDictionary::Shrink(cache, entry); isolate->native_context()->set_template_instantiations_cache(*new_cache); } MaybeHandle InstantiateObject(Isolate* isolate, Handle info, bool is_hidden_prototype) { - // Enter a new scope. Recursion could otherwise create a lot of handles. - HandleScope scope(isolate); // Fast path. Handle result; + uint32_t serial_number = + static_cast(Smi::cast(info->serial_number())->value()); + if (serial_number) { + // Probe cache. + auto cache = isolate->template_instantiations_cache(); + int entry = cache->FindEntry(serial_number); + if (entry != UnseededNumberDictionary::kNotFound) { + Object* boilerplate = cache->ValueAt(entry); + result = handle(JSObject::cast(boilerplate), isolate); + return isolate->factory()->CopyJSObject(result); + } + } + // Enter a new scope. Recursion could otherwise create a lot of handles. + HandleScope scope(isolate); auto constructor = handle(info->constructor(), isolate); Handle cons; if (constructor->IsUndefined()) { @@ -297,18 +314,6 @@ MaybeHandle InstantiateObject(Isolate* isolate, ASSIGN_RETURN_ON_EXCEPTION( isolate, cons, InstantiateFunction(isolate, cons_templ), JSFunction); } - auto serial_number = handle(Smi::cast(info->serial_number()), isolate); - if (serial_number->value()) { - // Probe cache. - auto cache = isolate->template_instantiations_cache(); - Object* boilerplate = cache->Lookup(serial_number); - if (boilerplate->IsJSObject()) { - result = handle(JSObject::cast(boilerplate), isolate); - ASSIGN_RETURN_ON_EXCEPTION( - isolate, result, JSObject::DeepCopyApiBoilerplate(result), JSObject); - return scope.CloseAndEscape(result); - } - } auto object = isolate->factory()->NewJSObject(cons); ASSIGN_RETURN_ON_EXCEPTION( isolate, result, @@ -317,10 +322,9 @@ MaybeHandle InstantiateObject(Isolate* isolate, // TODO(dcarney): is this necessary? JSObject::MigrateSlowToFast(result, 0, "ApiNatives::InstantiateObject"); - if (serial_number->value()) { + if (serial_number) { CacheTemplateInstantiation(isolate, serial_number, result); - ASSIGN_RETURN_ON_EXCEPTION( - isolate, result, JSObject::DeepCopyApiBoilerplate(result), JSObject); + result = isolate->factory()->CopyJSObject(result); } return scope.CloseAndEscape(result); } @@ -329,12 +333,14 @@ MaybeHandle InstantiateObject(Isolate* isolate, MaybeHandle InstantiateFunction(Isolate* isolate, Handle data, Handle name) { - auto serial_number = handle(Smi::cast(data->serial_number()), isolate); - if (serial_number->value()) { + uint32_t serial_number = + static_cast(Smi::cast(data->serial_number())->value()); + if (serial_number) { // Probe cache. auto cache = isolate->template_instantiations_cache(); - Object* element = cache->Lookup(serial_number); - if (element->IsJSFunction()) { + int entry = cache->FindEntry(serial_number); + if (entry != UnseededNumberDictionary::kNotFound) { + Object* element = cache->ValueAt(entry); return handle(JSFunction::cast(element), isolate); } } @@ -378,7 +384,7 @@ MaybeHandle InstantiateFunction(Isolate* isolate, if (!name.is_null() && name->IsString()) { function->shared()->set_name(*name); } - if (serial_number->value()) { + if (serial_number) { // Cache the function. CacheTemplateInstantiation(isolate, serial_number, function); } @@ -386,7 +392,7 @@ MaybeHandle InstantiateFunction(Isolate* isolate, ConfigureInstance(isolate, function, data, data->hidden_prototype()); if (result.is_null()) { // Uncache on error. - if (serial_number->value()) { + if (serial_number) { UncacheTemplateInstantiation(isolate, serial_number); } return MaybeHandle(); @@ -536,7 +542,13 @@ Handle ApiNatives::CreateApiFunction( InstanceType type; switch (instance_type) { case JavaScriptObjectType: - type = JS_OBJECT_TYPE; + if (!obj->needs_access_check() && + obj->named_property_handler()->IsUndefined() && + obj->indexed_property_handler()->IsUndefined()) { + type = JS_OBJECT_TYPE; + } else { + type = JS_SPECIAL_API_OBJECT_TYPE; + } instance_size += JSObject::kHeaderSize; break; case GlobalObjectType: @@ -564,7 +576,7 @@ Handle ApiNatives::CreateApiFunction( result->shared()->set_instance_class_name(*class_name); result->shared()->set_name(*class_name); } - result->shared()->set_function_data(*obj); + result->shared()->set_api_func_data(*obj); result->shared()->set_construct_stub(*construct_stub); result->shared()->DontAdaptArguments(); diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 9b6ae720528404..853bd50f2195a4 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -156,6 +156,18 @@ class InternalEscapableScope : public v8::EscapableHandleScope { }; +#ifdef DEBUG +void CheckMicrotasksScopesConsistency(i::Isolate* isolate) { + auto handle_scope_implementer = isolate->handle_scope_implementer(); + if (handle_scope_implementer->microtasks_policy() == + v8::MicrotasksPolicy::kScoped) { + DCHECK(handle_scope_implementer->GetMicrotasksScopeDepth() || + !handle_scope_implementer->DebugMicrotasksScopeDepthIsZero()); + } +} +#endif + + class CallDepthScope { public: explicit CallDepthScope(i::Isolate* isolate, Local context, @@ -175,6 +187,9 @@ class CallDepthScope { if (!context_.IsEmpty()) context_->Exit(); if (!escaped_) isolate_->handle_scope_implementer()->DecrementCallDepth(); if (do_callback_) isolate_->FireCallCompletedCallback(); +#ifdef DEBUG + if (do_callback_) CheckMicrotasksScopesConsistency(isolate_); +#endif } void Escape() { @@ -226,7 +241,7 @@ void i::FatalProcessOutOfMemory(const char* location) { // When V8 cannot allocated memory FatalProcessOutOfMemory is called. // The default fatal error handler is called and execution is stopped. -void i::V8::FatalProcessOutOfMemory(const char* location, bool is_heap_oom) { +void i::V8::FatalProcessOutOfMemory(const char* location, bool take_snapshot) { i::Isolate* isolate = i::Isolate::Current(); char last_few_messages[Heap::kTraceRingBufferSize + 1]; char js_stacktrace[Heap::kStacktraceBufferSize + 1]; @@ -288,9 +303,7 @@ void i::V8::FatalProcessOutOfMemory(const char* location, bool is_heap_oom) { PrintF("\n<--- Last few GCs --->\n%s\n", first_newline); PrintF("\n<--- JS stacktrace --->\n%s\n", js_stacktrace); } - Utils::ApiCheck(false, location, is_heap_oom - ? "Allocation failed - JavaScript heap out of memory" - : "Allocation failed - process out of memory"); + Utils::ApiCheck(false, location, "Allocation failed - process out of memory"); // If the fatal error handler returns, we stop execution. FATAL("API fatal error handler returned after process out of memory"); } @@ -328,12 +341,23 @@ void V8::SetSnapshotDataBlob(StartupData* snapshot_blob) { i::V8::SetSnapshotBlob(snapshot_blob); } +namespace { + +class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { + public: + virtual void* Allocate(size_t length) { + void* data = AllocateUninitialized(length); + return data == NULL ? data : memset(data, 0, length); + } + virtual void* AllocateUninitialized(size_t length) { return malloc(length); } + virtual void Free(void* data, size_t) { free(data); } +}; bool RunExtraCode(Isolate* isolate, Local context, - const char* utf8_source) { - // Run custom script if provided. + const char* utf8_source, const char* name) { base::ElapsedTimer timer; timer.Start(); + Context::Scope context_scope(context); TryCatch try_catch(isolate); Local source_string; if (!String::NewFromUtf8(isolate, utf8_source, NewStringType::kNormal) @@ -341,7 +365,7 @@ bool RunExtraCode(Isolate* isolate, Local context, return false; } Local resource_name = - String::NewFromUtf8(isolate, "", NewStringType::kNormal) + String::NewFromUtf8(isolate, name, NewStringType::kNormal) .ToLocalChecked(); ScriptOrigin origin(resource_name); ScriptCompiler::Source source(source_string, origin); @@ -349,7 +373,7 @@ bool RunExtraCode(Isolate* isolate, Local context, if (!ScriptCompiler::Compile(context, &source).ToLocal(&script)) return false; if (script->Run(context).IsEmpty()) return false; if (i::FLAG_profile_deserialization) { - i::PrintF("Executing custom snapshot script took %0.3f ms\n", + i::PrintF("Executing custom snapshot script %s took %0.3f ms\n", name, timer.Elapsed().InMillisecondsF()); } timer.Stop(); @@ -357,92 +381,152 @@ bool RunExtraCode(Isolate* isolate, Local context, return true; } +StartupData SerializeIsolateAndContext( + Isolate* isolate, Persistent* context, + i::Snapshot::Metadata metadata, + i::StartupSerializer::FunctionCodeHandling function_code_handling) { + if (context->IsEmpty()) return {NULL, 0}; -namespace { + i::Isolate* internal_isolate = reinterpret_cast(isolate); -class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { - public: - virtual void* Allocate(size_t length) { - void* data = AllocateUninitialized(length); - return data == NULL ? data : memset(data, 0, length); + // If we don't do this then we end up with a stray root pointing at the + // context even after we have disposed of the context. + internal_isolate->heap()->CollectAllAvailableGarbage("mksnapshot"); + + // GC may have cleared weak cells, so compact any WeakFixedArrays + // found on the heap. + i::HeapIterator iterator(internal_isolate->heap(), + i::HeapIterator::kFilterUnreachable); + for (i::HeapObject* o = iterator.next(); o != NULL; o = iterator.next()) { + if (o->IsPrototypeInfo()) { + i::Object* prototype_users = i::PrototypeInfo::cast(o)->prototype_users(); + if (prototype_users->IsWeakFixedArray()) { + i::WeakFixedArray* array = i::WeakFixedArray::cast(prototype_users); + array->Compact(); + } + } else if (o->IsScript()) { + i::Object* shared_list = i::Script::cast(o)->shared_function_infos(); + if (shared_list->IsWeakFixedArray()) { + i::WeakFixedArray* array = i::WeakFixedArray::cast(shared_list); + array->Compact(); + } + } } - virtual void* AllocateUninitialized(size_t length) { return malloc(length); } - virtual void Free(void* data, size_t) { free(data); } -}; + + i::Object* raw_context = *v8::Utils::OpenPersistent(*context); + context->Reset(); + + i::SnapshotByteSink snapshot_sink; + i::StartupSerializer ser(internal_isolate, &snapshot_sink, + function_code_handling); + ser.SerializeStrongReferences(); + + i::SnapshotByteSink context_sink; + i::PartialSerializer context_ser(internal_isolate, &ser, &context_sink); + context_ser.Serialize(&raw_context); + ser.SerializeWeakReferencesAndDeferred(); + + return i::Snapshot::CreateSnapshotBlob(ser, context_ser, metadata); +} } // namespace +StartupData V8::CreateSnapshotDataBlob(const char* embedded_source) { + // Create a new isolate and a new context from scratch, optionally run + // a script to embed, and serialize to create a snapshot blob. + StartupData result = {NULL, 0}; + + base::ElapsedTimer timer; + timer.Start(); -StartupData V8::CreateSnapshotDataBlob(const char* custom_source) { - i::Isolate* internal_isolate = new i::Isolate(true); ArrayBufferAllocator allocator; + i::Isolate* internal_isolate = new i::Isolate(true); internal_isolate->set_array_buffer_allocator(&allocator); Isolate* isolate = reinterpret_cast(internal_isolate); - StartupData result = {NULL, 0}; + { - base::ElapsedTimer timer; - timer.Start(); Isolate::Scope isolate_scope(isolate); internal_isolate->Init(NULL); Persistent context; - i::Snapshot::Metadata metadata; { HandleScope handle_scope(isolate); Local new_context = Context::New(isolate); context.Reset(isolate, new_context); - if (custom_source != NULL) { - metadata.set_embeds_script(true); - Context::Scope context_scope(new_context); - if (!RunExtraCode(isolate, new_context, custom_source)) context.Reset(); + if (embedded_source != NULL && + !RunExtraCode(isolate, new_context, embedded_source, "")) { + context.Reset(); } } - if (!context.IsEmpty()) { - // If we don't do this then we end up with a stray root pointing at the - // context even after we have disposed of the context. - internal_isolate->heap()->CollectAllAvailableGarbage("mksnapshot"); - - // GC may have cleared weak cells, so compact any WeakFixedArrays - // found on the heap. - i::HeapIterator iterator(internal_isolate->heap(), - i::HeapIterator::kFilterUnreachable); - for (i::HeapObject* o = iterator.next(); o != NULL; o = iterator.next()) { - if (o->IsPrototypeInfo()) { - i::Object* prototype_users = - i::PrototypeInfo::cast(o)->prototype_users(); - if (prototype_users->IsWeakFixedArray()) { - i::WeakFixedArray* array = i::WeakFixedArray::cast(prototype_users); - array->Compact(); - } - } else if (o->IsScript()) { - i::Object* shared_list = i::Script::cast(o)->shared_function_infos(); - if (shared_list->IsWeakFixedArray()) { - i::WeakFixedArray* array = i::WeakFixedArray::cast(shared_list); - array->Compact(); - } - } - } - i::Object* raw_context = *v8::Utils::OpenPersistent(context); - context.Reset(); + i::Snapshot::Metadata metadata; + metadata.set_embeds_script(embedded_source != NULL); - i::SnapshotByteSink snapshot_sink; - i::StartupSerializer ser(internal_isolate, &snapshot_sink); - ser.SerializeStrongReferences(); + result = SerializeIsolateAndContext( + isolate, &context, metadata, i::StartupSerializer::CLEAR_FUNCTION_CODE); + DCHECK(context.IsEmpty()); + } + isolate->Dispose(); - i::SnapshotByteSink context_sink; - i::PartialSerializer context_ser(internal_isolate, &ser, &context_sink); - context_ser.Serialize(&raw_context); - ser.SerializeWeakReferencesAndDeferred(); + if (i::FLAG_profile_deserialization) { + i::PrintF("Creating snapshot took %0.3f ms\n", + timer.Elapsed().InMillisecondsF()); + } + timer.Stop(); + return result; +} + +StartupData V8::WarmUpSnapshotDataBlob(StartupData cold_snapshot_blob, + const char* warmup_source) { + CHECK(cold_snapshot_blob.raw_size > 0 && cold_snapshot_blob.data != NULL); + CHECK(warmup_source != NULL); + // Use following steps to create a warmed up snapshot blob from a cold one: + // - Create a new isolate from the cold snapshot. + // - Create a new context to run the warmup script. This will trigger + // compilation of executed functions. + // - Create a new context. This context will be unpolluted. + // - Serialize the isolate and the second context into a new snapshot blob. + StartupData result = {NULL, 0}; + + base::ElapsedTimer timer; + timer.Start(); - result = i::Snapshot::CreateSnapshotBlob(ser, context_ser, metadata); + ArrayBufferAllocator allocator; + i::Isolate* internal_isolate = new i::Isolate(true); + internal_isolate->set_array_buffer_allocator(&allocator); + internal_isolate->set_snapshot_blob(&cold_snapshot_blob); + Isolate* isolate = reinterpret_cast(internal_isolate); + + { + Isolate::Scope isolate_scope(isolate); + i::Snapshot::Initialize(internal_isolate); + Persistent context; + bool success; + { + HandleScope handle_scope(isolate); + Local new_context = Context::New(isolate); + success = RunExtraCode(isolate, new_context, warmup_source, ""); } - if (i::FLAG_profile_deserialization) { - i::PrintF("Creating snapshot took %0.3f ms\n", - timer.Elapsed().InMillisecondsF()); + if (success) { + HandleScope handle_scope(isolate); + isolate->ContextDisposedNotification(false); + Local new_context = Context::New(isolate); + context.Reset(isolate, new_context); } - timer.Stop(); + + i::Snapshot::Metadata metadata; + metadata.set_embeds_script(i::Snapshot::EmbedsScript(internal_isolate)); + + result = SerializeIsolateAndContext( + isolate, &context, metadata, i::StartupSerializer::KEEP_FUNCTION_CODE); + DCHECK(context.IsEmpty()); } isolate->Dispose(); + + if (i::FLAG_profile_deserialization) { + i::PrintF("Warming up snapshot took %0.3f ms\n", + timer.Elapsed().InMillisecondsF()); + } + timer.Stop(); return result; } @@ -593,6 +677,10 @@ i::Object** V8::CopyPersistent(i::Object** obj) { return result.location(); } +void V8::RegisterExternallyReferencedObject(i::Object** object, + i::Isolate* isolate) { + isolate->heap()->RegisterExternallyReferencedObject(object); +} void V8::MakeWeak(i::Object** object, void* parameter, WeakCallback weak_callback) { @@ -940,19 +1028,15 @@ void Template::Set(v8::Local name, v8::Local value, ENTER_V8(isolate); i::HandleScope scope(isolate); auto value_obj = Utils::OpenHandle(*value); - if (i::FLAG_warn_template_set && - value_obj->IsJSReceiver() && - !value_obj->IsTemplateInfo()) { - base::OS::PrintError( - "(node) v8::%sTemplate::Set() with non-primitive values is deprecated\n" - "(node) and will stop working in the next major release.\n", - templ->IsFunctionTemplateInfo() ? "Function" : "Object"); - isolate->PrintStack(stderr, i::Isolate::kPrintStackConcise); - base::DumpBacktrace(); + if (value_obj->IsObjectTemplateInfo()) { + templ->set_serial_number(i::Smi::FromInt(0)); + if (templ->IsFunctionTemplateInfo()) { + i::Handle::cast(templ)->set_do_not_cache(true); + } } // TODO(dcarney): split api to allow values of v8::Value or v8::TemplateInfo. i::ApiNatives::AddDataProperty(isolate, templ, Utils::OpenHandle(*name), - Utils::OpenHandle(*value), + value_obj, static_cast(attribute)); } @@ -1772,7 +1856,7 @@ MaybeLocal ScriptCompiler::CompileUnboundInternal( if (!source->source_map_url.IsEmpty()) { source_map_url = Utils::OpenHandle(*(source->source_map_url)); } - result = i::Compiler::CompileScript( + result = i::Compiler::GetSharedFunctionInfoForScript( str, name_obj, line_offset, column_offset, source->resource_options, source_map_url, isolate->native_context(), NULL, &script_data, options, i::NOT_NATIVES_CODE, is_module); @@ -1841,7 +1925,6 @@ Local