From 8a43a3d7619fde59f0d1f2fad05d8ae7d1732b02 Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Mon, 30 Nov 2015 21:22:40 -0800 Subject: deps: upgrade V8 to 4.7.80.24 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pick up the latest branch head for V8 4.7: https://github.com/v8/v8/commit/be169f8df059040e6a53ec1dd4579d8bca2167b5 Full change history for the 4.7 branch: https://chromium.googlesource.com/v8/v8.git/+log/branch-heads/4.7 V8 blog post about what is new on V8 4.7: http://v8project.blogspot.de/2015/10/v8-release-47.html PR-URL: https://github.com/nodejs/node/pull/4106 Reviewed-By: bnoordhuis - Ben Noordhuis Reviewed-By: targos - MichaĆ«l Zasso Reviewed-By: rvagg - Rod Vagg --- deps/v8/.gitignore | 1 + deps/v8/AUTHORS | 4 + deps/v8/BUILD.gn | 212 +- deps/v8/ChangeLog | 1209 +------- deps/v8/DEPS | 19 +- deps/v8/Makefile | 6 +- deps/v8/PRESUBMIT.py | 5 - deps/v8/README.md | 7 + deps/v8/build/download_gold_plugin.py | 30 + deps/v8/build/features.gypi | 6 + deps/v8/build/isolate.gypi | 74 + deps/v8/build/standalone.gypi | 43 +- deps/v8/build/toolchain.gypi | 35 +- deps/v8/docs/arm_debugging_with_the_simulator.md | 205 ++ deps/v8/docs/becoming_v8_committer.md | 38 + deps/v8/docs/building_with_gyp.md | 260 ++ deps/v8/docs/contributing.md | 32 + deps/v8/docs/cross_compiling_for_arm.md | 151 + deps/v8/docs/d8_on_android.md | 101 + deps/v8/docs/debugger_protocol.md | 934 ++++++ deps/v8/docs/gdb_jit_interface.md | 63 + deps/v8/docs/handling_of_ports.md | 24 + deps/v8/docs/i18n_support.md | 44 + deps/v8/docs/javascript.md | 6 + deps/v8/docs/javascript_stack_trace_api.md | 161 + deps/v8/docs/merging_and_patching.md | 66 + deps/v8/docs/profiling_chromium_with_v8.md | 34 + deps/v8/docs/release_process.md | 57 + deps/v8/docs/runtime_functions.md | 14 + deps/v8/docs/source.md | 39 + deps/v8/docs/testing.md | 58 + deps/v8/docs/triaging_issues.md | 22 + deps/v8/docs/using_git.md | 147 + deps/v8/docs/v8_c_plus_plus_styleand_sops.md | 7 + deps/v8/docs/v8_committers_responsibility.md | 41 + deps/v8/docs/v8_profiler.md | 141 + deps/v8/include/v8-debug.h | 2 +- deps/v8/include/v8-profiler.h | 2 +- deps/v8/include/v8-testing.h | 2 +- deps/v8/include/v8-util.h | 2 +- deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8.h | 42 +- deps/v8/infra/config/cq.cfg | 2 +- deps/v8/snapshot_toolchain.gni | 44 + deps/v8/src/DEPS | 8 +- deps/v8/src/accessors.cc | 42 +- deps/v8/src/allocation-tracker.cc | 341 --- deps/v8/src/allocation-tracker.h | 157 - deps/v8/src/api-natives.cc | 57 +- deps/v8/src/api-natives.h | 5 +- deps/v8/src/api.cc | 341 +-- deps/v8/src/arm/assembler-arm-inl.h | 6 +- deps/v8/src/arm/assembler-arm.cc | 35 + deps/v8/src/arm/assembler-arm.h | 15 +- deps/v8/src/arm/builtins-arm.cc | 874 +++--- deps/v8/src/arm/code-stubs-arm.cc | 1157 +++---- deps/v8/src/arm/code-stubs-arm.h | 4 +- deps/v8/src/arm/codegen-arm.cc | 12 +- deps/v8/src/arm/cpu-arm.cc | 19 +- deps/v8/src/arm/frames-arm.cc | 1 + deps/v8/src/arm/interface-descriptors-arm.cc | 51 +- deps/v8/src/arm/lithium-arm.cc | 60 +- deps/v8/src/arm/lithium-arm.h | 81 +- deps/v8/src/arm/lithium-codegen-arm.cc | 339 +-- deps/v8/src/arm/lithium-codegen-arm.h | 14 +- deps/v8/src/arm/lithium-gap-resolver-arm.cc | 4 +- deps/v8/src/arm/macro-assembler-arm.cc | 280 +- deps/v8/src/arm/macro-assembler-arm.h | 81 +- deps/v8/src/arm64/assembler-arm64-inl.h | 2 +- deps/v8/src/arm64/assembler-arm64.cc | 1 + deps/v8/src/arm64/assembler-arm64.h | 2 +- deps/v8/src/arm64/builtins-arm64.cc | 863 +++--- deps/v8/src/arm64/code-stubs-arm64.cc | 1041 ++++--- deps/v8/src/arm64/codegen-arm64.cc | 4 +- deps/v8/src/arm64/cpu-arm64.cc | 14 +- deps/v8/src/arm64/frames-arm64.cc | 2 + deps/v8/src/arm64/interface-descriptors-arm64.cc | 55 +- deps/v8/src/arm64/lithium-arm64.cc | 63 +- deps/v8/src/arm64/lithium-arm64.h | 84 +- deps/v8/src/arm64/lithium-codegen-arm64.cc | 292 +- deps/v8/src/arm64/lithium-codegen-arm64.h | 1 - deps/v8/src/arm64/macro-assembler-arm64.cc | 202 +- deps/v8/src/arm64/macro-assembler-arm64.h | 63 +- deps/v8/src/arm64/simulator-arm64.cc | 9 +- deps/v8/src/arm64/simulator-arm64.h | 11 +- deps/v8/src/array-iterator.js | 95 +- deps/v8/src/array.js | 283 +- deps/v8/src/arraybuffer.js | 6 +- deps/v8/src/assembler.cc | 49 +- deps/v8/src/assembler.h | 8 +- deps/v8/src/assert-scope.cc | 2 - deps/v8/src/assert-scope.h | 9 - deps/v8/src/ast-expression-visitor.cc | 356 +++ deps/v8/src/ast-expression-visitor.h | 49 + deps/v8/src/ast-literal-reindexer.cc | 9 + deps/v8/src/ast-literal-reindexer.h | 1 + deps/v8/src/ast-numbering.cc | 29 +- deps/v8/src/ast-value-factory.h | 71 +- deps/v8/src/ast.cc | 219 +- deps/v8/src/ast.h | 377 +-- deps/v8/src/atomic-utils.h | 174 ++ deps/v8/src/bailout-reason.h | 5 +- deps/v8/src/base.isolate | 15 + deps/v8/src/base/atomicops_internals_x86_gcc.cc | 2 +- deps/v8/src/base/bits.h | 8 +- deps/v8/src/base/build_config.h | 4 + deps/v8/src/base/platform/condition-variable.cc | 4 +- deps/v8/src/base/platform/platform-aix.cc | 4 +- deps/v8/src/base/platform/platform-cygwin.cc | 4 +- deps/v8/src/base/platform/platform-freebsd.cc | 5 +- deps/v8/src/base/platform/platform-linux.cc | 7 +- deps/v8/src/base/platform/platform-macos.cc | 4 +- deps/v8/src/base/platform/platform-openbsd.cc | 5 +- deps/v8/src/base/platform/platform-posix.cc | 2 +- deps/v8/src/base/platform/platform-qnx.cc | 5 +- deps/v8/src/base/platform/platform-solaris.cc | 2 +- deps/v8/src/base/platform/platform-win32.cc | 2 +- deps/v8/src/base/platform/platform.h | 9 + deps/v8/src/base/smart-pointers.h | 2 + deps/v8/src/bit-vector.cc | 2 +- deps/v8/src/bootstrapper.cc | 613 ++-- deps/v8/src/bootstrapper.h | 10 +- deps/v8/src/builtins.cc | 1482 ++++++--- deps/v8/src/builtins.h | 214 +- deps/v8/src/cancelable-task.cc | 2 +- deps/v8/src/circular-queue-inl.h | 69 - deps/v8/src/circular-queue.h | 68 - deps/v8/src/code-factory.cc | 37 +- deps/v8/src/code-factory.h | 9 +- deps/v8/src/code-stubs-hydrogen.cc | 205 +- deps/v8/src/code-stubs.cc | 77 +- deps/v8/src/code-stubs.h | 296 +- deps/v8/src/code.h | 52 - deps/v8/src/codegen.cc | 42 +- deps/v8/src/codegen.h | 1 - deps/v8/src/collection-iterator.js | 32 +- deps/v8/src/collection.js | 64 +- deps/v8/src/compilation-cache.cc | 10 +- deps/v8/src/compilation-cache.h | 4 + deps/v8/src/compilation-statistics.cc | 12 +- deps/v8/src/compiler.cc | 124 +- deps/v8/src/compiler.h | 53 +- deps/v8/src/compiler/DEPS | 3 - deps/v8/src/compiler/access-builder.cc | 8 +- deps/v8/src/compiler/access-builder.h | 2 +- deps/v8/src/compiler/arm/code-generator-arm.cc | 60 +- .../src/compiler/arm/instruction-selector-arm.cc | 83 +- deps/v8/src/compiler/arm64/code-generator-arm64.cc | 92 +- .../src/compiler/arm64/instruction-codes-arm64.h | 1 + .../compiler/arm64/instruction-selector-arm64.cc | 52 +- deps/v8/src/compiler/ast-graph-builder.cc | 271 +- deps/v8/src/compiler/ast-graph-builder.h | 20 +- .../src/compiler/ast-loop-assignment-analyzer.cc | 9 + deps/v8/src/compiler/basic-block-instrumentor.cc | 5 +- deps/v8/src/compiler/bytecode-graph-builder.cc | 547 ++++ deps/v8/src/compiler/bytecode-graph-builder.h | 174 ++ deps/v8/src/compiler/change-lowering.cc | 8 +- deps/v8/src/compiler/code-generator-impl.h | 4 + deps/v8/src/compiler/code-generator.cc | 15 +- deps/v8/src/compiler/common-node-cache.cc | 1 - deps/v8/src/compiler/common-operator-reducer.cc | 24 +- deps/v8/src/compiler/common-operator.cc | 16 +- deps/v8/src/compiler/common-operator.h | 4 +- deps/v8/src/compiler/control-builders.cc | 2 +- deps/v8/src/compiler/control-flow-optimizer.cc | 8 +- deps/v8/src/compiler/dead-code-elimination.cc | 4 +- deps/v8/src/compiler/diamond.h | 30 +- deps/v8/src/compiler/frame.h | 6 +- deps/v8/src/compiler/graph-reducer.cc | 2 + deps/v8/src/compiler/graph-visualizer.cc | 86 +- deps/v8/src/compiler/graph.cc | 11 +- deps/v8/src/compiler/graph.h | 4 + deps/v8/src/compiler/greedy-allocator.cc | 522 +++- deps/v8/src/compiler/greedy-allocator.h | 80 +- deps/v8/src/compiler/ia32/code-generator-ia32.cc | 42 +- deps/v8/src/compiler/ia32/instruction-codes-ia32.h | 2 + .../src/compiler/ia32/instruction-selector-ia32.cc | 18 +- deps/v8/src/compiler/instruction-codes.h | 16 +- deps/v8/src/compiler/instruction-selector-impl.h | 38 +- deps/v8/src/compiler/instruction-selector.cc | 54 +- deps/v8/src/compiler/instruction-selector.h | 8 +- deps/v8/src/compiler/instruction.cc | 67 +- deps/v8/src/compiler/instruction.h | 14 +- deps/v8/src/compiler/interpreter-assembler.cc | 256 +- deps/v8/src/compiler/interpreter-assembler.h | 79 +- deps/v8/src/compiler/js-builtin-reducer.cc | 15 +- deps/v8/src/compiler/js-context-specialization.cc | 8 +- deps/v8/src/compiler/js-generic-lowering.cc | 169 +- deps/v8/src/compiler/js-generic-lowering.h | 3 +- deps/v8/src/compiler/js-graph.cc | 18 +- deps/v8/src/compiler/js-graph.h | 5 +- deps/v8/src/compiler/js-inlining.cc | 72 +- deps/v8/src/compiler/js-inlining.h | 5 + deps/v8/src/compiler/js-intrinsic-lowering.cc | 57 +- deps/v8/src/compiler/js-intrinsic-lowering.h | 1 - deps/v8/src/compiler/js-operator.cc | 139 +- deps/v8/src/compiler/js-operator.h | 82 +- deps/v8/src/compiler/js-type-feedback-lowering.cc | 11 +- deps/v8/src/compiler/js-type-feedback.cc | 12 +- deps/v8/src/compiler/js-typed-lowering.cc | 249 +- deps/v8/src/compiler/js-typed-lowering.h | 1 + deps/v8/src/compiler/linkage.cc | 35 +- deps/v8/src/compiler/linkage.h | 3 +- deps/v8/src/compiler/live-range-separator.cc | 172 ++ deps/v8/src/compiler/live-range-separator.h | 60 + deps/v8/src/compiler/machine-operator-reducer.cc | 91 +- deps/v8/src/compiler/machine-operator.cc | 41 +- deps/v8/src/compiler/machine-operator.h | 8 +- deps/v8/src/compiler/mips/code-generator-mips.cc | 158 +- .../src/compiler/mips/instruction-selector-mips.cc | 42 +- .../src/compiler/mips64/code-generator-mips64.cc | 164 +- .../src/compiler/mips64/instruction-codes-mips64.h | 2 + .../compiler/mips64/instruction-selector-mips64.cc | 93 +- deps/v8/src/compiler/node-matchers.h | 44 +- deps/v8/src/compiler/node-properties.cc | 8 + deps/v8/src/compiler/node-properties.h | 26 +- deps/v8/src/compiler/node.cc | 3 +- deps/v8/src/compiler/node.h | 12 +- deps/v8/src/compiler/opcodes.h | 8 +- deps/v8/src/compiler/operator-properties.cc | 1 + deps/v8/src/compiler/operator.h | 28 +- deps/v8/src/compiler/osr.cc | 10 +- deps/v8/src/compiler/pipeline.cc | 137 +- deps/v8/src/compiler/pipeline.h | 20 +- deps/v8/src/compiler/ppc/code-generator-ppc.cc | 55 +- deps/v8/src/compiler/ppc/instruction-codes-ppc.h | 4 + .../src/compiler/ppc/instruction-selector-ppc.cc | 30 + deps/v8/src/compiler/preprocess-live-ranges.cc | 169 -- deps/v8/src/compiler/preprocess-live-ranges.h | 35 - deps/v8/src/compiler/raw-machine-assembler.cc | 161 +- deps/v8/src/compiler/raw-machine-assembler.h | 293 +- deps/v8/src/compiler/register-allocator.cc | 1271 ++++---- deps/v8/src/compiler/register-allocator.h | 377 ++- deps/v8/src/compiler/representation-change.h | 22 +- deps/v8/src/compiler/schedule.cc | 8 +- deps/v8/src/compiler/select-lowering.cc | 3 +- deps/v8/src/compiler/simplified-lowering.cc | 197 +- deps/v8/src/compiler/simplified-lowering.h | 3 +- .../v8/src/compiler/simplified-operator-reducer.cc | 8 +- deps/v8/src/compiler/simplified-operator.cc | 27 +- deps/v8/src/compiler/simplified-operator.h | 1 - deps/v8/src/compiler/source-position.cc | 1 - deps/v8/src/compiler/tail-call-optimization.cc | 4 +- deps/v8/src/compiler/typer.cc | 1070 +++---- deps/v8/src/compiler/typer.h | 7 +- deps/v8/src/compiler/verifier.cc | 112 +- deps/v8/src/compiler/verifier.h | 24 + deps/v8/src/compiler/x64/code-generator-x64.cc | 58 +- deps/v8/src/compiler/x64/instruction-codes-x64.h | 4 + .../src/compiler/x64/instruction-selector-x64.cc | 30 + deps/v8/src/compiler/x87/code-generator-x87.cc | 50 +- deps/v8/src/compiler/x87/instruction-codes-x87.h | 2 + .../src/compiler/x87/instruction-selector-x87.cc | 19 +- deps/v8/src/context-measure.cc | 6 +- deps/v8/src/contexts-inl.h | 148 + deps/v8/src/contexts.cc | 124 +- deps/v8/src/contexts.h | 426 +-- deps/v8/src/conversions-inl.h | 1 + deps/v8/src/conversions.cc | 5 +- deps/v8/src/counters.cc | 3 +- deps/v8/src/counters.h | 5 - deps/v8/src/cpu-profiler-inl.h | 79 - deps/v8/src/cpu-profiler.cc | 551 ---- deps/v8/src/cpu-profiler.h | 276 -- deps/v8/src/d8.cc | 11 +- deps/v8/src/d8.gyp | 21 +- deps/v8/src/d8.isolate | 16 + deps/v8/src/date.cc | 2 - deps/v8/src/date.js | 27 +- deps/v8/src/dateparser-inl.h | 28 +- deps/v8/src/dateparser.h | 24 +- deps/v8/src/debug/debug-evaluate.cc | 11 +- deps/v8/src/debug/debug-frames.cc | 5 +- deps/v8/src/debug/debug-scopes.cc | 131 +- deps/v8/src/debug/debug-scopes.h | 3 + deps/v8/src/debug/debug.cc | 237 +- deps/v8/src/debug/debug.h | 29 +- deps/v8/src/debug/liveedit.cc | 7 +- deps/v8/src/debug/mirrors.js | 23 +- deps/v8/src/deoptimizer.cc | 12 +- deps/v8/src/disassembler.cc | 2 +- deps/v8/src/dtoa.h | 2 + deps/v8/src/effects.h | 6 +- deps/v8/src/elements-kind.h | 14 +- deps/v8/src/elements.cc | 748 +++-- deps/v8/src/elements.h | 42 +- deps/v8/src/execution.cc | 291 +- deps/v8/src/execution.h | 83 +- deps/v8/src/expression-classifier.h | 73 +- .../src/extensions/externalize-string-extension.cc | 4 +- deps/v8/src/extensions/free-buffer-extension.cc | 2 +- deps/v8/src/extensions/statistics-extension.cc | 4 +- .../v8/src/extensions/trigger-failure-extension.cc | 4 +- deps/v8/src/factory.cc | 231 +- deps/v8/src/factory.h | 101 +- deps/v8/src/fast-dtoa.h | 2 + deps/v8/src/fixed-dtoa.h | 2 + deps/v8/src/flag-definitions.h | 59 +- deps/v8/src/flags.cc | 15 +- deps/v8/src/frames-inl.h | 1 + deps/v8/src/frames.cc | 94 +- deps/v8/src/frames.h | 26 +- deps/v8/src/full-codegen/OWNERS | 2 + deps/v8/src/full-codegen/arm/full-codegen-arm.cc | 649 ++-- .../src/full-codegen/arm64/full-codegen-arm64.cc | 659 ++-- deps/v8/src/full-codegen/full-codegen.cc | 134 +- deps/v8/src/full-codegen/full-codegen.h | 124 +- deps/v8/src/full-codegen/ia32/full-codegen-ia32.cc | 639 ++-- deps/v8/src/full-codegen/mips/full-codegen-mips.cc | 655 ++-- .../src/full-codegen/mips64/full-codegen-mips64.cc | 655 ++-- deps/v8/src/full-codegen/ppc/full-codegen-ppc.cc | 654 ++-- deps/v8/src/full-codegen/x64/full-codegen-x64.cc | 633 ++-- deps/v8/src/full-codegen/x87/full-codegen-x87.cc | 637 ++-- deps/v8/src/futex-emulation.cc | 89 +- deps/v8/src/futex-emulation.h | 9 +- deps/v8/src/generator.js | 6 +- deps/v8/src/global-handles.cc | 5 +- deps/v8/src/globals.h | 13 +- deps/v8/src/handles-inl.h | 6 + deps/v8/src/handles.cc | 5 +- deps/v8/src/handles.h | 53 +- deps/v8/src/harmony-array-includes.js | 4 +- deps/v8/src/harmony-array.js | 50 +- deps/v8/src/harmony-atomics.js | 45 +- deps/v8/src/harmony-concat-spreadable.js | 5 +- deps/v8/src/harmony-object.js | 56 - deps/v8/src/harmony-reflect.js | 6 +- deps/v8/src/harmony-regexp.js | 7 +- deps/v8/src/harmony-sharedarraybuffer.js | 3 +- deps/v8/src/harmony-simd.js | 537 +++- deps/v8/src/harmony-spread.js | 12 +- deps/v8/src/harmony-tostring.js | 3 +- deps/v8/src/harmony-typedarray.js | 13 +- deps/v8/src/heap-profiler.cc | 193 -- deps/v8/src/heap-profiler.h | 82 - deps/v8/src/heap-snapshot-generator-inl.h | 48 - deps/v8/src/heap-snapshot-generator.cc | 3182 -------------------- deps/v8/src/heap-snapshot-generator.h | 617 ---- deps/v8/src/heap/OWNERS | 1 + deps/v8/src/heap/array-buffer-tracker.cc | 138 + deps/v8/src/heap/array-buffer-tracker.h | 73 + deps/v8/src/heap/gc-idle-time-handler.cc | 104 +- deps/v8/src/heap/gc-idle-time-handler.h | 79 +- deps/v8/src/heap/gc-tracer.cc | 12 +- deps/v8/src/heap/gc-tracer.h | 3 +- deps/v8/src/heap/heap-inl.h | 172 +- deps/v8/src/heap/heap.cc | 1804 +++-------- deps/v8/src/heap/heap.h | 2466 ++++++++------- deps/v8/src/heap/identity-map.cc | 191 -- deps/v8/src/heap/identity-map.h | 98 - deps/v8/src/heap/incremental-marking-inl.h | 1 + deps/v8/src/heap/incremental-marking-job.cc | 145 + deps/v8/src/heap/incremental-marking-job.h | 81 + deps/v8/src/heap/incremental-marking.cc | 61 +- deps/v8/src/heap/incremental-marking.h | 29 +- deps/v8/src/heap/mark-compact-inl.h | 21 +- deps/v8/src/heap/mark-compact.cc | 1091 +++---- deps/v8/src/heap/mark-compact.h | 249 +- deps/v8/src/heap/memory-reducer.cc | 28 +- deps/v8/src/heap/object-stats.cc | 258 ++ deps/v8/src/heap/object-stats.h | 102 + deps/v8/src/heap/objects-visiting-inl.h | 51 +- deps/v8/src/heap/objects-visiting.cc | 6 +- deps/v8/src/heap/objects-visiting.h | 19 +- deps/v8/src/heap/scavenge-job.cc | 116 + deps/v8/src/heap/scavenge-job.h | 80 + deps/v8/src/heap/scavenger-inl.h | 51 + deps/v8/src/heap/scavenger.cc | 496 +++ deps/v8/src/heap/scavenger.h | 72 + deps/v8/src/heap/slots-buffer.cc | 161 + deps/v8/src/heap/slots-buffer.h | 175 ++ deps/v8/src/heap/spaces-inl.h | 9 +- deps/v8/src/heap/spaces.cc | 367 +-- deps/v8/src/heap/spaces.h | 734 +++-- deps/v8/src/heap/store-buffer-inl.h | 14 +- deps/v8/src/heap/store-buffer.cc | 65 +- deps/v8/src/heap/store-buffer.h | 31 +- deps/v8/src/hydrogen-dce.cc | 1 - deps/v8/src/hydrogen-instructions.cc | 147 +- deps/v8/src/hydrogen-instructions.h | 294 +- deps/v8/src/hydrogen-sce.cc | 1 - deps/v8/src/hydrogen.cc | 617 ++-- deps/v8/src/hydrogen.h | 71 +- deps/v8/src/i18n.js | 23 +- deps/v8/src/ia32/assembler-ia32-inl.h | 10 +- deps/v8/src/ia32/assembler-ia32.cc | 4 +- deps/v8/src/ia32/assembler-ia32.h | 3 +- deps/v8/src/ia32/builtins-ia32.cc | 892 +++--- deps/v8/src/ia32/code-stubs-ia32.cc | 1211 ++++---- deps/v8/src/ia32/code-stubs-ia32.h | 2 +- deps/v8/src/ia32/codegen-ia32.cc | 10 +- deps/v8/src/ia32/frames-ia32.cc | 1 + deps/v8/src/ia32/frames-ia32.h | 1 + deps/v8/src/ia32/interface-descriptors-ia32.cc | 67 +- deps/v8/src/ia32/lithium-codegen-ia32.cc | 295 +- deps/v8/src/ia32/lithium-codegen-ia32.h | 14 +- deps/v8/src/ia32/lithium-ia32.cc | 60 +- deps/v8/src/ia32/lithium-ia32.h | 83 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 208 +- deps/v8/src/ia32/macro-assembler-ia32.h | 84 +- deps/v8/src/ia32/simulator-ia32.cc | 1 + deps/v8/src/ic/access-compiler.cc | 20 + deps/v8/src/ic/access-compiler.h | 9 +- deps/v8/src/ic/arm/access-compiler-arm.cc | 2 +- deps/v8/src/ic/arm/handler-compiler-arm.cc | 28 +- deps/v8/src/ic/arm/ic-arm.cc | 24 +- deps/v8/src/ic/arm/ic-compiler-arm.cc | 5 +- deps/v8/src/ic/arm/stub-cache-arm.cc | 10 +- deps/v8/src/ic/arm64/access-compiler-arm64.cc | 2 +- deps/v8/src/ic/arm64/handler-compiler-arm64.cc | 29 +- deps/v8/src/ic/arm64/ic-arm64.cc | 16 +- deps/v8/src/ic/arm64/ic-compiler-arm64.cc | 5 +- deps/v8/src/ic/arm64/stub-cache-arm64.cc | 10 +- deps/v8/src/ic/handler-compiler.cc | 43 +- deps/v8/src/ic/handler-compiler.h | 1 + deps/v8/src/ic/ia32/access-compiler-ia32.cc | 3 +- deps/v8/src/ic/ia32/handler-compiler-ia32.cc | 42 +- deps/v8/src/ic/ia32/ic-compiler-ia32.cc | 5 +- deps/v8/src/ic/ia32/ic-ia32.cc | 26 +- deps/v8/src/ic/ia32/stub-cache-ia32.cc | 50 +- deps/v8/src/ic/ic-compiler.cc | 109 +- deps/v8/src/ic/ic-compiler.h | 15 +- deps/v8/src/ic/ic-inl.h | 1 + deps/v8/src/ic/ic-state.cc | 20 +- deps/v8/src/ic/ic-state.h | 2 + deps/v8/src/ic/ic.cc | 515 ++-- deps/v8/src/ic/ic.h | 32 +- deps/v8/src/ic/mips/access-compiler-mips.cc | 2 +- deps/v8/src/ic/mips/handler-compiler-mips.cc | 28 +- deps/v8/src/ic/mips/ic-compiler-mips.cc | 5 +- deps/v8/src/ic/mips/ic-mips.cc | 14 +- deps/v8/src/ic/mips/stub-cache-mips.cc | 10 +- deps/v8/src/ic/mips64/access-compiler-mips64.cc | 2 +- deps/v8/src/ic/mips64/handler-compiler-mips64.cc | 30 +- deps/v8/src/ic/mips64/ic-compiler-mips64.cc | 5 +- deps/v8/src/ic/mips64/ic-mips64.cc | 23 +- deps/v8/src/ic/mips64/stub-cache-mips64.cc | 10 +- deps/v8/src/ic/ppc/access-compiler-ppc.cc | 2 +- deps/v8/src/ic/ppc/handler-compiler-ppc.cc | 28 +- deps/v8/src/ic/ppc/ic-compiler-ppc.cc | 5 +- deps/v8/src/ic/ppc/ic-ppc.cc | 14 +- deps/v8/src/ic/ppc/stub-cache-ppc.cc | 10 +- deps/v8/src/ic/x64/access-compiler-x64.cc | 3 +- deps/v8/src/ic/x64/handler-compiler-x64.cc | 32 +- deps/v8/src/ic/x64/ic-compiler-x64.cc | 5 +- deps/v8/src/ic/x64/ic-x64.cc | 14 +- deps/v8/src/ic/x64/stub-cache-x64.cc | 13 +- deps/v8/src/ic/x87/access-compiler-x87.cc | 3 +- deps/v8/src/ic/x87/handler-compiler-x87.cc | 42 +- deps/v8/src/ic/x87/ic-compiler-x87.cc | 5 +- deps/v8/src/ic/x87/ic-x87.cc | 26 +- deps/v8/src/ic/x87/stub-cache-x87.cc | 50 +- deps/v8/src/identity-map.cc | 191 ++ deps/v8/src/identity-map.h | 98 + deps/v8/src/interface-descriptors.cc | 320 +- deps/v8/src/interface-descriptors.h | 84 +- deps/v8/src/interpreter/DEPS | 1 - deps/v8/src/interpreter/bytecode-array-builder.cc | 484 ++- deps/v8/src/interpreter/bytecode-array-builder.h | 141 +- deps/v8/src/interpreter/bytecode-array-iterator.cc | 72 + deps/v8/src/interpreter/bytecode-array-iterator.h | 48 + deps/v8/src/interpreter/bytecode-generator.cc | 293 +- deps/v8/src/interpreter/bytecode-generator.h | 10 +- deps/v8/src/interpreter/bytecodes.cc | 67 +- deps/v8/src/interpreter/bytecodes.h | 123 +- deps/v8/src/interpreter/interpreter.cc | 342 ++- deps/v8/src/interpreter/interpreter.h | 20 + deps/v8/src/isolate-inl.h | 104 + deps/v8/src/isolate.cc | 109 +- deps/v8/src/isolate.h | 111 +- deps/v8/src/iterator-prototype.js | 5 +- deps/v8/src/json-parser.h | 13 +- deps/v8/src/json-stringifier.h | 6 +- deps/v8/src/json.js | 33 +- deps/v8/src/layout-descriptor.cc | 6 +- deps/v8/src/list-inl.h | 2 +- deps/v8/src/lithium-allocator.cc | 11 +- deps/v8/src/lithium-codegen.cc | 2 - deps/v8/src/lithium.cc | 6 +- deps/v8/src/log-inl.h | 5 +- deps/v8/src/log-utils.h | 2 + deps/v8/src/log.cc | 13 +- deps/v8/src/lookup.cc | 10 +- deps/v8/src/macro-assembler.h | 74 +- deps/v8/src/macros.py | 31 +- deps/v8/src/math.js | 3 +- deps/v8/src/messages.cc | 112 +- deps/v8/src/messages.h | 37 +- deps/v8/src/messages.js | 175 +- deps/v8/src/mips/assembler-mips.cc | 9 +- deps/v8/src/mips/assembler-mips.h | 3 +- deps/v8/src/mips/builtins-mips.cc | 886 +++--- deps/v8/src/mips/code-stubs-mips.cc | 1169 +++---- deps/v8/src/mips/codegen-mips.cc | 2 + deps/v8/src/mips/constants-mips.cc | 145 - deps/v8/src/mips/constants-mips.h | 138 +- deps/v8/src/mips/disasm-mips.cc | 2 +- deps/v8/src/mips/frames-mips.cc | 1 + deps/v8/src/mips/interface-descriptors-mips.cc | 49 +- deps/v8/src/mips/lithium-codegen-mips.cc | 339 +-- deps/v8/src/mips/lithium-codegen-mips.h | 21 +- deps/v8/src/mips/lithium-mips.cc | 60 +- deps/v8/src/mips/lithium-mips.h | 81 +- deps/v8/src/mips/macro-assembler-mips.cc | 290 +- deps/v8/src/mips/macro-assembler-mips.h | 86 +- deps/v8/src/mips/simulator-mips.cc | 1723 +++++------ deps/v8/src/mips/simulator-mips.h | 100 +- deps/v8/src/mips64/assembler-mips64.cc | 6 +- deps/v8/src/mips64/assembler-mips64.h | 13 +- deps/v8/src/mips64/builtins-mips64.cc | 892 +++--- deps/v8/src/mips64/code-stubs-mips64.cc | 1198 ++++---- deps/v8/src/mips64/codegen-mips64.cc | 344 ++- deps/v8/src/mips64/constants-mips64.cc | 185 -- deps/v8/src/mips64/constants-mips64.h | 176 +- deps/v8/src/mips64/disasm-mips64.cc | 2 +- deps/v8/src/mips64/frames-mips64.cc | 1 + deps/v8/src/mips64/interface-descriptors-mips64.cc | 49 +- deps/v8/src/mips64/lithium-codegen-mips64.cc | 339 +-- deps/v8/src/mips64/lithium-codegen-mips64.h | 20 +- deps/v8/src/mips64/lithium-mips64.cc | 60 +- deps/v8/src/mips64/lithium-mips64.h | 81 +- deps/v8/src/mips64/macro-assembler-mips64.cc | 459 +-- deps/v8/src/mips64/macro-assembler-mips64.h | 99 +- deps/v8/src/mips64/simulator-mips64.cc | 1859 +++++------- deps/v8/src/mips64/simulator-mips64.h | 103 +- deps/v8/src/object-observe.js | 39 +- deps/v8/src/objects-debug.cc | 44 +- deps/v8/src/objects-inl.h | 429 ++- deps/v8/src/objects-printer.cc | 93 +- deps/v8/src/objects.cc | 1704 +++++++++-- deps/v8/src/objects.h | 708 +++-- deps/v8/src/optimizing-compile-dispatcher.cc | 3 +- deps/v8/src/parser.cc | 519 +++- deps/v8/src/parser.h | 41 +- deps/v8/src/pattern-rewriter.cc | 33 +- deps/v8/src/ppc/assembler-ppc-inl.h | 4 +- deps/v8/src/ppc/assembler-ppc.cc | 2 + deps/v8/src/ppc/builtins-ppc.cc | 916 +++--- deps/v8/src/ppc/code-stubs-ppc.cc | 1224 ++++---- deps/v8/src/ppc/code-stubs-ppc.h | 5 +- deps/v8/src/ppc/codegen-ppc.cc | 8 +- deps/v8/src/ppc/cpu-ppc.cc | 18 +- deps/v8/src/ppc/frames-ppc.cc | 1 + deps/v8/src/ppc/interface-descriptors-ppc.cc | 48 +- deps/v8/src/ppc/lithium-codegen-ppc.cc | 330 +- deps/v8/src/ppc/lithium-codegen-ppc.h | 10 +- deps/v8/src/ppc/lithium-ppc.cc | 57 +- deps/v8/src/ppc/lithium-ppc.h | 79 +- deps/v8/src/ppc/macro-assembler-ppc.cc | 383 +-- deps/v8/src/ppc/macro-assembler-ppc.h | 80 +- deps/v8/src/preparser.cc | 61 +- deps/v8/src/preparser.h | 313 +- deps/v8/src/prettyprinter.cc | 49 +- deps/v8/src/profile-generator-inl.h | 58 - deps/v8/src/profile-generator.cc | 704 ----- deps/v8/src/profile-generator.h | 391 --- deps/v8/src/profiler/allocation-tracker.cc | 340 +++ deps/v8/src/profiler/allocation-tracker.h | 157 + deps/v8/src/profiler/circular-queue-inl.h | 69 + deps/v8/src/profiler/circular-queue.h | 68 + deps/v8/src/profiler/cpu-profiler-inl.h | 79 + deps/v8/src/profiler/cpu-profiler.cc | 531 ++++ deps/v8/src/profiler/cpu-profiler.h | 276 ++ deps/v8/src/profiler/heap-profiler.cc | 193 ++ deps/v8/src/profiler/heap-profiler.h | 84 + deps/v8/src/profiler/heap-snapshot-generator-inl.h | 48 + deps/v8/src/profiler/heap-snapshot-generator.cc | 3181 +++++++++++++++++++ deps/v8/src/profiler/heap-snapshot-generator.h | 621 ++++ deps/v8/src/profiler/profile-generator-inl.h | 48 + deps/v8/src/profiler/profile-generator.cc | 705 +++++ deps/v8/src/profiler/profile-generator.h | 388 +++ deps/v8/src/profiler/sampler.cc | 861 ++++++ deps/v8/src/profiler/sampler.h | 135 + deps/v8/src/profiler/unbound-queue-inl.h | 82 + deps/v8/src/profiler/unbound-queue.h | 47 + deps/v8/src/prologue.js | 90 +- deps/v8/src/promise.js | 110 +- deps/v8/src/prototype.h | 20 +- deps/v8/src/proxy.js | 20 +- deps/v8/src/regexp.js | 32 +- .../src/regexp/arm/regexp-macro-assembler-arm.cc | 2 +- .../regexp/arm64/regexp-macro-assembler-arm64.cc | 2 +- .../src/regexp/ia32/regexp-macro-assembler-ia32.cc | 2 +- deps/v8/src/regexp/jsregexp.cc | 94 + deps/v8/src/regexp/jsregexp.h | 26 +- .../regexp/mips64/regexp-macro-assembler-mips64.cc | 10 +- .../src/regexp/ppc/regexp-macro-assembler-ppc.cc | 2 +- deps/v8/src/regexp/regexp-macro-assembler.cc | 1 + deps/v8/src/regexp/regexp-stack.cc | 1 - .../src/regexp/x64/regexp-macro-assembler-x64.cc | 2 +- .../src/regexp/x87/regexp-macro-assembler-x87.cc | 2 +- deps/v8/src/rewriter.cc | 6 + deps/v8/src/runtime-profiler.cc | 2 - deps/v8/src/runtime.js | 686 +---- deps/v8/src/runtime/runtime-array.cc | 839 +----- deps/v8/src/runtime/runtime-atomics.cc | 181 +- deps/v8/src/runtime/runtime-classes.cc | 91 +- deps/v8/src/runtime/runtime-collections.cc | 93 +- deps/v8/src/runtime/runtime-compiler.cc | 6 + deps/v8/src/runtime/runtime-date.cc | 10 +- deps/v8/src/runtime/runtime-debug.cc | 27 +- deps/v8/src/runtime/runtime-forin.cc | 4 +- deps/v8/src/runtime/runtime-function.cc | 176 +- deps/v8/src/runtime/runtime-i18n.cc | 7 +- deps/v8/src/runtime/runtime-internal.cc | 128 +- deps/v8/src/runtime/runtime-interpreter.cc | 125 + deps/v8/src/runtime/runtime-json.cc | 10 +- deps/v8/src/runtime/runtime-literals.cc | 49 +- deps/v8/src/runtime/runtime-liveedit.cc | 1 + deps/v8/src/runtime/runtime-numbers.cc | 253 +- deps/v8/src/runtime/runtime-object.cc | 403 ++- deps/v8/src/runtime/runtime-observe.cc | 1 + deps/v8/src/runtime/runtime-operators.cc | 277 ++ deps/v8/src/runtime/runtime-proxy.cc | 2 +- deps/v8/src/runtime/runtime-regexp.cc | 32 +- deps/v8/src/runtime/runtime-scopes.cc | 239 +- deps/v8/src/runtime/runtime-simd.cc | 378 ++- deps/v8/src/runtime/runtime-strings.cc | 101 +- deps/v8/src/runtime/runtime-symbol.cc | 39 +- deps/v8/src/runtime/runtime-test.cc | 10 +- deps/v8/src/runtime/runtime-typedarray.cc | 75 +- deps/v8/src/runtime/runtime-uri.cc | 24 +- deps/v8/src/runtime/runtime.cc | 6 +- deps/v8/src/runtime/runtime.h | 738 +++-- deps/v8/src/sampler.cc | 779 ----- deps/v8/src/sampler.h | 135 - deps/v8/src/scanner-character-streams.cc | 5 +- deps/v8/src/scanner-character-streams.h | 5 + deps/v8/src/scanner.cc | 28 +- deps/v8/src/scanner.h | 64 +- deps/v8/src/scopeinfo.cc | 112 +- deps/v8/src/scopeinfo.h | 36 +- deps/v8/src/scopes.cc | 81 +- deps/v8/src/scopes.h | 87 +- deps/v8/src/snapshot/mksnapshot.cc | 29 +- deps/v8/src/snapshot/natives-common.cc | 8 + deps/v8/src/snapshot/natives-external.cc | 4 + deps/v8/src/snapshot/natives.h | 11 +- deps/v8/src/snapshot/serialize.cc | 187 +- deps/v8/src/snapshot/serialize.h | 104 +- deps/v8/src/snapshot/snapshot-common.cc | 10 +- deps/v8/src/snapshot/snapshot-empty.cc | 2 - deps/v8/src/snapshot/snapshot.h | 16 +- deps/v8/src/string-builder.cc | 1 + deps/v8/src/string-iterator.js | 77 +- deps/v8/src/string-search.h | 97 +- deps/v8/src/string-stream.cc | 2 +- deps/v8/src/string-stream.h | 2 +- deps/v8/src/string.js | 193 +- deps/v8/src/strings-storage.cc | 4 +- deps/v8/src/symbol.js | 65 +- deps/v8/src/templates.js | 9 +- deps/v8/src/token.h | 1 + deps/v8/src/transitions.cc | 4 +- deps/v8/src/type-feedback-vector-inl.h | 133 + deps/v8/src/type-feedback-vector.cc | 284 +- deps/v8/src/type-feedback-vector.h | 280 +- deps/v8/src/type-info.cc | 104 +- deps/v8/src/type-info.h | 18 +- deps/v8/src/typedarray.js | 36 +- deps/v8/src/types-inl.h | 14 +- deps/v8/src/types.cc | 182 +- deps/v8/src/types.h | 103 +- deps/v8/src/typing-asm.cc | 1076 +++++++ deps/v8/src/typing-asm.h | 95 + deps/v8/src/typing-reset.cc | 26 + deps/v8/src/typing-reset.h | 26 + deps/v8/src/typing.cc | 118 +- deps/v8/src/typing.h | 15 +- deps/v8/src/unbound-queue-inl.h | 82 - deps/v8/src/unbound-queue.h | 47 - deps/v8/src/unicode-cache-inl.h | 49 + deps/v8/src/unicode-cache.h | 47 + deps/v8/src/unicode.cc | 1 + deps/v8/src/unique.h | 24 +- deps/v8/src/uri.js | 27 +- deps/v8/src/utils.h | 13 +- deps/v8/src/v8.cc | 13 +- deps/v8/src/v8.h | 36 +- deps/v8/src/v8natives.js | 141 +- deps/v8/src/v8threads.cc | 4 +- deps/v8/src/v8threads.h | 2 + deps/v8/src/version.cc | 5 +- deps/v8/src/version.h | 1 + deps/v8/src/weak-collection.js | 13 +- deps/v8/src/x64/assembler-x64-inl.h | 14 +- deps/v8/src/x64/builtins-x64.cc | 885 +++--- deps/v8/src/x64/code-stubs-x64.cc | 1122 ++++--- deps/v8/src/x64/code-stubs-x64.h | 2 +- deps/v8/src/x64/codegen-x64.cc | 8 +- deps/v8/src/x64/frames-x64.cc | 1 + deps/v8/src/x64/interface-descriptors-x64.cc | 49 +- deps/v8/src/x64/lithium-codegen-x64.cc | 299 +- deps/v8/src/x64/lithium-codegen-x64.h | 13 +- deps/v8/src/x64/lithium-x64.cc | 57 +- deps/v8/src/x64/lithium-x64.h | 73 +- deps/v8/src/x64/macro-assembler-x64.cc | 179 +- deps/v8/src/x64/macro-assembler-x64.h | 54 +- deps/v8/src/x64/simulator-x64.cc | 2 + deps/v8/src/x87/assembler-x87-inl.h | 10 +- deps/v8/src/x87/assembler-x87.cc | 6 +- deps/v8/src/x87/assembler-x87.h | 3 +- deps/v8/src/x87/builtins-x87.cc | 892 +++--- deps/v8/src/x87/code-stubs-x87.cc | 1213 ++++---- deps/v8/src/x87/code-stubs-x87.h | 2 +- deps/v8/src/x87/codegen-x87.cc | 6 +- deps/v8/src/x87/frames-x87.cc | 1 + deps/v8/src/x87/frames-x87.h | 1 + deps/v8/src/x87/interface-descriptors-x87.cc | 67 +- deps/v8/src/x87/lithium-codegen-x87.cc | 302 +- deps/v8/src/x87/lithium-codegen-x87.h | 14 +- deps/v8/src/x87/lithium-x87.cc | 60 +- deps/v8/src/x87/lithium-x87.h | 83 +- deps/v8/src/x87/macro-assembler-x87.cc | 207 +- deps/v8/src/x87/macro-assembler-x87.h | 84 +- deps/v8/src/x87/simulator-x87.cc | 1 + deps/v8/src/zone-type-cache.h | 98 + deps/v8/test/cctest/cctest.cc | 14 + deps/v8/test/cctest/cctest.gyp | 11 + deps/v8/test/cctest/cctest.h | 143 +- deps/v8/test/cctest/cctest.status | 10 +- deps/v8/test/cctest/compiler/codegen-tester.h | 7 +- deps/v8/test/cctest/compiler/function-tester.h | 22 +- .../v8/test/cctest/compiler/graph-builder-tester.h | 6 +- .../test/cctest/compiler/test-graph-visualizer.cc | 28 +- .../test/cctest/compiler/test-js-constant-cache.cc | 37 +- .../compiler/test-js-context-specialization.cc | 32 +- .../test/cctest/compiler/test-js-typed-lowering.cc | 107 +- deps/v8/test/cctest/compiler/test-loop-analysis.cc | 9 +- .../compiler/test-machine-operator-reducer.cc | 5 +- deps/v8/test/cctest/compiler/test-node.cc | 255 +- deps/v8/test/cctest/compiler/test-osr.cc | 26 +- deps/v8/test/cctest/compiler/test-pipeline.cc | 1 + .../cctest/compiler/test-representation-change.cc | 2 +- .../compiler/test-run-bytecode-graph-builder.cc | 258 ++ deps/v8/test/cctest/compiler/test-run-deopt.cc | 1 - deps/v8/test/cctest/compiler/test-run-inlining.cc | 58 +- .../v8/test/cctest/compiler/test-run-intrinsics.cc | 37 - deps/v8/test/cctest/compiler/test-run-jscalls.cc | 22 +- .../test/cctest/compiler/test-run-jsexceptions.cc | 7 - deps/v8/test/cctest/compiler/test-run-jsobjects.cc | 47 + deps/v8/test/cctest/compiler/test-run-machops.cc | 150 +- .../test/cctest/compiler/test-run-native-calls.cc | 142 +- .../v8/test/cctest/compiler/test-run-properties.cc | 12 +- deps/v8/test/cctest/compiler/test-run-stubs.cc | 12 +- .../cctest/compiler/test-simplified-lowering.cc | 123 +- deps/v8/test/cctest/compiler/value-helper.h | 40 +- .../test/cctest/expression-type-collector-macros.h | 38 + deps/v8/test/cctest/expression-type-collector.cc | 61 + deps/v8/test/cctest/expression-type-collector.h | 39 + deps/v8/test/cctest/gay-fixed.h | 2 + deps/v8/test/cctest/gay-precision.h | 2 + deps/v8/test/cctest/gay-shortest.h | 2 + deps/v8/test/cctest/heap-tester.h | 59 + .../cctest/interpreter/test-bytecode-generator.cc | 853 +++++- .../v8/test/cctest/interpreter/test-interpreter.cc | 1172 ++++++- deps/v8/test/cctest/test-alloc.cc | 43 +- deps/v8/test/cctest/test-api-accessors.cc | 93 + deps/v8/test/cctest/test-api.cc | 226 +- deps/v8/test/cctest/test-api.h | 4 +- deps/v8/test/cctest/test-asm-validator.cc | 915 ++++++ deps/v8/test/cctest/test-assembler-arm64.cc | 12 +- deps/v8/test/cctest/test-assembler-mips.cc | 25 +- deps/v8/test/cctest/test-assembler-mips64.cc | 100 +- deps/v8/test/cctest/test-ast-expression-visitor.cc | 392 +++ deps/v8/test/cctest/test-circular-queue.cc | 2 +- deps/v8/test/cctest/test-code-stubs-arm.cc | 4 +- deps/v8/test/cctest/test-code-stubs-arm64.cc | 4 +- deps/v8/test/cctest/test-code-stubs-ia32.cc | 2 +- deps/v8/test/cctest/test-code-stubs-mips.cc | 10 +- deps/v8/test/cctest/test-code-stubs-mips64.cc | 10 +- deps/v8/test/cctest/test-code-stubs-x64.cc | 2 +- deps/v8/test/cctest/test-code-stubs-x87.cc | 2 +- deps/v8/test/cctest/test-cpu-profiler.cc | 2 +- deps/v8/test/cctest/test-date.cc | 23 +- deps/v8/test/cctest/test-debug.cc | 10 +- deps/v8/test/cctest/test-experimental-extra.js | 14 + deps/v8/test/cctest/test-extra.js | 44 +- deps/v8/test/cctest/test-feedback-vector.cc | 150 +- deps/v8/test/cctest/test-gc-tracer.cc | 3 +- deps/v8/test/cctest/test-heap-profiler.cc | 9 +- deps/v8/test/cctest/test-heap.cc | 627 ++-- deps/v8/test/cctest/test-identity-map.cc | 2 +- deps/v8/test/cctest/test-incremental-marking.cc | 168 ++ deps/v8/test/cctest/test-log-stack-tracer.cc | 2 +- deps/v8/test/cctest/test-log.cc | 2 +- deps/v8/test/cctest/test-mark-compact.cc | 17 +- deps/v8/test/cctest/test-mementos.cc | 42 - deps/v8/test/cctest/test-migrations.cc | 10 +- deps/v8/test/cctest/test-parsing.cc | 349 ++- deps/v8/test/cctest/test-profile-generator.cc | 4 +- deps/v8/test/cctest/test-serialize.cc | 2 +- deps/v8/test/cctest/test-simd.cc | 3 + deps/v8/test/cctest/test-slots-buffer.cc | 132 + deps/v8/test/cctest/test-spaces.cc | 198 +- deps/v8/test/cctest/test-strings.cc | 1 + deps/v8/test/cctest/test-thread-termination.cc | 348 ++- deps/v8/test/cctest/test-threads.cc | 3 + deps/v8/test/cctest/test-transitions.cc | 3 + deps/v8/test/cctest/test-typedarrays.cc | 10 +- deps/v8/test/cctest/test-types.cc | 3 + deps/v8/test/cctest/test-typing-reset.cc | 301 ++ deps/v8/test/cctest/test-unbound-queue.cc | 5 +- deps/v8/test/cctest/test-unboxed-doubles.cc | 94 +- deps/v8/test/cctest/test-unique.cc | 3 + .../cctest/test-unscopables-hidden-prototype.cc | 140 +- deps/v8/test/cctest/test-utils-arm64.cc | 3 + deps/v8/test/cctest/test-utils.cc | 3 + deps/v8/test/cctest/test-version.cc | 3 + deps/v8/test/cctest/test-weakmaps.cc | 13 +- deps/v8/test/cctest/test-weaksets.cc | 11 +- deps/v8/test/cctest/trace-extension.cc | 36 +- deps/v8/test/cctest/trace-extension.h | 7 +- deps/v8/test/cctest/types-fuzz.h | 17 +- deps/v8/test/intl/intl.status | 3 - deps/v8/test/intl/testcfg.py | 4 +- deps/v8/test/js-perf-test/JSTests.json | 16 +- deps/v8/test/js-perf-test/RestParameters/rest.js | 30 + deps/v8/test/js-perf-test/RestParameters/run.js | 26 + deps/v8/test/message/arrow-missing.out | 6 +- deps/v8/test/message/testcfg.py | 4 +- deps/v8/test/mjsunit/array-natives-elements.js | 77 +- deps/v8/test/mjsunit/array-splice.js | 60 + deps/v8/test/mjsunit/asm/atomics-add.js | 2 +- deps/v8/test/mjsunit/asm/atomics-and.js | 2 +- .../v8/test/mjsunit/asm/atomics-compareexchange.js | 22 +- deps/v8/test/mjsunit/asm/atomics-exchange.js | 2 +- deps/v8/test/mjsunit/asm/atomics-load.js | 18 +- deps/v8/test/mjsunit/asm/atomics-or.js | 2 +- deps/v8/test/mjsunit/asm/atomics-store.js | 20 +- deps/v8/test/mjsunit/asm/atomics-sub.js | 2 +- deps/v8/test/mjsunit/asm/atomics-xor.js | 2 +- deps/v8/test/mjsunit/builtins.js | 7 +- deps/v8/test/mjsunit/compare-known-objects-slow.js | 32 + .../mjsunit/compare-known-objects-tostringtag.js | 57 + deps/v8/test/mjsunit/compare-known-objects.js | 32 + deps/v8/test/mjsunit/compiler/jsnatives.js | 3 +- deps/v8/test/mjsunit/compiler/regress-4389-1.js | 11 + deps/v8/test/mjsunit/compiler/regress-4389-2.js | 11 + deps/v8/test/mjsunit/compiler/regress-4389-3.js | 11 + deps/v8/test/mjsunit/compiler/regress-4389-4.js | 11 + deps/v8/test/mjsunit/compiler/regress-4389-5.js | 11 + deps/v8/test/mjsunit/compiler/regress-4389-6.js | 11 + .../mjsunit/constant-fold-control-instructions.js | 7 +- .../v8/test/mjsunit/d8-worker-sharedarraybuffer.js | 2 +- deps/v8/test/mjsunit/date.js | 5 + deps/v8/test/mjsunit/debug-liveedit-check-stack.js | 2 +- deps/v8/test/mjsunit/es6/arguments-iterator.js | 15 + deps/v8/test/mjsunit/es6/debug-stepnext-for.js | 6 +- deps/v8/test/mjsunit/es6/object-assign.js | 140 + .../es6/object-literals-property-shorthand.js | 8 + deps/v8/test/mjsunit/es6/promises.js | 11 +- deps/v8/test/mjsunit/es6/regress/regress-468661.js | 4 +- deps/v8/test/mjsunit/es6/toMethod.js | 106 - deps/v8/test/mjsunit/harmony/array-length.js | 208 ++ .../harmony/arrow-rest-params-lazy-parsing.js | 145 + deps/v8/test/mjsunit/harmony/arrow-rest-params.js | 20 +- deps/v8/test/mjsunit/harmony/atomics.js | 65 +- .../mjsunit/harmony/block-let-contextual-sloppy.js | 64 + .../mjsunit/harmony/block-let-semantics-sloppy.js | 5 +- .../test/mjsunit/harmony/block-sloppy-function.js | 203 ++ deps/v8/test/mjsunit/harmony/default-parameters.js | 396 ++- deps/v8/test/mjsunit/harmony/destructuring.js | 152 +- deps/v8/test/mjsunit/harmony/futex.js | 2 +- deps/v8/test/mjsunit/harmony/object-assign.js | 142 - deps/v8/test/mjsunit/harmony/proxies-function.js | 24 +- .../test/mjsunit/harmony/regress/regress-4211.js | 12 + .../test/mjsunit/harmony/regress/regress-4400.js | 8 + .../test/mjsunit/harmony/regress/regress-508074.js | 26 + deps/v8/test/mjsunit/harmony/rest-params.js | 71 +- deps/v8/test/mjsunit/harmony/simd.js | 66 +- .../test/mjsunit/harmony/spread-call-new-class.js | 2 +- deps/v8/test/mjsunit/harmony/spread-call-new.js | 2 +- .../mjsunit/harmony/spread-call-super-property.js | 27 +- deps/v8/test/mjsunit/harmony/spread-call.js | 2 +- deps/v8/test/mjsunit/harmony/super.js | 35 +- deps/v8/test/mjsunit/harmony/to-name.js | 54 + deps/v8/test/mjsunit/harmony/to-number.js | 61 + deps/v8/test/mjsunit/harmony/to-primitive.js | 106 + deps/v8/test/mjsunit/harmony/to-string.js | 54 + deps/v8/test/mjsunit/messages.js | 3 +- deps/v8/test/mjsunit/mjsunit.status | 34 +- deps/v8/test/mjsunit/regress/regress-105.js | 4 +- deps/v8/test/mjsunit/regress/regress-165637.js | 8 +- deps/v8/test/mjsunit/regress/regress-3926.js | 87 + deps/v8/test/mjsunit/regress/regress-4121.js | 84 +- deps/v8/test/mjsunit/regress/regress-4173.js | 58 + deps/v8/test/mjsunit/regress/regress-4374.js | 15 + deps/v8/test/mjsunit/regress/regress-4376-1.js | 12 + deps/v8/test/mjsunit/regress/regress-4376-2.js | 9 + deps/v8/test/mjsunit/regress/regress-4376-3.js | 10 + deps/v8/test/mjsunit/regress/regress-4377.js | 45 + deps/v8/test/mjsunit/regress/regress-4380.js | 20 + deps/v8/test/mjsunit/regress/regress-4388.js | 35 + deps/v8/test/mjsunit/regress/regress-4399.js | 17 + deps/v8/test/mjsunit/regress/regress-520029.js | 29 + deps/v8/test/mjsunit/regress/regress-539875.js | 37 + deps/v8/test/mjsunit/regress/regress-544991.js | 15 + .../test/mjsunit/regress/regress-crbug-500497.js | 3 - .../test/mjsunit/regress/regress-crbug-501809.js | 2 +- .../test/mjsunit/regress/regress-crbug-518748.js | 14 - .../test/mjsunit/regress/regress-crbug-522895.js | 22 + .../test/mjsunit/regress/regress-crbug-523213.js | 21 + .../test/mjsunit/regress/regress-crbug-523307.js | 16 + .../test/mjsunit/regress/regress-crbug-523919.js | 31 + .../test/mjsunit/regress/regress-crbug-527364.js | 26 + .../test/mjsunit/regress/regress-crbug-530598.js | 25 + .../v8/test/mjsunit/regress/regress-osr-context.js | 3 +- deps/v8/test/mjsunit/stack-traces-2.js | 3 - deps/v8/test/mjsunit/string-indexof-1.js | 14 + deps/v8/test/mjsunit/strong/class-literals.js | 159 + deps/v8/test/mjsunit/strong/destructuring.js | 10 +- deps/v8/test/mjsunit/strong/function-arity.js | 43 +- deps/v8/test/mjsunit/strong/literals.js | 64 +- deps/v8/test/mjsunit/switch.js | 55 + deps/v8/test/mjsunit/testcfg.py | 6 +- .../mjsunit/tools/tickprocessor-test.only-summary | 9 + deps/v8/test/mjsunit/tools/tickprocessor.js | 21 +- deps/v8/test/mozilla/mozilla.status | 15 +- deps/v8/test/mozilla/testcfg.py | 20 +- deps/v8/test/simdjs/SimdJs.json | 7 +- deps/v8/test/simdjs/generate.py | 3 +- deps/v8/test/simdjs/harness-adapt.js | 5 +- deps/v8/test/simdjs/testcfg.py | 6 +- deps/v8/test/test262-es6/README | 18 - deps/v8/test/test262-es6/harness-adapt.js | 91 - deps/v8/test/test262-es6/test262-es6.status | 814 ----- deps/v8/test/test262-es6/testcfg.py | 235 -- deps/v8/test/test262/README | 4 +- deps/v8/test/test262/harness-adapt.js | 9 + deps/v8/test/test262/test262.status | 1008 +++++-- deps/v8/test/test262/testcfg.py | 127 +- deps/v8/test/unittests/atomic-utils-unittest.cc | 217 ++ .../arm/instruction-selector-arm-unittest.cc | 75 +- .../arm64/instruction-selector-arm64-unittest.cc | 45 +- .../compiler/bytecode-graph-builder-unittest.cc | 248 ++ .../unittests/compiler/change-lowering-unittest.cc | 7 +- .../compiler/coalesced-live-ranges-unittest.cc | 51 +- .../unittests/compiler/common-operator-unittest.cc | 12 - .../compiler/control-equivalence-unittest.cc | 10 +- .../v8/test/unittests/compiler/diamond-unittest.cc | 16 - .../unittests/compiler/graph-reducer-unittest.cc | 24 +- deps/v8/test/unittests/compiler/graph-unittest.cc | 31 +- deps/v8/test/unittests/compiler/graph-unittest.h | 3 - .../compiler/instruction-selector-unittest.cc | 45 +- .../compiler/interpreter-assembler-unittest.cc | 284 +- .../compiler/interpreter-assembler-unittest.h | 5 + .../compiler/js-builtin-reducer-unittest.cc | 3 +- .../compiler/js-context-relaxation-unittest.cc | 37 +- .../compiler/js-intrinsic-lowering-unittest.cc | 21 +- .../unittests/compiler/js-operator-unittest.cc | 12 +- .../compiler/js-type-feedback-unittest.cc | 29 +- .../compiler/js-typed-lowering-unittest.cc | 152 +- .../test/unittests/compiler/live-range-builder.h | 78 + .../test/unittests/compiler/live-range-unittest.cc | 441 +++ .../compiler/liveness-analyzer-unittest.cc | 7 +- .../unittests/compiler/loop-peeling-unittest.cc | 4 +- .../compiler/machine-operator-reducer-unittest.cc | 72 +- .../compiler/machine-operator-unittest.cc | 18 +- .../mips/instruction-selector-mips-unittest.cc | 4 +- .../mips64/instruction-selector-mips64-unittest.cc | 28 +- deps/v8/test/unittests/compiler/node-test-utils.cc | 110 +- deps/v8/test/unittests/compiler/node-test-utils.h | 46 +- .../test/unittests/compiler/scheduler-unittest.cc | 29 +- .../simplified-operator-reducer-unittest.cc | 2 +- .../compiler/simplified-operator-unittest.cc | 6 +- deps/v8/test/unittests/compiler/typer-unittest.cc | 30 +- .../compiler/value-numbering-reducer-unittest.cc | 10 +- deps/v8/test/unittests/heap/bitmap-unittest.cc | 107 + .../heap/gc-idle-time-handler-unittest.cc | 232 +- .../test/unittests/heap/scavenge-job-unittest.cc | 111 + .../interpreter/bytecode-array-builder-unittest.cc | 272 +- .../bytecode-array-iterator-unittest.cc | 100 + .../unittests/interpreter/bytecodes-unittest.cc | 63 + .../runtime/runtime-interpreter-unittest.cc | 172 ++ deps/v8/test/unittests/unittests.gyp | 8 + .../js/object-prototype-properties-expected.txt | 2 +- .../webkit/function-apply-aliased-expected.txt | 2 - deps/v8/test/webkit/function-apply-aliased.js | 13 - deps/v8/test/webkit/testcfg.py | 4 +- deps/v8/tools/cfi/blacklist.txt | 4 + deps/v8/tools/check-name-clashes.py | 118 - deps/v8/tools/eval_gc_nvp.py | 151 + deps/v8/tools/fuzz-harness.sh | 4 +- deps/v8/tools/gen-postmortem-metadata.py | 72 +- deps/v8/tools/gyp/v8.gyp | 245 +- deps/v8/tools/js2c.py | 9 +- deps/v8/tools/presubmit.py | 84 +- deps/v8/tools/release/merge_to_branch.py | 5 +- deps/v8/tools/run-deopt-fuzzer.py | 1 + deps/v8/tools/run_perf.py | 12 + deps/v8/tools/testrunner/local/commands.py | 18 +- deps/v8/tools/testrunner/local/progress.py | 1 + deps/v8/tools/testrunner/local/statusfile.py | 2 +- deps/v8/tools/testrunner/local/testsuite.py | 2 +- deps/v8/tools/tickprocessor-driver.js | 3 +- deps/v8/tools/tickprocessor.js | 68 +- deps/v8/tools/try_perf.py | 51 +- deps/v8/tools/unittests/run_perf_test.py | 18 + deps/v8/tools/whitespace.txt | 2 +- 1000 files changed, 68914 insertions(+), 51657 deletions(-) create mode 100644 deps/v8/build/isolate.gypi create mode 100644 deps/v8/docs/arm_debugging_with_the_simulator.md create mode 100644 deps/v8/docs/becoming_v8_committer.md create mode 100644 deps/v8/docs/building_with_gyp.md create mode 100644 deps/v8/docs/contributing.md create mode 100644 deps/v8/docs/cross_compiling_for_arm.md create mode 100644 deps/v8/docs/d8_on_android.md create mode 100644 deps/v8/docs/debugger_protocol.md create mode 100644 deps/v8/docs/gdb_jit_interface.md create mode 100644 deps/v8/docs/handling_of_ports.md create mode 100644 deps/v8/docs/i18n_support.md create mode 100644 deps/v8/docs/javascript.md create mode 100644 deps/v8/docs/javascript_stack_trace_api.md create mode 100644 deps/v8/docs/merging_and_patching.md create mode 100644 deps/v8/docs/profiling_chromium_with_v8.md create mode 100644 deps/v8/docs/release_process.md create mode 100644 deps/v8/docs/runtime_functions.md create mode 100644 deps/v8/docs/source.md create mode 100644 deps/v8/docs/testing.md create mode 100644 deps/v8/docs/triaging_issues.md create mode 100644 deps/v8/docs/using_git.md create mode 100644 deps/v8/docs/v8_c_plus_plus_styleand_sops.md create mode 100644 deps/v8/docs/v8_committers_responsibility.md create mode 100644 deps/v8/docs/v8_profiler.md create mode 100644 deps/v8/snapshot_toolchain.gni delete mode 100644 deps/v8/src/allocation-tracker.cc delete mode 100644 deps/v8/src/allocation-tracker.h create mode 100644 deps/v8/src/ast-expression-visitor.cc create mode 100644 deps/v8/src/ast-expression-visitor.h create mode 100644 deps/v8/src/atomic-utils.h create mode 100644 deps/v8/src/base.isolate delete mode 100644 deps/v8/src/circular-queue-inl.h delete mode 100644 deps/v8/src/circular-queue.h delete mode 100644 deps/v8/src/code.h delete mode 100644 deps/v8/src/compiler/DEPS create mode 100644 deps/v8/src/compiler/bytecode-graph-builder.cc create mode 100644 deps/v8/src/compiler/bytecode-graph-builder.h create mode 100644 deps/v8/src/compiler/live-range-separator.cc create mode 100644 deps/v8/src/compiler/live-range-separator.h delete mode 100644 deps/v8/src/compiler/preprocess-live-ranges.cc delete mode 100644 deps/v8/src/compiler/preprocess-live-ranges.h create mode 100644 deps/v8/src/contexts-inl.h delete mode 100644 deps/v8/src/cpu-profiler-inl.h delete mode 100644 deps/v8/src/cpu-profiler.cc delete mode 100644 deps/v8/src/cpu-profiler.h create mode 100644 deps/v8/src/d8.isolate delete mode 100644 deps/v8/src/harmony-object.js delete mode 100644 deps/v8/src/heap-profiler.cc delete mode 100644 deps/v8/src/heap-profiler.h delete mode 100644 deps/v8/src/heap-snapshot-generator-inl.h delete mode 100644 deps/v8/src/heap-snapshot-generator.cc delete mode 100644 deps/v8/src/heap-snapshot-generator.h create mode 100644 deps/v8/src/heap/array-buffer-tracker.cc create mode 100644 deps/v8/src/heap/array-buffer-tracker.h delete mode 100644 deps/v8/src/heap/identity-map.cc delete mode 100644 deps/v8/src/heap/identity-map.h create mode 100644 deps/v8/src/heap/incremental-marking-job.cc create mode 100644 deps/v8/src/heap/incremental-marking-job.h create mode 100644 deps/v8/src/heap/object-stats.cc create mode 100644 deps/v8/src/heap/object-stats.h create mode 100644 deps/v8/src/heap/scavenge-job.cc create mode 100644 deps/v8/src/heap/scavenge-job.h create mode 100644 deps/v8/src/heap/scavenger-inl.h create mode 100644 deps/v8/src/heap/scavenger.cc create mode 100644 deps/v8/src/heap/scavenger.h create mode 100644 deps/v8/src/heap/slots-buffer.cc create mode 100644 deps/v8/src/heap/slots-buffer.h create mode 100644 deps/v8/src/identity-map.cc create mode 100644 deps/v8/src/identity-map.h create mode 100644 deps/v8/src/interpreter/bytecode-array-iterator.cc create mode 100644 deps/v8/src/interpreter/bytecode-array-iterator.h create mode 100644 deps/v8/src/isolate-inl.h delete mode 100644 deps/v8/src/profile-generator-inl.h delete mode 100644 deps/v8/src/profile-generator.cc delete mode 100644 deps/v8/src/profile-generator.h create mode 100644 deps/v8/src/profiler/allocation-tracker.cc create mode 100644 deps/v8/src/profiler/allocation-tracker.h create mode 100644 deps/v8/src/profiler/circular-queue-inl.h create mode 100644 deps/v8/src/profiler/circular-queue.h create mode 100644 deps/v8/src/profiler/cpu-profiler-inl.h create mode 100644 deps/v8/src/profiler/cpu-profiler.cc create mode 100644 deps/v8/src/profiler/cpu-profiler.h create mode 100644 deps/v8/src/profiler/heap-profiler.cc create mode 100644 deps/v8/src/profiler/heap-profiler.h create mode 100644 deps/v8/src/profiler/heap-snapshot-generator-inl.h create mode 100644 deps/v8/src/profiler/heap-snapshot-generator.cc create mode 100644 deps/v8/src/profiler/heap-snapshot-generator.h create mode 100644 deps/v8/src/profiler/profile-generator-inl.h create mode 100644 deps/v8/src/profiler/profile-generator.cc create mode 100644 deps/v8/src/profiler/profile-generator.h create mode 100644 deps/v8/src/profiler/sampler.cc create mode 100644 deps/v8/src/profiler/sampler.h create mode 100644 deps/v8/src/profiler/unbound-queue-inl.h create mode 100644 deps/v8/src/profiler/unbound-queue.h create mode 100644 deps/v8/src/runtime/runtime-interpreter.cc create mode 100644 deps/v8/src/runtime/runtime-operators.cc delete mode 100644 deps/v8/src/sampler.cc delete mode 100644 deps/v8/src/sampler.h create mode 100644 deps/v8/src/typing-asm.cc create mode 100644 deps/v8/src/typing-asm.h create mode 100644 deps/v8/src/typing-reset.cc create mode 100644 deps/v8/src/typing-reset.h delete mode 100644 deps/v8/src/unbound-queue-inl.h delete mode 100644 deps/v8/src/unbound-queue.h create mode 100644 deps/v8/src/unicode-cache-inl.h create mode 100644 deps/v8/src/unicode-cache.h create mode 100644 deps/v8/src/zone-type-cache.h create mode 100644 deps/v8/test/cctest/compiler/test-run-bytecode-graph-builder.cc create mode 100644 deps/v8/test/cctest/compiler/test-run-jsobjects.cc create mode 100644 deps/v8/test/cctest/expression-type-collector-macros.h create mode 100644 deps/v8/test/cctest/expression-type-collector.cc create mode 100644 deps/v8/test/cctest/expression-type-collector.h create mode 100644 deps/v8/test/cctest/heap-tester.h create mode 100644 deps/v8/test/cctest/test-api-accessors.cc create mode 100644 deps/v8/test/cctest/test-asm-validator.cc create mode 100644 deps/v8/test/cctest/test-ast-expression-visitor.cc create mode 100644 deps/v8/test/cctest/test-experimental-extra.js create mode 100644 deps/v8/test/cctest/test-incremental-marking.cc create mode 100644 deps/v8/test/cctest/test-slots-buffer.cc create mode 100644 deps/v8/test/cctest/test-typing-reset.cc create mode 100644 deps/v8/test/js-perf-test/RestParameters/rest.js create mode 100644 deps/v8/test/js-perf-test/RestParameters/run.js create mode 100644 deps/v8/test/mjsunit/compare-known-objects-tostringtag.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-4389-1.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-4389-2.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-4389-3.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-4389-4.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-4389-5.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-4389-6.js create mode 100644 deps/v8/test/mjsunit/es6/object-assign.js delete mode 100644 deps/v8/test/mjsunit/es6/toMethod.js create mode 100644 deps/v8/test/mjsunit/harmony/array-length.js create mode 100644 deps/v8/test/mjsunit/harmony/arrow-rest-params-lazy-parsing.js create mode 100644 deps/v8/test/mjsunit/harmony/block-let-contextual-sloppy.js create mode 100644 deps/v8/test/mjsunit/harmony/block-sloppy-function.js delete mode 100644 deps/v8/test/mjsunit/harmony/object-assign.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-4211.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-4400.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-508074.js create mode 100644 deps/v8/test/mjsunit/harmony/to-name.js create mode 100644 deps/v8/test/mjsunit/harmony/to-number.js create mode 100644 deps/v8/test/mjsunit/harmony/to-primitive.js create mode 100644 deps/v8/test/mjsunit/harmony/to-string.js create mode 100644 deps/v8/test/mjsunit/regress/regress-3926.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4173.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4374.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4376-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4376-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4376-3.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4377.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4380.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4388.js create mode 100644 deps/v8/test/mjsunit/regress/regress-4399.js create mode 100644 deps/v8/test/mjsunit/regress/regress-520029.js create mode 100644 deps/v8/test/mjsunit/regress/regress-539875.js create mode 100644 deps/v8/test/mjsunit/regress/regress-544991.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-518748.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-522895.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-523213.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-523307.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-523919.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-527364.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-530598.js create mode 100644 deps/v8/test/mjsunit/strong/class-literals.js create mode 100644 deps/v8/test/mjsunit/tools/tickprocessor-test.only-summary delete mode 100644 deps/v8/test/test262-es6/README delete mode 100644 deps/v8/test/test262-es6/harness-adapt.js delete mode 100644 deps/v8/test/test262-es6/test262-es6.status delete mode 100644 deps/v8/test/test262-es6/testcfg.py create mode 100644 deps/v8/test/unittests/atomic-utils-unittest.cc create mode 100644 deps/v8/test/unittests/compiler/bytecode-graph-builder-unittest.cc create mode 100644 deps/v8/test/unittests/compiler/live-range-builder.h create mode 100644 deps/v8/test/unittests/compiler/live-range-unittest.cc create mode 100644 deps/v8/test/unittests/heap/bitmap-unittest.cc create mode 100644 deps/v8/test/unittests/heap/scavenge-job-unittest.cc create mode 100644 deps/v8/test/unittests/interpreter/bytecode-array-iterator-unittest.cc create mode 100644 deps/v8/test/unittests/interpreter/bytecodes-unittest.cc create mode 100644 deps/v8/test/unittests/runtime/runtime-interpreter-unittest.cc create mode 100644 deps/v8/tools/cfi/blacklist.txt delete mode 100755 deps/v8/tools/check-name-clashes.py create mode 100755 deps/v8/tools/eval_gc_nvp.py diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index cc5606e854..337a5531e8 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -80,6 +80,7 @@ shell_g /tools/jsfunfuzz.zip /tools/oom_dump/oom_dump /tools/oom_dump/oom_dump.o +/tools/swarming_client /tools/visual_studio/Debug /tools/visual_studio/Release /v8.log.ll diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index 72c23bcc83..9dfb07328e 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -49,6 +49,7 @@ Christopher A. Taylor Daniel Andersson Daniel James Douglas Crosher +Dusan Milosavljevic Erich Ocean Fedor Indutny Felix Geisendƶrfer @@ -67,6 +68,7 @@ Johan Bergstrƶm Jonathan Liu JunHo Seo Kang-Hao (Kenny) Lu +Karl Skomski Luis Reis Luke Zarko Maciej Małecki @@ -90,9 +92,11 @@ Rene Rebe Robert Mustacchi Robert Nagy Ryan Dahl +Sakthipriyan Vairamani (thefourtheye) Sandro Santilli Sanjoy Das Seo Sanghyeon +Stefan Penner Tobias Burnus Victor Costan Vlad Burlik diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index fae41a7361..9dfdaa3cda 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -5,11 +5,14 @@ import("//build/config/android/config.gni") import("//build/config/arm.gni") import("//build/config/mips.gni") +import("//build/config/sanitizers/sanitizers.gni") # Because standalone V8 builds are not supported, assume this is part of a # Chromium build. import("//build/module_args/v8.gni") +import("snapshot_toolchain.gni") + # TODO(jochen): These will need to be user-settable to support standalone V8 # builds. v8_deprecation_warnings = false @@ -22,26 +25,16 @@ v8_interpreted_regexp = false v8_object_print = false v8_postmortem_support = false v8_use_snapshot = true -v8_target_arch = target_cpu v8_random_seed = "314159265" v8_toolset_for_d8 = "host" -# The snapshot needs to be compiled for the host, but compiled with -# a toolchain that matches the bit-width of the target. -# -# TODO(GYP): For now we only support 32-bit little-endian target builds from an -# x64 Linux host. Eventually we need to support all of the host/target -# configurations v8 runs on. -if (host_cpu == "x64" && host_os == "linux") { - if (target_cpu == "arm" || target_cpu == "mipsel" || target_cpu == "x86") { - snapshot_toolchain = "//build/toolchain/linux:clang_x86" - } else if (target_cpu == "x64") { - snapshot_toolchain = "//build/toolchain/linux:clang_x64" - } else { - assert(false, "Need environment for this arch") - } +if (is_msan) { + # Running the V8-generated code on an ARM simulator is a powerful hack that + # allows the tool to see the memory accesses from JITted code. Without this + # flag, JS code causes false positive reports from MSan. + v8_target_arch = "arm64" } else { - snapshot_toolchain = default_toolchain + v8_target_arch = target_cpu } ############################################################################### @@ -312,7 +305,6 @@ action("js2c_experimental") { "src/harmony-regexp.js", "src/harmony-reflect.js", "src/harmony-spread.js", - "src/harmony-object.js", "src/harmony-object-observe.js", "src/harmony-sharedarraybuffer.js", "src/harmony-simd.js" @@ -367,6 +359,36 @@ action("js2c_extras") { } } +action("js2c_experimental_extras") { + visibility = [ ":*" ] # Only targets in this file can depend on this. + + script = "tools/js2c.py" + + # The script depends on this other script, this rule causes a rebuild if it + # changes. + inputs = [ "tools/jsmin.py" ] + + sources = v8_experimental_extra_library_files + + outputs = [ + "$target_gen_dir/experimental-extras-libraries.cc", + ] + + args = [ + rebase_path("$target_gen_dir/experimental-extras-libraries.cc", + root_build_dir), + "EXPERIMENTAL_EXTRAS", + ] + rebase_path(sources, root_build_dir) + + if (v8_use_external_startup_data) { + outputs += [ "$target_gen_dir/libraries_experimental_extras.bin" ] + args += [ + "--startup_blob", + rebase_path("$target_gen_dir/libraries_experimental_extras.bin", root_build_dir), + ] + } +} + action("d8_js2c") { visibility = [ ":*" ] # Only targets in this file can depend on this. @@ -394,6 +416,7 @@ if (v8_use_external_startup_data) { ":js2c_code_stubs", ":js2c_experimental", ":js2c_extras", + ":js2c_experimental_extras", ] sources = [ @@ -401,6 +424,7 @@ if (v8_use_external_startup_data) { "$target_gen_dir/libraries_code_stub.bin", "$target_gen_dir/libraries_experimental.bin", "$target_gen_dir/libraries_extras.bin", + "$target_gen_dir/libraries_experimental_extras.bin", ] outputs = [ @@ -456,6 +480,7 @@ action("run_mksnapshot") { "--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), ] @@ -487,6 +512,7 @@ source_set("v8_nosnapshot") { ":js2c_code_stubs", ":js2c_experimental", ":js2c_extras", + ":js2c_experimental_extras", ":v8_base", ] @@ -495,6 +521,7 @@ source_set("v8_nosnapshot") { "$target_gen_dir/code-stub-libraries.cc", "$target_gen_dir/experimental-libraries.cc", "$target_gen_dir/extras-libraries.cc", + "$target_gen_dir/experimental-extras-libraries.cc", "src/snapshot/snapshot-empty.cc", ] @@ -520,6 +547,7 @@ source_set("v8_snapshot") { ":js2c_code_stubs", ":js2c_experimental", ":js2c_extras", + ":js2c_experimental_extras", ":v8_base", ] public_deps = [ @@ -533,6 +561,7 @@ source_set("v8_snapshot") { "$target_gen_dir/code-stub-libraries.cc", "$target_gen_dir/experimental-libraries.cc", "$target_gen_dir/extras-libraries.cc", + "$target_gen_dir/experimental-extras-libraries.cc", "$target_gen_dir/snapshot.cc", ] @@ -554,6 +583,7 @@ if (v8_use_external_startup_data) { ":js2c_code_stubs", ":js2c_experimental", ":js2c_extras", + ":js2c_experimental_extras", ":v8_base", ] public_deps = [ @@ -594,8 +624,6 @@ source_set("v8_base") { "src/allocation.h", "src/allocation-site-scopes.cc", "src/allocation-site-scopes.h", - "src/allocation-tracker.cc", - "src/allocation-tracker.h", "src/api.cc", "src/api.h", "src/api-natives.cc", @@ -606,6 +634,8 @@ source_set("v8_base") { "src/assembler.h", "src/assert-scope.h", "src/assert-scope.cc", + "src/ast-expression-visitor.cc", + "src/ast-expression-visitor.h", "src/ast-literal-reindexer.cc", "src/ast-literal-reindexer.h", "src/ast-numbering.cc", @@ -614,6 +644,7 @@ source_set("v8_base") { "src/ast-value-factory.h", "src/ast.cc", "src/ast.h", + "src/atomic-utils.h", "src/background-parsing-task.cc", "src/background-parsing-task.h", "src/bailout-reason.cc", @@ -638,14 +669,11 @@ source_set("v8_base") { "src/char-predicates-inl.h", "src/char-predicates.h", "src/checks.h", - "src/circular-queue-inl.h", - "src/circular-queue.h", "src/code-factory.cc", "src/code-factory.h", "src/code-stubs.cc", "src/code-stubs.h", "src/code-stubs-hydrogen.cc", - "src/code.h", "src/codegen.cc", "src/codegen.h", "src/compilation-cache.cc", @@ -664,6 +692,8 @@ source_set("v8_base") { "src/compiler/ast-loop-assignment-analyzer.h", "src/compiler/basic-block-instrumentor.cc", "src/compiler/basic-block-instrumentor.h", + "src/compiler/bytecode-graph-builder.cc", + "src/compiler/bytecode-graph-builder.h", "src/compiler/change-lowering.cc", "src/compiler/change-lowering.h", "src/compiler/c-linkage.cc", @@ -743,6 +773,8 @@ source_set("v8_base") { "src/compiler/jump-threading.h", "src/compiler/linkage.cc", "src/compiler/linkage.h", + "src/compiler/live-range-separator.cc", + "src/compiler/live-range-separator.h", "src/compiler/liveness-analyzer.cc", "src/compiler/liveness-analyzer.h", "src/compiler/load-elimination.cc", @@ -781,8 +813,6 @@ source_set("v8_base") { "src/compiler/pipeline.h", "src/compiler/pipeline-statistics.cc", "src/compiler/pipeline-statistics.h", - "src/compiler/preprocess-live-ranges.cc", - "src/compiler/preprocess-live-ranges.h", "src/compiler/raw-machine-assembler.cc", "src/compiler/raw-machine-assembler.h", "src/compiler/register-allocator.cc", @@ -822,6 +852,7 @@ source_set("v8_base") { "src/compiler.h", "src/context-measure.cc", "src/context-measure.h", + "src/contexts-inl.h", "src/contexts.cc", "src/contexts.h", "src/conversions-inl.h", @@ -829,9 +860,6 @@ source_set("v8_base") { "src/conversions.h", "src/counters.cc", "src/counters.h", - "src/cpu-profiler-inl.h", - "src/cpu-profiler.cc", - "src/cpu-profiler.h", "src/date.cc", "src/date.h", "src/dateparser-inl.h", @@ -904,11 +932,8 @@ source_set("v8_base") { "src/handles.cc", "src/handles.h", "src/hashmap.h", - "src/heap-profiler.cc", - "src/heap-profiler.h", - "src/heap-snapshot-generator-inl.h", - "src/heap-snapshot-generator.cc", - "src/heap-snapshot-generator.h", + "src/heap/array-buffer-tracker.cc", + "src/heap/array-buffer-tracker.h", "src/heap/gc-idle-time-handler.cc", "src/heap/gc-idle-time-handler.h", "src/heap/gc-tracer.cc", @@ -916,8 +941,8 @@ source_set("v8_base") { "src/heap/heap-inl.h", "src/heap/heap.cc", "src/heap/heap.h", - "src/heap/identity-map.cc", - "src/heap/identity-map.h", + "src/heap/incremental-marking-job.cc", + "src/heap/incremental-marking-job.h", "src/heap/incremental-marking.cc", "src/heap/incremental-marking.h", "src/heap/mark-compact-inl.h", @@ -925,9 +950,18 @@ source_set("v8_base") { "src/heap/mark-compact.h", "src/heap/memory-reducer.cc", "src/heap/memory-reducer.h", + "src/heap/object-stats.cc", + "src/heap/object-stats.h", "src/heap/objects-visiting-inl.h", "src/heap/objects-visiting.cc", "src/heap/objects-visiting.h", + "src/heap/scavenge-job.h", + "src/heap/scavenge-job.cc", + "src/heap/scavenger-inl.h", + "src/heap/scavenger.cc", + "src/heap/scavenger.h", + "src/heap/slots-buffer.cc", + "src/heap/slots-buffer.h", "src/heap/spaces-inl.h", "src/heap/spaces.cc", "src/heap/spaces.h", @@ -1005,16 +1039,21 @@ source_set("v8_base") { "src/ic/ic-compiler.h", "src/ic/stub-cache.cc", "src/ic/stub-cache.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", + "src/interpreter/bytecode-array-iterator.h", "src/interpreter/bytecode-generator.cc", "src/interpreter/bytecode-generator.h", "src/interpreter/interpreter.cc", "src/interpreter/interpreter.h", + "src/isolate-inl.h", "src/isolate.cc", "src/isolate.h", "src/json-parser.h", @@ -1066,9 +1105,25 @@ source_set("v8_base") { "src/preparser.h", "src/prettyprinter.cc", "src/prettyprinter.h", - "src/profile-generator-inl.h", - "src/profile-generator.cc", - "src/profile-generator.h", + "src/profiler/allocation-tracker.cc", + "src/profiler/allocation-tracker.h", + "src/profiler/circular-queue-inl.h", + "src/profiler/circular-queue.h", + "src/profiler/cpu-profiler-inl.h", + "src/profiler/cpu-profiler.cc", + "src/profiler/cpu-profiler.h", + "src/profiler/heap-profiler.cc", + "src/profiler/heap-profiler.h", + "src/profiler/heap-snapshot-generator-inl.h", + "src/profiler/heap-snapshot-generator.cc", + "src/profiler/heap-snapshot-generator.h", + "src/profiler/profile-generator-inl.h", + "src/profiler/profile-generator.cc", + "src/profiler/profile-generator.h", + "src/profiler/sampler.cc", + "src/profiler/sampler.h", + "src/profiler/unbound-queue-inl.h", + "src/profiler/unbound-queue.h", "src/property-details.h", "src/property.cc", "src/property.h", @@ -1105,6 +1160,7 @@ source_set("v8_base") { "src/runtime/runtime-generator.cc", "src/runtime/runtime-i18n.cc", "src/runtime/runtime-internal.cc", + "src/runtime/runtime-interpreter.cc", "src/runtime/runtime-json.cc", "src/runtime/runtime-literals.cc", "src/runtime/runtime-liveedit.cc", @@ -1112,6 +1168,7 @@ source_set("v8_base") { "src/runtime/runtime-numbers.cc", "src/runtime/runtime-object.cc", "src/runtime/runtime-observe.cc", + "src/runtime/runtime-operators.cc", "src/runtime/runtime-proxy.cc", "src/runtime/runtime-regexp.cc", "src/runtime/runtime-scopes.cc", @@ -1126,8 +1183,6 @@ source_set("v8_base") { "src/runtime/runtime.h", "src/safepoint-table.cc", "src/safepoint-table.h", - "src/sampler.cc", - "src/sampler.h", "src/scanner-character-streams.cc", "src/scanner-character-streams.h", "src/scanner.cc", @@ -1173,13 +1228,17 @@ source_set("v8_base") { "src/types-inl.h", "src/types.cc", "src/types.h", + "src/typing-asm.cc", + "src/typing-asm.h", + "src/typing-reset.cc", + "src/typing-reset.h", "src/typing.cc", "src/typing.h", - "src/unbound-queue-inl.h", - "src/unbound-queue.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/unique.h", @@ -1196,6 +1255,7 @@ source_set("v8_base") { "src/version.h", "src/vm-state-inl.h", "src/vm-state.h", + "src/zone-type-cache.h", "src/zone.cc", "src/zone.h", "src/zone-allocator.h", @@ -1335,6 +1395,9 @@ source_set("v8_base") { "src/arm64/decoder-arm64.cc", "src/arm64/decoder-arm64.h", "src/arm64/decoder-arm64-inl.h", + "src/arm64/delayed-masm-arm64.cc", + "src/arm64/delayed-masm-arm64.h", + "src/arm64/delayed-masm-arm64-inl.h", "src/arm64/deoptimizer-arm64.cc", "src/arm64/disasm-arm64.cc", "src/arm64/disasm-arm64.h", @@ -1462,7 +1525,7 @@ source_set("v8_base") { ] if (!is_debug) { - configs -= [ "//build/config/compiler:optimize" ] + configs -= [ "//build/config/compiler:default_optimization" ] configs += [ "//build/config/compiler:optimize_max" ] } @@ -1561,7 +1624,7 @@ source_set("v8_libbase") { ] if (!is_debug) { - configs -= [ "//build/config/compiler:optimize" ] + configs -= [ "//build/config/compiler:default_optimization" ] configs += [ "//build/config/compiler:optimize_max" ] } @@ -1628,7 +1691,7 @@ source_set("v8_libplatform") { ] if (!is_debug) { - configs -= [ "//build/config/compiler:optimize" ] + configs -= [ "//build/config/compiler:default_optimization" ] configs += [ "//build/config/compiler:optimize_max" ] } @@ -1670,35 +1733,25 @@ if (current_toolchain == snapshot_toolchain) { # Public targets # +if (v8_use_snapshot && v8_use_external_startup_data) { + snapshot_target = ":v8_external_snapshot" +} else if (v8_use_snapshot) { + snapshot_target = ":v8_snapshot" +} else { + assert(!v8_use_external_startup_data) + snapshot_target = ":v8_nosnapshot" +} + if (is_component_build) { component("v8") { sources = [ "src/v8dll-main.cc", ] - if (v8_use_snapshot && v8_use_external_startup_data) { - deps = [ - ":v8_base", - ] - public_deps = [ - ":v8_external_snapshot", - ] - } else if (v8_use_snapshot) { - deps = [ - ":v8_base", - ] - # v8_snapshot should be public so downstream targets can declare the - # snapshot file as their input. - public_deps = [ - ":v8_snapshot", - ] - } else { - assert(!v8_use_external_startup_data) - deps = [ - ":v8_base", - ":v8_nosnapshot", - ] - } + public_deps = [ + ":v8_base", + snapshot_target, + ] configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] @@ -1717,31 +1770,16 @@ if (is_component_build) { } } else { group("v8") { - if (v8_use_snapshot && v8_use_external_startup_data) { - deps = [ - ":v8_base", - ":v8_external_snapshot", - ] - } else if (v8_use_snapshot) { - deps = [ - ":v8_base", - ] - public_deps = [ - ":v8_snapshot", - ] - } else { - assert(!v8_use_external_startup_data) - deps = [ - ":v8_base", - ":v8_nosnapshot", - ] - } - + public_deps = [ + ":v8_base", + snapshot_target, + ] public_configs = [ ":external_config" ] } } if ((current_toolchain == host_toolchain && v8_toolset_for_d8 == "host") || + (current_toolchain == snapshot_toolchain && v8_toolset_for_d8 == "host") || (current_toolchain != host_toolchain && v8_toolset_for_d8 == "target")) { executable("d8") { sources = [ diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index 0dff96acc7..3c6e5d8850 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,1210 +1,7 @@ -2015-08-19: Version 4.6.85 +2015-05-17: Sentinel - Performance and stability improvements on all platforms. - - -2015-08-19: Version 4.6.84 - - Performance and stability improvements on all platforms. - - -2015-08-19: Version 4.6.83 - - Performance and stability improvements on all platforms. - - -2015-08-18: Version 4.6.82 - - Performance and stability improvements on all platforms. - - -2015-08-18: Version 4.6.81 - - Performance and stability improvements on all platforms. - - -2015-08-18: Version 4.6.80 - - Filter out slot buffer slots, that point to SMIs in dead objects - (Chromium issues 454297, 519577). - - Performance and stability improvements on all platforms. - - -2015-08-17: Version 4.6.79 - - Performance and stability improvements on all platforms. - - -2015-08-17: Version 4.6.78 - - Put V8 extras into the snapshot. - - Performance and stability improvements on all platforms. - - -2015-08-15: Version 4.6.77 - - Performance and stability improvements on all platforms. - - -2015-08-14: Version 4.6.76 - - Performance and stability improvements on all platforms. - - -2015-08-14: Version 4.6.75 - - Performance and stability improvements on all platforms. - - -2015-08-14: Version 4.6.74 - - Performance and stability improvements on all platforms. - - -2015-08-13: Version 4.6.73 - - Performance and stability improvements on all platforms. - - -2015-08-13: Version 4.6.72 - - Stage sloppy classes (issue 3305). - - Performance and stability improvements on all platforms. - - -2015-08-13: Version 4.6.71 - - Performance and stability improvements on all platforms. - - -2015-08-12: Version 4.6.70 - - Performance and stability improvements on all platforms. - - -2015-08-12: Version 4.6.69 - - Stage --harmony-array-includes (issue 3575). - - Performance and stability improvements on all platforms. - - -2015-08-12: Version 4.6.68 - - Use a new lexical context for sloppy-mode eval (issue 4288). - - Add includes method to typed arrays (issue 3575). - - Performance and stability improvements on all platforms. - - -2015-08-11: Version 4.6.67 - - Performance and stability improvements on all platforms. - - -2015-08-11: Version 4.6.66 - - Performance and stability improvements on all platforms. - - -2015-08-11: Version 4.6.65 - - Performance and stability improvements on all platforms. - - -2015-08-10: Version 4.6.64 - - Disable --global-var-shortcuts (Chromium issue 517778). - - Performance and stability improvements on all platforms. - - -2015-08-10: Version 4.6.63 - - Performance and stability improvements on all platforms. - - -2015-08-09: Version 4.6.62 - - Performance and stability improvements on all platforms. - - -2015-08-08: Version 4.6.61 - - Performance and stability improvements on all platforms. - - -2015-08-08: Version 4.6.60 - - [IC] Make SeededNumberDictionary::UpdateMaxNumberKey prototype aware - (issue 4335). - - Performance and stability improvements on all platforms. - - -2015-08-08: Version 4.6.59 - - Performance and stability improvements on all platforms. - - -2015-08-07: Version 4.6.58 - - Performance and stability improvements on all platforms. - - -2015-08-07: Version 4.6.57 - - Rename "extras exports" to "extras binding" (Chromium issue 507133). - - Performance and stability improvements on all platforms. - - -2015-08-07: Version 4.6.56 - - Performance and stability improvements on all platforms. - - -2015-08-06: Version 4.6.55 - - Fix off-by-one in Array.concat's max index check (Chromium issue - 516592). - - Performance and stability improvements on all platforms. - - -2015-08-06: Version 4.6.54 - - Performance and stability improvements on all platforms. - - -2015-08-06: Version 4.6.53 - - Performance and stability improvements on all platforms. - - -2015-08-05: Version 4.6.52 - - Ship --harmony-new-target (issue 3887). - - Performance and stability improvements on all platforms. - - -2015-08-04: Version 4.6.51 - - Performance and stability improvements on all platforms. - - -2015-08-04: Version 4.6.50 - - Performance and stability improvements on all platforms. - - -2015-08-03: Version 4.6.49 - - SIMD.js Add the other SIMD Phase 1 types (issue 4124). - - Performance and stability improvements on all platforms. - - -2015-08-03: Version 4.6.48 - - Performance and stability improvements on all platforms. - - -2015-08-03: Version 4.6.47 - - Performance and stability improvements on all platforms. - - -2015-08-01: Version 4.6.46 - - Performance and stability improvements on all platforms. - - -2015-08-01: Version 4.6.45 - - Performance and stability improvements on all platforms. - - -2015-08-01: Version 4.6.44 - - Performance and stability improvements on all platforms. - - -2015-07-31: Version 4.6.43 - - Performance and stability improvements on all platforms. - - -2015-07-31: Version 4.6.42 - - Performance and stability improvements on all platforms. - - -2015-07-31: Version 4.6.41 - - Performance and stability improvements on all platforms. - - -2015-07-30: Version 4.6.40 - - Pass the kGCCallbackFlagForced flag when invoking - Heap::CollectAllGarbage from AdjustAmountOfExternalAllocatedMemory - (Chromium issue 511294). - - Performance and stability improvements on all platforms. - - -2015-07-30: Version 4.6.39 - - Performance and stability improvements on all platforms. - - -2015-07-30: Version 4.6.38 - - Performance and stability improvements on all platforms. - - -2015-07-29: Version 4.6.37 - - Performance and stability improvements on all platforms. - - -2015-07-28: Version 4.6.36 - - Fix prototype registration upon SlowToFast migration (Chromium issue - 513602). - - Bugfix: Incorrect type feedback vector structure on recompile (Chromium - issue 514526). - - Reland of "Remove ExternalArray, derived types, and element kinds" - (issue 3996). - - Performance and stability improvements on all platforms. - - -2015-07-28: Version 4.6.35 - - Performance and stability improvements on all platforms. - - -2015-07-28: Version 4.6.34 - - Remove ExternalArray, derived types, and element kinds (issue 3996). - - Make V8 compile with MSVS 2015 (issue 4326). - - Performance and stability improvements on all platforms. - - -2015-07-27: Version 4.6.33 - - Performance and stability improvements on all platforms. - - -2015-07-26: Version 4.6.32 - - Performance and stability improvements on all platforms. - - -2015-07-25: Version 4.6.31 - - Performance and stability improvements on all platforms. - - -2015-07-25: Version 4.6.30 - - Make dates default to the local timezone if none specified (issue 4242, - Chromium issue 391730). - - Performance and stability improvements on all platforms. - - -2015-07-24: Version 4.6.29 - - Performance and stability improvements on all platforms. - - -2015-07-24: Version 4.6.28 - - Performance and stability improvements on all platforms. - - -2015-07-23: Version 4.6.27 - - Fix check for a date with a 24th hour (Chromium issue 174609). - - Performance and stability improvements on all platforms. - - -2015-07-23: Version 4.6.26 - - Performance and stability improvements on all platforms. - - -2015-07-22: Version 4.6.25 - - Performance and stability improvements on all platforms. - - -2015-07-22: Version 4.6.24 - - Performance and stability improvements on all platforms. - - -2015-07-22: Version 4.6.23 - - Performance and stability improvements on all platforms. - - -2015-07-21: Version 4.6.22 - - Performance and stability improvements on all platforms. - - -2015-07-21: Version 4.6.21 - - Performance and stability improvements on all platforms. - - -2015-07-21: Version 4.6.20 - - Don't run the second pass of the pending phantom callbacks if the heap - has been torn down (Chromium issue 511204). - - Debugger: prepare code for debugging on a per-function basis (issue - 4132). - - Performance and stability improvements on all platforms. - - -2015-07-20: Version 4.6.19 - - Performance and stability improvements on all platforms. - - -2015-07-20: Version 4.6.18 - - Performance and stability improvements on all platforms. - - -2015-07-19: Version 4.6.17 - - Performance and stability improvements on all platforms. - - -2015-07-18: Version 4.6.16 - - Performance and stability improvements on all platforms. - - -2015-07-18: Version 4.6.15 - - Make NumberFormat use the ICU currency data, fix bug in NumberFormat - (Chromium issues 304722, 435465, 473104). - - Properly fix enumerate / Object.keys wrt access checked objects - (Chromium issue 509936). - - Fix object enumeration wrt access checked objects (Chromium issue - 509936). - - Fix DefineOwnProperty for data properties wrt failed access checks - (Chromium issue 509936). - - Fix GetOwnPropertyNames on access-checked objects (Chromium issue - 509936). - - Fix getPrototypeOf for access checked objects (Chromium issue 509936). - - Delete APIs deprecated since last release. - - Performance and stability improvements on all platforms. - - -2015-07-17: Version 4.6.14 - - Array.prototype.reverse should call [[HasProperty]] on elements before - [[Get]] (issue 4223). - - In RegExp, lastIndex is read with ToLength, not ToInteger (issue 4244). - - Stage --harmony-new-target (issue 3887). - - Re-ship harmony spread calls and spread arrays (issue 3018). - - Expose SIMD.Float32x4 type to Javascript. This CL exposes the - constructor function, defines type related information, and implements - value type semantics. It also refactors test/mjsunit/samevalue.js to - test SameValue and SameValueZero (issue 4124). - - Performance and stability improvements on all platforms. - - -2015-07-17: Version 4.6.13 - - Performance and stability improvements on all platforms. - - -2015-07-16: Version 4.6.12 - - Performance and stability improvements on all platforms. - - -2015-07-16: Version 4.6.11 - - Performance and stability improvements on all platforms. - - -2015-07-16: Version 4.6.10 - - Expose SIMD.Float32x4 type to Javascript. This CL exposes the - constructor function, defines type related information, and implements - value type semantics. It also refactors test/mjsunit/samevalue.js to - test SameValue and SameValueZero (issue 4124). - - Fix runtime-atomics for Win 10 SDK and remove volatile (Chromium issues - 440500, 491424). - - Performance and stability improvements on all platforms. - - -2015-07-15: Version 4.6.9 - - Let the second pass phantom callbacks run in a separate task on the - foreground thread. - - Performance and stability improvements on all platforms. - - -2015-07-15: Version 4.6.8 - - Optimize String.prototype.includes (issue 3807). - - Unship spread calls and spread arrays (issue 4298). - - Performance and stability improvements on all platforms. - - -2015-07-15: Version 4.6.7 - - Performance and stability improvements on all platforms. - - -2015-07-14: Version 4.6.6 - - Performance and stability improvements on all platforms. - - -2015-07-14: Version 4.6.5 - - Performance and stability improvements on all platforms. - - -2015-07-14: Version 4.6.4 - - MIPS64: Fix BlockTrampolinePoolFor() to emit trampoline before blocking, - if needed (issue 4294). - - Add convenience method for converting v8::PersistentBase to v8::Local. - - Performance and stability improvements on all platforms. - - -2015-07-13: Version 4.6.3 - - MIPS: Fix BlockTrampolinePoolFor() to emit trampoline before blocking, - if needed (issue 4294). - - Performance and stability improvements on all platforms. - - -2015-07-13: Version 4.6.2 - - [arm] CheckConstPool between TurboFan instructions (issue 4292). - - Fix keyed access of primitive objects in the runtime. For now it uses a - pretty slow path for accessing strings by wrapping it into a new - temporary wrapper (issues 3088, 4042). - - Performance and stability improvements on all platforms. - - -2015-07-12: Version 4.6.1 - - Performance and stability improvements on all platforms. - - -2015-07-09: Version 4.5.107 - - [arm] Don't call branch_offset within CheckConstPool (issue 4292). - - [arm] Fix missing CheckBuffer for branches (issue 4292). - - Performance and stability improvements on all platforms. - - -2015-07-09: Version 4.5.106 - - Performance and stability improvements on all platforms. - - -2015-07-09: Version 4.5.105 - - Guard @@isConcatSpreadable behind a flag (Chromium issue 507553). - - Performance and stability improvements on all platforms. - - -2015-07-08: Version 4.5.104 - - [x64] Fix handling of Smi constants in LSubI and LBitI (Chromium issue - 478612). - - Performance and stability improvements on all platforms. - - -2015-07-08: Version 4.5.103 - - Performance and stability improvements on all platforms. - - -2015-07-08: Version 4.5.102 - - Performance and stability improvements on all platforms. - - -2015-07-07: Version 4.5.101 - - Move compatible receiver check from CompileHandler to UpdateCaches - (Chromium issue 505374). - - Performance and stability improvements on all platforms. - - -2015-07-07: Version 4.5.100 - - Performance and stability improvements on all platforms. - - -2015-07-07: Version 4.5.99 - - unicode-decoder: fix out-of-band write in utf16 (issue 4274). - - Performance and stability improvements on all platforms. - - -2015-07-06: Version 4.5.98 - - Performance and stability improvements on all platforms. - - -2015-07-04: Version 4.5.97 - - Performance and stability improvements on all platforms. - - -2015-07-03: Version 4.5.96 - - Performance and stability improvements on all platforms. - - -2015-07-03: Version 4.5.95 - - Performance and stability improvements on all platforms. - - -2015-07-02: Version 4.5.94 - - Performance and stability improvements on all platforms. - - -2015-07-02: Version 4.5.93 - - Include Harmony Array/TypedArray methods unconditionally (Chromium issue - 504629). - - Performance and stability improvements on all platforms. - - -2015-07-02: Version 4.5.92 - - Performance and stability improvements on all platforms. - - -2015-07-01: Version 4.5.91 - - Performance and stability improvements on all platforms. - - -2015-07-01: Version 4.5.90 - - Performance and stability improvements on all platforms. - - -2015-07-01: Version 4.5.89 - - Performance and stability improvements on all platforms. - - -2015-06-30: Version 4.5.88 - - Performance and stability improvements on all platforms. - - -2015-06-30: Version 4.5.87 - - Performance and stability improvements on all platforms. - - -2015-06-30: Version 4.5.86 - - Ensure mjsunit tests use dashes not underscores in flags directives - (Chromium issue 505228). - - Performance and stability improvements on all platforms. - - -2015-06-29: Version 4.5.85 - - Fix flag convention in handle count tests and comment (Chromium issue - 505228). - - Performance and stability improvements on all platforms. - - -2015-06-29: Version 4.5.84 - - Performance and stability improvements on all platforms. - - -2015-06-27: Version 4.5.83 - - Performance and stability improvements on all platforms. - - -2015-06-26: Version 4.5.82 - - Performance and stability improvements on all platforms. - - -2015-06-26: Version 4.5.81 - - Remove obsolete options in ScriptCompiler::CompileOptions (Chromium - issue 399580). - - Performance and stability improvements on all platforms. - - -2015-06-25: Version 4.5.80 - - Performance and stability improvements on all platforms. - - -2015-06-25: Version 4.5.79 - - Performance and stability improvements on all platforms. - - -2015-06-25: Version 4.5.78 - - Serializer: clear next link in weak cells (Chromium issue 503552). - - Performance and stability improvements on all platforms. - - -2015-06-24: Version 4.5.77 - - Performance and stability improvements on all platforms. - - -2015-06-24: Version 4.5.76 - - Performance and stability improvements on all platforms. - - -2015-06-24: Version 4.5.75 - - Date() should not depend on Date.prototype.toString (issue 4225). - - Performance and stability improvements on all platforms. - - -2015-06-23: Version 4.5.74 - - Expose Map/Set methods through the API (issue 3340). - - [turbofan] NaN is never truish (issue 4207). - - Performance and stability improvements on all platforms. - - -2015-06-23: Version 4.5.73 - - Re-ship Harmony Array/TypedArray methods (issue 3578). - - Performance and stability improvements on all platforms. - - -2015-06-23: Version 4.5.72 - - Performance and stability improvements on all platforms. - - -2015-06-23: Version 4.5.71 - - Performance and stability improvements on all platforms. - - -2015-06-20: Version 4.5.70 - - Ship Harmony Array/TypedArray methods (issue 3578). - - Performance and stability improvements on all platforms. - - -2015-06-20: Version 4.5.69 - - Ship arrow functions (issue 2700). - - Performance and stability improvements on all platforms. - - -2015-06-19: Version 4.5.68 - - Performance and stability improvements on all platforms. - - -2015-06-19: Version 4.5.67 - - Performance and stability improvements on all platforms. - - -2015-06-19: Version 4.5.66 - - Ship arrow functions (issue 2700). - - Performance and stability improvements on all platforms. - - -2015-06-18: Version 4.5.65 - - Performance and stability improvements on all platforms. - - -2015-06-18: Version 4.5.64 - - Performance and stability improvements on all platforms. - - -2015-06-18: Version 4.5.63 - - Performance and stability improvements on all platforms. - - -2015-06-17: Version 4.5.62 - - Hydrogen object literals: always initialize in-object properties - (Chromium issue 500497). - - Performance and stability improvements on all platforms. - - -2015-06-17: Version 4.5.61 - - Add %TypedArray% to proto chain (issue 4085). - - Performance and stability improvements on all platforms. - - -2015-06-17: Version 4.5.60 - - Performance and stability improvements on all platforms. - - -2015-06-17: Version 4.5.59 - - [crankshaft] Fix wrong bailout points in for-in loop body (Chromium - issue 500435). - - Performance and stability improvements on all platforms. - - -2015-06-16: Version 4.5.58 - - Performance and stability improvements on all platforms. - - -2015-06-16: Version 4.5.57 - - Inline code generation for %_IsTypedArray (issue 4085). - - Allow TypedArrays to be initialized with iterables (issue 4090). - - Performance and stability improvements on all platforms. - - -2015-06-15: Version 4.5.56 - - Performance and stability improvements on all platforms. - - -2015-06-15: Version 4.5.55 - - Performance and stability improvements on all platforms. - - -2015-06-14: Version 4.5.54 - - Performance and stability improvements on all platforms. - - -2015-06-13: Version 4.5.53 - - Performance and stability improvements on all platforms. - - -2015-06-12: Version 4.5.52 - - Map::TryUpdate() must be in sync with Map::Update() (issue 4173). - - Add ToObject call in Array.prototype.sort (issue 4125). - - In Array.of and Array.from, fall back to DefineOwnProperty (issue 4168). - - Performance and stability improvements on all platforms. - - -2015-06-12: Version 4.5.51 - - Performance and stability improvements on all platforms. - - -2015-06-11: Version 4.5.50 - - Performance and stability improvements on all platforms. - - -2015-06-11: Version 4.5.49 - - Performance and stability improvements on all platforms. - - -2015-06-11: Version 4.5.48 - - Support rest parameters in arrow functions (issue 2700). - - Performance and stability improvements on all platforms. - - -2015-06-10: Version 4.5.47 - - Implement %TypedArray%.prototype.slice (issue 3578). - - Performance and stability improvements on all platforms. - - -2015-06-09: Version 4.5.46 - - Stage ES6 arrow functions (issue 2700). - - Performance and stability improvements on all platforms. - - -2015-06-09: Version 4.5.45 - - Performance and stability improvements on all platforms. - - -2015-06-09: Version 4.5.44 - - Performance and stability improvements on all platforms. - - -2015-06-08: Version 4.5.43 - - [for-in] Make ForInNext and ForInFilter deal properly with exceptions - (Chromium issue 496331). - - Performance and stability improvements on all platforms. - - -2015-06-08: Version 4.5.42 - - Performance and stability improvements on all platforms. - - -2015-06-06: Version 4.5.41 - - Performance and stability improvements on all platforms. - - -2015-06-05: Version 4.5.40 - - Performance and stability improvements on all platforms. - - -2015-06-05: Version 4.5.39 - - Stage ES6 Array and TypedArray methods (issue 3578). - - Performance and stability improvements on all platforms. - - -2015-06-05: Version 4.5.38 - - Implement %TypedArray%.prototype.{reduce,reduceRight} (issue 3578). - - Add support for Embedded Constant Pools for PPC and Arm (Chromium issue - 478811). - - Performance and stability improvements on all platforms. - - -2015-06-04: Version 4.5.37 - - Performance and stability improvements on all platforms. - - -2015-06-04: Version 4.5.36 - - Performance and stability improvements on all platforms. - - -2015-06-04: Version 4.5.35 - - Flatten the Arrays returned and consumed by the v8::Map API (Chromium - issue 478263). - - Performance and stability improvements on all platforms. - - -2015-06-03: Version 4.5.34 - - Also allocate small typed arrays on heap when initialized from an array- - like (issue 3996). - - Implement %TypedArray%.prototype.{reduce,reduceRight} (issue 3578). - - Performance and stability improvements on all platforms. - - -2015-06-03: Version 4.5.33 - - Add support for Embedded Constant Pools for PPC and Arm (Chromium issue - 478811). - - Implement %TypedArray%.prototype.{toString,toLocaleString,join} (issue - 3578). - - Performance and stability improvements on all platforms. - - -2015-06-03: Version 4.5.32 - - Performance and stability improvements on all platforms. - - -2015-06-02: Version 4.5.31 - - Performance and stability improvements on all platforms. - - -2015-06-02: Version 4.5.30 - - Performance and stability improvements on all platforms. - - -2015-06-01: Version 4.5.29 - - Reland "Re-enable on-heap typed array allocation" (issue 3996). - - Performance and stability improvements on all platforms. - - -2015-06-01: Version 4.5.28 - - Re-enable on-heap typed array allocation (issue 3996). - - Also expose DefineOwnProperty (Chromium issue 475206). - - Performance and stability improvements on all platforms. - - -2015-06-01: Version 4.5.27 - - Performance and stability improvements on all platforms. - - -2015-05-31: Version 4.5.26 - - Performance and stability improvements on all platforms. - - -2015-05-30: Version 4.5.25 - - Performance and stability improvements on all platforms. - - -2015-05-29: Version 4.5.24 - - Debugger: consider try-finally scopes not catching wrt debug events - (Chromium issue 492522). - - Performance and stability improvements on all platforms. - - -2015-05-29: Version 4.5.23 - - Performance and stability improvements on all platforms. - - -2015-05-29: Version 4.5.22 - - Do not eagerly convert exception to string when creating a message - object (Chromium issue 490680). - - Performance and stability improvements on all platforms. - - -2015-05-28: Version 4.5.21 - - Performance and stability improvements on all platforms. - - -2015-05-28: Version 4.5.20 - - Introduce v8::Object::CreateDataProperty (Chromium issue 475206). - - Performance and stability improvements on all platforms. - - -2015-05-27: Version 4.5.19 - - Performance and stability improvements on all platforms. - - -2015-05-27: Version 4.5.18 - - Add {Map,Set}::FromArray to the API (issue 3340). - - Add {Map,Set}::AsArray to the API (issue 3340). - - Add basic API support for Map & Set (issue 3340). - - Performance and stability improvements on all platforms. - - -2015-05-26: Version 4.5.17 - - Correctly hook up materialized receiver into the evaluation context - chain (Chromium issue 491943). - - Implement bookmarks for ExternalStreamingStream (Chromium issue 470930). - - Performance and stability improvements on all platforms. - - -2015-05-26: Version 4.5.16 - - Performance and stability improvements on all platforms. - - -2015-05-26: Version 4.5.15 - - Performance and stability improvements on all platforms. - - -2015-05-23: Version 4.5.14 - - Performance and stability improvements on all platforms. - - -2015-05-22: Version 4.5.13 - - Remove v8::Private. - - Performance and stability improvements on all platforms. - - -2015-05-22: Version 4.5.12 - - Performance and stability improvements on all platforms. - - -2015-05-22: Version 4.5.11 - - Performance and stability improvements on all platforms. - - -2015-05-21: Version 4.5.10 - - Re-land %TypedArray%.prototype.{map,filter,some} (issue 3578). - - Performance and stability improvements on all platforms. - - -2015-05-21: Version 4.5.9 - - Performance and stability improvements on all platforms. - - -2015-05-20: Version 4.5.8 - - Performance and stability improvements on all platforms. - - -2015-05-20: Version 4.5.7 - - Implement %TypedArray%.{lastI,i}ndexOf (issue 3578). - - Implement %TypedArray%.prototype.sort (issue 3578). - - Implement %TypedArray%.reverse (issue 3578). - - Implement %TypedArray%.prototype.{map,filter,some,reduce,reduceRight} - (issue 3578). - - Fix has_pending_exception logic in API's Array::CloneElementAt (issue - 4103). - - Adding api to get last gc object statistics for chrome://tracing - (Chromium issue 476013). - - Fix harmless HGraph verification failure after hoisting inlined bounds - checks (Chromium issue 487608). - - Performance and stability improvements on all platforms. - - -2015-05-20: Version 4.5.6 - - Add TypedArray.from method (issue 3578). - - Performance and stability improvements on all platforms. - - -2015-05-19: Version 4.5.5 - - ARM64: Propagate notification about aborted compilation from - RegExpEngine to MacroAssembler (Chromium issue 489290). - - Performance and stability improvements on all platforms. - - -2015-05-18: Version 4.5.4 - - Performance and stability improvements on all platforms. - - -2015-05-18: Version 4.5.3 - - Performance and stability improvements on all platforms. + The ChangeLog file is no longer maintained on bleeding_edge. This + sentinel should stay on top of this list. 2015-05-17: Version 4.5.2 diff --git a/deps/v8/DEPS b/deps/v8/DEPS index c8c7de080c..85d14c75fd 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -8,23 +8,25 @@ vars = { deps = { "v8/build/gyp": - Var("git_url") + "/external/gyp.git" + "@" + "6ee91ad8659871916f9aa840d42e1513befdf638", + Var("git_url") + "/external/gyp.git" + "@" + "01528c7244837168a1c80f06ff60fa5a9793c824", "v8/third_party/icu": - Var("git_url") + "/chromium/deps/icu.git" + "@" + "89dcdec16381883782b9cc9cff38e00f047a0f46", + Var("git_url") + "/chromium/deps/icu.git" + "@" + "423fc7e1107fb08ccf007c4aeb76dcab8b2747c1", "v8/buildtools": - Var("git_url") + "/chromium/buildtools.git" + "@" + "565d04e8741429fb1b4f26d102f2c6c3b849edeb", + Var("git_url") + "/chromium/buildtools.git" + "@" + "e7111440c07a883b82ffbbe6d26c744dfc6c9673", + "v8/tools/swarming_client": + Var('git_url') + '/external/swarming.client.git' + '@' + "6e5d2b21f0ac98396cd736097a985346feed1328", "v8/testing/gtest": Var("git_url") + "/external/googletest.git" + "@" + "9855a87157778d39b95eccfb201a9dc90f6d61c6", "v8/testing/gmock": Var("git_url") + "/external/googlemock.git" + "@" + "0421b6f358139f02e102c9c332ce19a33faf75be", "v8/tools/clang": - Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "5b12e334ec0e571a8e1f68d028dc5427b58c17ec", + Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "0150e39a3112dbc7e4c7a3ab25276b8d7781f3b6", } deps_os = { "android": { "v8/third_party/android_tools": - Var("git_url") + "/android_tools.git" + "@" + "9e9b6169a098bc19986e44fbbf65e4c29031e4bd", + Var("git_url") + "/android_tools.git" + "@" + "4238a28593b7e6178c95431f91ca8c24e45fa7eb", }, "win": { "v8/third_party/cygwin": @@ -102,6 +104,13 @@ hooks = [ 'v8/third_party/binutils/download.py', ], }, + { + # Pull gold plugin if needed or requested via GYP_DEFINES. + # Note: This must run before the clang update. + 'name': 'gold_plugin', + 'pattern': '.', + 'action': ['python', 'v8/build/download_gold_plugin.py'], + }, { # Pull clang if needed or requested via GYP_DEFINES. # Note: On Win, this should run after win_toolchain, as it may use it. diff --git a/deps/v8/Makefile b/deps/v8/Makefile index baa3b52ca6..28c1af2e07 100644 --- a/deps/v8/Makefile +++ b/deps/v8/Makefile @@ -143,6 +143,10 @@ endif ifeq ($(deprecationwarnings), on) GYPFLAGS += -Dv8_deprecation_warnings=1 endif +# vectorstores=on +ifeq ($(vectorstores), on) + GYPFLAGS += -Dv8_vector_stores=1 +endif # imminentdeprecationwarnings=on ifeq ($(imminentdeprecationwarnings), on) GYPFLAGS += -Dv8_imminent_deprecation_warnings=1 @@ -240,7 +244,7 @@ endif # Architectures and modes to be compiled. Consider these to be internal # variables, don't override them (use the targets instead). -ARCHES = ia32 x64 x32 arm arm64 mips mipsel mips64el x87 ppc ppc64 +ARCHES = ia32 x64 x32 arm arm64 mips mipsel mips64 mips64el x87 ppc ppc64 DEFAULT_ARCHES = ia32 x64 arm MODES = release debug optdebug DEFAULT_MODES = release debug diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index 1bcd9922c5..ab9bba8845 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -67,7 +67,6 @@ def _V8PresubmitChecks(input_api, output_api): input_api.PresubmitLocalPath(), 'tools')) from presubmit import CppLintProcessor from presubmit import SourceProcessor - from presubmit import CheckRuntimeVsNativesNameClashes from presubmit import CheckExternalReferenceRegistration from presubmit import CheckAuthorizedAuthor @@ -78,9 +77,6 @@ def _V8PresubmitChecks(input_api, output_api): results.append(output_api.PresubmitError( "Copyright header, trailing whitespaces and two empty lines " \ "between declarations check failed")) - if not CheckRuntimeVsNativesNameClashes(input_api.PresubmitLocalPath()): - results.append(output_api.PresubmitError( - "Runtime/natives name clash check failed")) if not CheckExternalReferenceRegistration(input_api.PresubmitLocalPath()): results.append(output_api.PresubmitError( "External references registration check failed")) @@ -237,7 +233,6 @@ def _SkipTreeCheck(input_api, output_api): """Check the env var whether we want to skip tree check. Only skip if include/v8-version.h has been updated.""" src_version = 'include/v8-version.h' - FilterFile = lambda file: file.LocalPath() == src_version if not input_api.AffectedSourceFiles( lambda file: file.LocalPath() == src_version): return False diff --git a/deps/v8/README.md b/deps/v8/README.md index 5cd4b5811a..c649f02ec2 100644 --- a/deps/v8/README.md +++ b/deps/v8/README.md @@ -31,3 +31,10 @@ configuration in `.git/config`: fetch = +refs/branch-heads/*:refs/remotes/branch-heads/* fetch = +refs/tags/*:refs/tags/* + + +Contributing +============= + +Please follow the instructions mentioned on the +[V8 wiki](https://code.google.com/p/v8-wiki/wiki/Contributing). diff --git a/deps/v8/build/download_gold_plugin.py b/deps/v8/build/download_gold_plugin.py index 7a0c21b8d7..b8131fd449 100755 --- a/deps/v8/build/download_gold_plugin.py +++ b/deps/v8/build/download_gold_plugin.py @@ -8,11 +8,20 @@ import json import os +import re +import platform import shutil import subprocess import sys import zipfile +# Bail out on windows and cygwin. +if "win" in platform.system().lower(): + # Python 2.7.6 hangs at the second path.insert command on windows. Works + # with python 2.7.8. + print "Gold plugin download not supported on windows." + sys.exit(0) + SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) CHROME_SRC = os.path.abspath(os.path.join(SCRIPT_DIR, os.pardir)) sys.path.insert(0, os.path.join(CHROME_SRC, 'tools')) @@ -30,7 +39,28 @@ CLANG_REVISION = os.popen(CLANG_UPDATE_PY + ' --print-revision').read().rstrip() CLANG_BUCKET = 'gs://chromium-browser-clang/Linux_x64' +GOLD_PLUGIN_PATH = os.path.join(LLVM_BUILD_PATH, 'lib', 'LLVMgold.so') + +sys.path.insert(0, os.path.join(CHROME_SRC, 'tools', 'clang', 'scripts')) + +import update + def main(): + if not re.search(r'cfi_vptr=1', os.environ.get('GYP_DEFINES', '')): + # Bailout if this is not a cfi build. + print 'Skipping gold plugin download for non-cfi build.' + return 0 + if (os.path.exists(GOLD_PLUGIN_PATH) and + update.ReadStampFile().strip() == update.PACKAGE_VERSION): + # Bailout if clang is up-to-date. This requires the script to be run before + # the clang update step! I.e. afterwards clang would always be up-to-date. + print 'Skipping gold plugin download. File present and clang up to date.' + return 0 + + # Make sure this works on empty checkouts (i.e. clang not downloaded yet). + if not os.path.exists(LLVM_BUILD_PATH): + os.makedirs(LLVM_BUILD_PATH) + targz_name = 'llvmgold-%s.tgz' % CLANG_REVISION remote_path = '%s/%s' % (CLANG_BUCKET, targz_name) diff --git a/deps/v8/build/features.gypi b/deps/v8/build/features.gypi index 21e55740ae..741ba75eb6 100644 --- a/deps/v8/build/features.gypi +++ b/deps/v8/build/features.gypi @@ -67,6 +67,9 @@ # Set to 1 to enable building with wasm prototype. 'v8_wasm%': 0, + + # Enable/disable JavaScript API accessors. + 'v8_js_accessors%': 0, }, 'target_defaults': { 'conditions': [ @@ -109,6 +112,9 @@ ['v8_wasm!=0', { 'defines': ['V8_WASM',], }], + ['v8_js_accessors!=0', { + 'defines': ['V8_JS_ACCESSORS'], + }], ], # conditions 'configurations': { 'DebugBaseCommon': { diff --git a/deps/v8/build/isolate.gypi b/deps/v8/build/isolate.gypi new file mode 100644 index 0000000000..9e2a3bfee3 --- /dev/null +++ b/deps/v8/build/isolate.gypi @@ -0,0 +1,74 @@ +# Copyright 2015 the V8 project authors. All rights reserved. +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# This file is meant to be included into a target to provide a rule +# to "build" .isolate files into a .isolated file. +# +# To use this, create a gyp target with the following form: +# 'conditions': [ +# ['test_isolation_mode != "noop"', { +# 'targets': [ +# { +# 'target_name': 'foo_test_run', +# 'type': 'none', +# 'dependencies': [ +# 'foo_test', +# ], +# 'includes': [ +# '../build/isolate.gypi', +# ], +# 'sources': [ +# 'foo_test.isolate', +# ], +# }, +# ], +# }], +# ], +# +# Note: foo_test.isolate is included and a source file. It is an inherent +# property of the .isolate format. This permits to define GYP variables but is +# a stricter format than GYP so isolate.py can read it. +# +# The generated .isolated file will be: +# <(PRODUCT_DIR)/foo_test.isolated +# +# See http://dev.chromium.org/developers/testing/isolated-testing/for-swes +# for more information. + +{ + 'rules': [ + { + 'rule_name': 'isolate', + 'extension': 'isolate', + 'inputs': [ + # Files that are known to be involved in this step. + '<(DEPTH)/tools/swarming_client/isolate.py', + '<(DEPTH)/tools/swarming_client/run_isolated.py', + ], + 'outputs': [ + '<(PRODUCT_DIR)/<(RULE_INPUT_ROOT).isolated', + ], + 'action': [ + 'python', + '<(DEPTH)/tools/swarming_client/isolate.py', + '<(test_isolation_mode)', + '--isolated', '<(PRODUCT_DIR)/<(RULE_INPUT_ROOT).isolated', + '--isolate', '<(RULE_INPUT_PATH)', + + # Variables should use the -V FOO=<(FOO) form so frequent values, + # like '0' or '1', aren't stripped out by GYP. Run 'isolate.py help' + # for more details. + + # Path variables are used to replace file paths when loading a .isolate + # file + '--path-variable', 'DEPTH', '<(DEPTH)', + '--path-variable', 'PRODUCT_DIR', '<(PRODUCT_DIR)', + + '--config-variable', 'OS=<(OS)', + '--config-variable', 'v8_use_external_startup_data=<(v8_use_external_startup_data)', + ], + }, + ], +} diff --git a/deps/v8/build/standalone.gypi b/deps/v8/build/standalone.gypi index bf06bfa20f..7250579d27 100644 --- a/deps/v8/build/standalone.gypi +++ b/deps/v8/build/standalone.gypi @@ -95,6 +95,8 @@ 'cfi_vptr%': 0, 'cfi_diag%': 0, + 'cfi_blacklist%': '<(base_dir)/tools/cfi/blacklist.txt', + # goma settings. # 1 to use goma. # If no gomadir is set, it uses the default gomadir. @@ -122,6 +124,14 @@ }, { 'linux_use_bundled_gold%': 0, }], + + # TODO(machenbach): Remove the conditions as more configurations are + # supported. + ['OS=="linux"', { + 'test_isolation_mode%': 'check', + }, { + 'test_isolation_mode%': 'noop', + }], ], }, 'base_dir%': '<(base_dir)', @@ -143,9 +153,12 @@ 'use_lto%': '<(use_lto)', 'cfi_vptr%': '<(cfi_vptr)', 'cfi_diag%': '<(cfi_diag)', + 'cfi_blacklist%': '<(cfi_blacklist)', + 'test_isolation_mode%': '<(test_isolation_mode)', - # Add a simple extra solely for the purpose of the cctests + # Add a simple extras solely for the purpose of the cctests 'v8_extra_library_files': ['../test/cctest/test-extra.js'], + 'v8_experimental_extra_library_files': ['../test/cctest/test-experimental-extra.js'], # .gyp files or targets should set v8_code to 1 if they build V8 specific # code, as opposed to external code. This variable is used to control such @@ -399,8 +412,25 @@ # things when their commandline changes). Nothing should ever read this # define. 'defines': ['CR_CLANG_REVISION= +``` +The simulator will start the debugger after executing n instructions. + +``` +$ out/arm.debug/d8 --stop_at +``` + +The simulator will stop at the given JavaScript function. + +Also you can directly generate 'stop' instructions in the ARM code. Stops are generated with + +``` +Assembler::stop(const char* msg, Condition cond, int32_t code) +``` + +When the Simulator hits a stop, it will print msg and start the debugger. + + +### Debugging commands. + +**Usual commands:** + +Enter `help` in the debugger prompt to get details on available commands. These include usual gdb-like commands, such as stepi, cont, disasm, etc. If the Simulator is run under gdb, the ā€œgdbā€ debugger command will give control to gdb. You can then use cont from gdb to go back to the debugger. + + +**Debugger specific commands:** + +Here's a list of the ARM debugger specific commands, along with examples. +The JavaScript file ā€œfunc.jsā€ used below contains: + +``` +function test() { + print(ā€œIn function test.ā€); +} +test(); +``` + + * **printobject** `<`register`>` (alias po), will describe an object held in a register. + +``` +$ out/arm.debug/d8 func.js --stop_at test + +Simulator hit stop-at + 0xb544d6a8 e92d4902 stmdb sp!, {r1, r8, fp, lr} +sim> print r0 +r0: 0xb547ec15 -1253577707 +sim> printobject r0 +r0: +0xb547ec15: [Function] + - map = 0x0xb540ff01 + - initial_map = + - shared_info = 0xb547eb2d + - name = #test + - context = 0xb60083f1 + - code = 0xb544d681 + #arguments: 0xb545a15d (callback) + #length: 0xb545a14d (callback) + #name: 0xb545a155 (callback) + #prototype: 0xb545a145 (callback) + #caller: 0xb545a165 (callback) +``` + + * **break** `<`address`>`, will insert a breakpoint at the specified address. + + * **del**, will delete the current breakpoint. + +You can have only one such breakpoint. This is useful if you want to insert a breakpoint at runtime. +``` +$ out/arm.debug/d8 func.js --stop_at test + +Simulator hit stop-at + 0xb53a1ee8 e92d4902 stmdb sp!, {r1, r8, fp, lr} +sim> disasm 5 + 0xb53a1ee8 e92d4902 stmdb sp!, {r1, r8, fp, lr} + 0xb53a1eec e28db008 add fp, sp, #8 + 0xb53a1ef0 e59a200c ldr r2, [r10, #+12] + 0xb53a1ef4 e28fe004 add lr, pc, #4 + 0xb53a1ef8 e15d0002 cmp sp, r2 +sim> break 0xb53a1ef8 +sim> cont + 0xb53a1ef8 e15d0002 cmp sp, r2 +sim> disasm 5 + 0xb53a1ef8 e15d0002 cmp sp, r2 + 0xb53a1efc 359ff034 ldrcc pc, [pc, #+52] + 0xb53a1f00 e5980017 ldr r0, [r8, #+23] + 0xb53a1f04 e59f1030 ldr r1, [pc, #+48] + 0xb53a1f08 e52d0004 str r0, [sp, #-4]! +sim> break 0xb53a1f08 +setting breakpoint failed +sim> del +sim> break 0xb53a1f08 +sim> cont + 0xb53a1f08 e52d0004 str r0, [sp, #-4]! +sim> del +sim> cont +In function test. +``` + + * Generated `stop` instuctions, will work as breakpoints with a few additional features. + +The first argument is a help message, the second is the condition, and the third is the stop code. If a code is specified, and is less than 256, the stop is said to be ā€œwatchedā€, and can be disabled/enabled; a counter also keeps track of how many times the Simulator hits this code. + +If we are working on this v8 C++ code, which is reached when running our JavaScript file. + +``` +__ stop("My stop.", al, 123); +__ mov(r0, r0); +__ mov(r0, r0); +__ mov(r0, r0); +__ mov(r0, r0); +__ mov(r0, r0); +__ stop("My second stop.", al, 0x1); +__ mov(r1, r1); +__ mov(r1, r1); +__ mov(r1, r1); +__ mov(r1, r1); +__ mov(r1, r1); +``` + +Here's a sample debugging session: + +We hit the first stop. + +``` +Simulator hit My stop. + 0xb53559e8 e1a00000 mov r0, r0 +``` + +We can see the following stop using disasm. The address of the message string is inlined in the code after the svc stop instruction. + +``` +sim> disasm + 0xb53559e8 e1a00000 mov r0, r0 + 0xb53559ec e1a00000 mov r0, r0 + 0xb53559f0 e1a00000 mov r0, r0 + 0xb53559f4 e1a00000 mov r0, r0 + 0xb53559f8 e1a00000 mov r0, r0 + 0xb53559fc ef800001 stop 1 - 0x1 + 0xb5355a00 08338a97 stop message: My second stop + 0xb5355a04 e1a00000 mov r1, r1 + 0xb5355a08 e1a00000 mov r1, r1 + 0xb5355a0c e1a00000 mov r1, r1 +``` + +Information can be printed for all (watched) stops which were hit at least once. + +``` +sim> stop info all +Stop information: +stop 123 - 0x7b: Enabled, counter = 1, My stop. +sim> cont +Simulator hit My second stop + 0xb5355a04 e1a00000 mov r1, r1 +sim> stop info all +Stop information: +stop 1 - 0x1: Enabled, counter = 1, My second stop +stop 123 - 0x7b: Enabled, counter = 1, My stop. +``` + +Stops can be disabled or enabled. (Only available for watched stops.) + +``` +sim> stop disable 1 +sim> cont +Simulator hit My stop. + 0xb5356808 e1a00000 mov r0, r0 +sim> cont +Simulator hit My stop. + 0xb5356c28 e1a00000 mov r0, r0 +sim> stop info all +Stop information: +stop 1 - 0x1: Disabled, counter = 2, My second stop +stop 123 - 0x7b: Enabled, counter = 3, My stop. +sim> stop enable 1 +sim> cont +Simulator hit My second stop + 0xb5356c44 e1a00000 mov r1, r1 +sim> stop disable all +sim> con +In function test. +``` \ No newline at end of file diff --git a/deps/v8/docs/becoming_v8_committer.md b/deps/v8/docs/becoming_v8_committer.md new file mode 100644 index 0000000000..16e8491b06 --- /dev/null +++ b/deps/v8/docs/becoming_v8_committer.md @@ -0,0 +1,38 @@ +## What is a committer? + +Technically, a committer is someone who has write access to the V8 SVN repository. A committer can submit his or her own patches or patches from others. + +This privilege is granted with some expectation of responsibility: committers are people who care about the V8 project and want to help meet its goals. A committer is not just someone who can make changes, but someone who has demonstrated his or her ability to collaborate with the team, get the most knowledgeable people to review code, contribute high-quality code, and follow through to fix issues (in code or tests). + +A committer is a contributor to the V8 projects' success and a citizen helping the projects succeed. See V8CommittersResponsibility. + +## How do I become a committer? + +In a nutshell, contribute 20 non-trivial patches and get at least three different people to review them (you'll need three people to support you). Then ask someone to nominate you. You're demonstrating your: + + * commitment to the project (20 good patches requires a lot of your valuable time), + * ability to collaborate with the team, + * understanding of how the team works (policies, processes for testing and code review, etc), + * understanding of the projects' code base and coding style, and + * ability to write good code (last but certainly not least) + +A current committer nominates you by sending email to v8-committers@googlegroups.com containing: + + * your first and last name + * your Google Code email address + * an explanation of why you should be a committer, + * embedded list of links to revisions (about top 10) containing your patches + +Two other committers need to second your nomination. If no one objects in 5 working days (U.S.), you're a committer. If anyone objects or wants more information, the committers discuss and usually come to a consensus (within the 5 working days). If issues cannot be resolved, there's a vote among current committers. + +Once you get approval from the existing committers, we'll send you instructions for write access to SVN or Git. You'll also be added to v8-committers@googlegroups.com. + +In the worst case, this can drag out for two weeks. Keep writing patches! Even in the rare cases where a nomination fails, the objection is usually something easy to address like "more patches" or "not enough people are familiar with this person's work." + +## Maintaining committer status + +You don't really need to do much to maintain committer status: just keep being awesome and helping the V8 project! + +In the unhappy event that a committer continues to disregard good citizenship (or actively disrupts the project), we may need to revoke that person's status. The process is the same as for nominating a new committer: someone suggests the revocation with a good reason, two people second the motion, and a vote may be called if consensus cannot be reached. I hope that's simple enough, and that we never have to test it in practice. + +(Source: inspired by http://dev.chromium.org/getting-involved/become-a-committer ) \ No newline at end of file diff --git a/deps/v8/docs/building_with_gyp.md b/deps/v8/docs/building_with_gyp.md new file mode 100644 index 0000000000..0183fd2de5 --- /dev/null +++ b/deps/v8/docs/building_with_gyp.md @@ -0,0 +1,260 @@ +**Build issues? File a bug at code.google.com/p/v8/issues or ask for help on v8-users@googlegroups.com.** + +# Building V8 + +V8 is built with the help of [GYP](http://code.google.com/p/gyp/). GYP is a meta build system of sorts, as it generates build files for a number of other build systems. How you build therefore depends on what "back-end" build system and compiler you're using. +The instructions below assume that you already have a [checkout of V8](using_git.md) but haven't yet installed the build dependencies. + +If you intend to develop on V8, i.e., send patches and work with changelists, you will need to install the dependencies as described [here](using_git.md). + + +## Prerequisite: Installing GYP + +First, you need GYP itself. GYP is fetched together with the other dependencies by running: + +``` +gclient sync +``` + +## Building + +### GCC + make + +Requires GNU make 3.81 or later. Should work with any GCC >= 4.8 or any recent clang (3.5 highly recommended). + +#### Build instructions + + +The top-level Makefile defines a number of targets for each target architecture (`ia32`, `x64`, `arm`, `arm64`) and mode (`debug`, `optdebug`, or `release`). So your basic command for building is: +``` +make ia32.release +``` + +or analogously for the other architectures and modes. You can build both debug and release binaries with just one command: +``` +make ia32 +``` + +To automatically build in release mode for the host architecture: +``` +make native +``` + +You can also can build all architectures in a given mode at once: +``` +make release +``` + +Or everything: +``` +make +``` + +#### Optional parameters + + * `-j` specifies the number of parallel build processes. Set it (roughly) to the number of CPU cores your machine has. The GYP/make based V8 build also supports distcc, so you can compile with `-j100` or so, provided you have enough machines around. + + * `OUTDIR=foo` specifies where the compiled binaries go. It defaults to `./out/`. In this directory, a subdirectory will be created for each architecture and mode. You will find the d8 shell's binary in `foo/ia32.release/d8`, for example. + + * `library=shared` or `component=shared_library` (the two are completely equivalent) builds V8 as a shared library (`libv8.so`). + + * `soname_version=1.2.3` is only relevant for shared library builds and configures the SONAME of the library. Both the SONAME and the filename of the library will be `libv8.so.1.2.3` if you specify this. Due to a peculiarity in GYP, if you specify a custom SONAME, the library's path will no longer be encoded in the binaries, so you'll have to run d8 as follows: +``` +LD_LIBRARY_PATH=out/ia32.release/lib.target out/ia32.release/d8 +``` + + * `console=readline` enables readline support for the d8 shell. You need readline development headers for this (`libreadline-dev` on Ubuntu). + + * `disassembler=on` enables the disassembler for release mode binaries (it's always enabled for debug binaries). This is useful if you want to inspect generated machine code. + + * `snapshot=off` disables building with a heap snapshot. Compiling will be a little faster, but V8ā€™s start up will be slightly slower. + + * `gdbjit=on` enables GDB JIT support. + + * `liveobjectlist=on` enables the Live Object List feature. + + * `vfp3=off` is only relevant for ARM builds with snapshot and disables the use of VFP3 instructions in the snapshot. + + * `debuggersupport=off` disables the javascript debugger. + + * `werror=no` omits the -Werror flag. This is especially useful for not officially supported C++ compilers (e.g. newer versions of the GCC) so that compile warnings are ignored. + + * `strictaliasing=off` passes the -fno-strict-aliasing flag to GCC. This may help to work around build failures on officially unsupported platforms and/or GCC versions. + + * `regexp=interpreted` chooses the interpreted mode of the irregexp regular expression engine instead of the native code mode. + + * `hardfp=on` creates "hardfp" binaries on ARM. + +### Ninja + +To build d8: +``` +export GYP_GENERATORS=ninja +build/gyp_v8 +ninja -C out/Debug d8 +``` + +Specify `out/Release` for a release build. I recommend setting up an alias so that you don't need to type out that build directory path. + +If you want to build all targets, use `ninja -C out/Debug all`. It's faster to build only the target you're working on, like `d8` or `unittests`. + +Note: You need to set `v8_target_arch` if you want a non-native build, i.e. either +``` +export GYP_DEFINES="v8_target_arch=arm" +build/gyp_v8 ... +``` +or +``` +build/gyp_v8 -Dv8_target_arch=arm ... +``` + + +#### Using goma (Googlers only) + +To use goma you need to set the `use_goma` gyp define, either by passing it to `gyp_v8`, i.e. +``` +build/gyp_v8 -Duse_goma=1 +``` +or by setting the environment variable `$GYP_DEFINES` appropriately: +``` +export GYP_DEFINES="use_goma=1" +``` +Note: You may need to also set `gomadir` to point to the directory where you installed goma, if it's not in the default location. + +If you are using goma, you'll also want to bump the job limit, i.e. +``` +ninja -j 100 -C out/Debug d8 +``` + + +### Cross-compiling + +Similar to building with Clang, you can also use a cross-compiler. Just export your toolchain (`CXX`/`LINK` environment variables should be enough) and compile. For example: +``` +export CXX=/path/to/cross-compile-g++ +export LINK=/path/to/cross-compile-g++ +make arm.release +``` + + +### Xcode + +From the root of your V8 checkout, run either of: +``` +build/gyp_v8 -Dtarget_arch=ia32 +build/gyp_v8 -Dtarget_arch=x64 +``` + +This will generate Xcode project files in `build/` that you can then either open with Xcode or compile directly from the command line: +``` +xcodebuild -project build/all.xcodeproj -configuration Release +xcodebuild -project build/all.xcodeproj +``` + +Note: If you have configured your `GYP_GENERATORS` environment variable, either unset it, or set it to `xcode` for this to work. + + +#### Custom build settings + +You can export the `GYP_DEFINES` environment variable in your shell to configure custom build options. The syntax is `GYP_DEFINES="-Dvariable1=value1 -Dvariable2=value2"` and so on for as many variables as you wish. Possibly interesting options include: + * `-Dcomponent=shared_library` (see `library=shared` in the [GCC + make](#Optional_parameters.md) section above) + * `-Dconsole=readline` (see `console=readline`) + * `-Dv8_enable_disassembler=1` (see `disassembler=on`) + * `-Dv8_use_snapshot='false'` (see `snapshot=off`) + * `-Dv8_enable_gdbjit=1` (see `gdbjit=on`) + * `-Dv8_use_liveobjectlist=true` (see `liveobjectlist=on`) + + +### Visual Studio + +You need Visual Studio 2013, older versions might still work at the moment, but this will probably change soon because we intend to use C++11 features. + +#### Prerequisites + +After you created [checkout of V8](using_git.md), all dependencies will be already installed. + +If you are getting errors during build mentioning that 'python' could not be found, add the 'python.exe' to PATH. + +If you have Visual Studio 2013 and 2015 installed side-by-side and set the environment variable GYP\_MSVS\_VERSION to '2013'. In that case the right project files are going to be created. + +#### Building + * If you use the command prompt: + 1. Generate project files: +``` +python build\gyp_v8 +``` +> > > Specify the path to `python.exe` if you don't have it in your PATH. +> > > Append `-Dtarget_arch=x64` if you want to build 64bit binaries. If you switch between ia32 and x64 targets, you may have to manually delete the generated .vcproj/.sln files before regenerating them. +> > > Example: +``` +third_party/python_26/python.exe build\gyp_v8 -Dtarget_arch=x64 +``` + 1. Build: +> > > Either open `build\All.sln` in Visual Studio, or compile on the command line as follows (adapt the path as necessary, or simply put `devenv.com` in your PATH): +``` +"c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.com" /build Release build\All.sln +``` +> > > Replace `Release` with `Debug` to build in Debug mode. +> > > The built binaries will be in build\Release\ or build\Debug\. + + * If you use cygwin, the workflow is the same, but the syntax is slightly different: + 1. Generate project files: +``` +build/gyp_v8 +``` +> > > This will spit out a bunch of warnings about missing input files, but it seems to be OK to ignore them. (If you have time to figure this out, we'd happily accept a patch that makes the warnings go away!) + 1. Build: +``` +/cygdrive/c/Program\ Files\ (x86)/Microsoft\ Visual\ Studio\ 9.0/Common7/IDE/devenv.com /build Release build/all.sln +``` + + +#### Custom build settings + +See the "custom build settings" section for [Xcode](#Xcode) above. + + +#### Running tests + +You can abuse the test driver's --buildbot flag to make it find the executables where MSVC puts them: +``` +python tools/run-tests.py --buildbot --outdir build --arch ia32 --mode Release +``` + + +### MinGW + +Building on MinGW is not officially supported, but it is possible. You even have two options: + +#### Option 1: With Cygwin Installed + +Requirements: + * MinGW + * Cygwin, including Python + * Python from www.python.org _(yes, you need two Python installations!)_ + +Building: + 1. Open a MinGW shell + 1. `export PATH=$PATH:/c/cygwin/bin` _(or wherever you installed Cygwin)_ + 1. `make ia32.release -j8` + +Running tests: + 1. Open a MinGW shell + 1. `export PATH=/c/Python27:$PATH` _(or wherever you installed Python)_ + 1. `make ia32.release.check -j8` + +#### Option 2: Without Cygwin, just MinGW + +Requirements: + * MinGW + * Python from www.python.org + +Building and testing: + 1. Open a MinGW shell + 1. `tools/mingw-generate-makefiles.sh` _(re-run this any time a `*`.gyp`*` file changed, such as after updating your checkout)_ + 1. `make ia32.release` _(unfortunately -jX doesn't seem to work here)_ + 1. `make ia32.release.check -j8` + + +# Final Note +If you have problems or questions, please file bugs at code.google.com/p/v8/issues or send mail to v8-users@googlegroups.com. Comments on this page are likely to go unnoticed and unanswered. \ No newline at end of file diff --git a/deps/v8/docs/contributing.md b/deps/v8/docs/contributing.md new file mode 100644 index 0000000000..aa8e665976 --- /dev/null +++ b/deps/v8/docs/contributing.md @@ -0,0 +1,32 @@ +Here you will find information that you'll need to be able to contribute to V8. Be sure to read the whole thing before sending us a contribution, including the small print at the end. + +## Before you contribute + +Before you start working on a larger contribution V8 you should get in touch with us first through the V8 [contributor mailing list](http://groups.google.com/group/v8-dev) so we can help out and possibly guide you; coordinating up front makes it much easier to avoid frustration later on. + +## Getting the code + +See [UsingGit](using_git.md). + +## Submitting code + +The source code of V8 follows the [Google C++ Style Guide](http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml) so you should familiarize yourself with those guidelines. Before submitting code you must pass all our [tests](http://code.google.com/p/v8-wiki/wiki/Testing), and have to successfully run the presubmit checks: + +> `tools/presubmit.py` + +The presubmit script uses a linter from Google, `cpplint.py`. External contributors can get this from [here](http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py) and place it in their path. + +All submissions, including submissions by project members, require review. We use the same code-review tools and process as the chromium project. In order to submit a patch, you need to get the [depot\_tools](http://dev.chromium.org/developers/how-tos/install-depot-tools) and follow these instructions on [requesting a review](http://dev.chromium.org/developers/contributing-code) (using your V8 workspace instead of a chromium workspace). + +### Look out for breakage or regressions + +Before submitting your code please check the [buildbot console](http://build.chromium.org/p/client.v8/console) to see that the columns are mostly green before checking in your changes. Otherwise you will not know if your changes break the build or not. When your change is committed watch the [buildbot console](http://build.chromium.org/p/client.v8/console) until the bots turn green after your change. + + +## The small print + +Before we can use your code you have to sign the [Google Individual Contributor License Agreement](http://code.google.com/legal/individual-cla-v1.0.html), which you can do online. This is mainly because you own the copyright to your changes, even after your contribution becomes part of our codebase, so we need your permission to use and distribute your code. We also need to be sure of various other things, for instance that you'll tell us if you know that your code infringes on other people's patents. You don't have to do this until after you've submitted your code for review and a member has approved it, but you will have to do it before we can put your code into our codebase. + +Contributions made by corporations are covered by a different agreement than the one above, the [Software Grant and Corporate Contributor License Agreement](http://code.google.com/legal/corporate-cla-v1.0.html). + +Sign them online [here](https://cla.developers.google.com/) \ No newline at end of file diff --git a/deps/v8/docs/cross_compiling_for_arm.md b/deps/v8/docs/cross_compiling_for_arm.md new file mode 100644 index 0000000000..68464eff1f --- /dev/null +++ b/deps/v8/docs/cross_compiling_for_arm.md @@ -0,0 +1,151 @@ +

Building V8 with SCons is no longer supported. See BuildingWithGYP.

+ +--- + + +# Using Sourcery G++ Lite + +The Sourcery G++ Lite cross compiler suite is a free version of Sourcery G++ from [CodeSourcery](http://www.codesourcery.com). There is a page for the [GNU Toolchain for ARM Processors](http://www.codesourcery.com/sgpp/lite/arm). Determine the version you need for your host/target combination. + +The following instructions uses [2009q1-203 for ARM GNU/Linux](http://www.codesourcery.com/sgpp/lite/arm/portal/release858), and if using a different version please change the URLs and `TOOL_PREFIX` below accordingly. + +## Installing on host and target + +The simplest way of setting this up is to install the full Sourcery G++ Lite package on both the host and target at the same location. This will ensure that all the libraries required are available on both sides. If you want to use the default libraries on the host there is no need the install anything on the target. + +The following script will install in `/opt/codesourcery`: + +``` +#!/bin/sh + +sudo mkdir /opt/codesourcery +cd /opt/codesourcery +sudo chown $USERNAME . +chmod g+ws . +umask 2 +wget http://www.codesourcery.com/sgpp/lite/arm/portal/package4571/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 +tar -xvf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 +``` + + +## Building using scons without snapshot + +The simplest way to build is without snapshot, as that does no involve using the simulator to generate the snapshot. The following script will build the sample shell without snapshot for ARM v7. + +``` +#!/bin/sh + +export TOOL_PREFIX=/opt/codesourcery/arm-2009q1/bin/arm-none-linux-gnueabi +export CXX=$TOOL_PREFIX-g++ +export AR=$TOOL_PREFIX-ar +export RANLIB=$TOOL_PREFIX-ranlib +export CC=$TOOL_PREFIX-gcc +export LD=$TOOL_PREFIX-ld + +export CCFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=vfp" +export ARM_TARGET_LIB=/opt/codesourcery/arm-2009q1/arm-none-linux-gnueabi/libc + +scons wordsize=32 snapshot=off arch=arm sample=shell +``` + +If the processor is not Cortex A8 or does not have VFP enabled the `-mtune=cortex-a8` and `-mfpu=vfp` part of `CCFLAGS` needs to be changed accordingly. By default the V8 SCons build adds `-mfloat-abi=softfp`. + +If using the default libraries on the target just leave out the setting of `ARM_TARGET_LIB` and if the target libraies are in a different location ARM\_TARGET\_LIB` needs to be adjusted accordingly. + +The default for Sourcery G++ Lite is ARM v5te with software floating point emulation, so if testing building for ARM v5te the setting of `CCFLAGS` and `ARM_TARGET_LIB` should be changed to: + +``` +CCFLAGS="" +ARM_TARGET_LIB=/opt/codesourcery/arm-2009q1/arm-none-linux-gnueabi/libc + +scons armeabi=soft ... +``` + +Relying on defaults in the tool chain might lead to surprises, so for ARM v5te with software floating point emulation the following is more explicit: + +``` +CCFLAGS="-march=armv5te" +ARM_TARGET_LIB=/opt/codesourcery/arm-2009q1/arm-none-linux-gnueabi/libc + +scons armeabi=soft ... +``` + +If the target has an VFP unit use the following: + +``` +CCFLAGS="-mfpu=vfpv3" +ARM_TARGET_LIB=/opt/codesourcery/arm-2009q1/arm-none-linux-gnueabi/libc +``` + +To allow G++ to use Thumb2 instructions and the VFP unit when compiling the C/C++ code use: + +``` +CCFLAGS="-mthumb -mfpu=vfpv3" +ARM_TARGET_LIB=/opt/codesourcery/arm-2009q1/arm-none-linux-gnueabi/libc/thumb2 +``` + +_Note:_ V8 will not use Thumb2 instructions in its generated code it always uses the full ARM instruction set. + +For other ARM versions please check the Sourcery G++ Lite documentation. + +As mentioned above the default for Sourcery G++ Lite used here is ARM v5te with software floating point emulation. However beware that this default might change between versions and that there is no unique defaults for ARM tool chains in general, so always passing `-march` and possibly `-mfpu` is recommended. Passing `-mfloat-abi` is not required as this is controlled by the SCons option `armeabi`. + +## Building using scons with snapshot + +When building with snapshot the simulator is used to build the snapshot on the host and then building for the target with that snapshot. The following script will accomplish that (using both Thumb2 and VFP instructions): + +``` +#!/bin/sh + +V8DIR=.. + +cd host + +scons -Y$V8DIR simulator=arm snapshot=on +mv obj/release/snapshot.cc $V8DIR/src/snapshot.cc + +cd .. + +export TOOL_PREFIX=/opt/codesourcery/arm-2010.09-103/bin/arm-none-linux-gnueabi +export CXX=$TOOL_PREFIX-g++ +export AR=$TOOL_PREFIX-ar +export RANLIB=$TOOL_PREFIX-ranlib +export CC=$TOOL_PREFIX-gcc +export LD=$TOOL_PREFIX-ld + +export CCFLAGS="-mthumb -march=armv7-a -mfpu=vfpv3" +export ARM_TARGET_LIB=/opt/codesourcery/arm-2010.09-103/arm-none-linux-gnueabi/libc/thumb2 + +cd target + +scons -Y$V8DIR wordsize=32 snapshot=nobuild arch=armsample=shell +rm $V8DIR/src/snapshot.cc + +cd .. +``` + +This script required the two subdirectories `host` and `target`. V8 is first build for the host with the ARM simulator which supports running ARM code on the host. This is used to build a snapshot file which is then used for the actual cross compilation of V8. + +## Building for target which supports unaligned access + +The default when building V8 for an ARM target (either cross compiling or compiling on an ARM machine) is to disable unaligned memory access. However in some situations (most noticeably handling of regular expressions) performance will be better if unaligned memory access is used on processors which supports it. To enable unaligned memory access set `unalignedaccesses` to `on` when building: + +``` +scons unalignedaccesses=on ... +``` + +When running in the simulator the default is to enable unaligned memory access, so to test in the simulator with unaligned memory access disabled set `unalignedaccesses` to `off` when building: + +``` +scons unalignedaccesses=off simulator=arm ... +``` + +## Using V8 with hardfp calling convention + +By default V8 uses the softfp calling convention when calling C functions from generated code. However it is possible to use hardfp as well. To enable this set `armeabi` to `hardfp` when building: + +``` +scons armeabi=hardfp ... +``` + +Passing `armeabi=hardfp` to SCons will automatically set the compiler flag `-mfloat-abi=hardfp`. If using snapshots remember to pass `armeabi=hardfp` when building V8 on the host for generating the snapshot as well. \ No newline at end of file diff --git a/deps/v8/docs/d8_on_android.md b/deps/v8/docs/d8_on_android.md new file mode 100644 index 0000000000..eda6419345 --- /dev/null +++ b/deps/v8/docs/d8_on_android.md @@ -0,0 +1,101 @@ +# Prerequisites + * a Linux/Mac workstation + * v8 r12178 (on Google Code) or later + * an Android emulator or device with matching USB cable + * make sure [building with GYP](http://code.google.com/p/v8-wiki/wiki/BuildingWithGYP) works + + +# Get the code + + * Use the instructions from https://code.google.com/p/v8-wiki/wiki/UsingGit to get the code + * Once you need to add the android dependencies: +``` +v8$ echo "target_os = ['android']" >> ../.gclient && gclient sync --nohooks +``` + * The sync will take a while the first time as it downloads the Android NDK to v8/third\_party + * If you want to use a different NDK, you need to set the gyp variable android\_ndk\_root + + +# Get the Android SDK + * tested version: `r15` + * download the SDK from http://developer.android.com/sdk/index.html + * extract it + * install the "Platform tools" using the SDK manager that you can start by running `tools/android` + * now you have a `platform_tools/adb` binary which will be used later; put it in your `PATH` or remember where it is + + +# Set up your device + * Enable USB debugging (Gingerbread: Settings > Applications > Development > USB debugging; Ice Cream Sandwich: Settings > Developer Options > USB debugging) + * connect your device to your workstation + * make sure `adb devices` shows it; you may have to edit `udev` rules to give yourself proper permissions + * run `adb shell` to get an ssh-like shell on the device. In that shell, do: +``` +cd /data/local/tmp +mkdir v8 +cd v8 +``` + + +# Push stuff onto the device + * make sure your device is connected + * from your workstation's shell: +``` +adb push /file/you/want/to/push /data/local/tmp/v8/ +``` + + +# Compile V8 for Android +Currently two architectures (`android_arm` and `android_ia32`) are supported, each in `debug` or `release` mode. The following steps work equally well for both ARM and ia32, on either the emulator or real devices. + * compile: +``` +make android_arm.release -j16 +``` + * push the resulting binary to the device: +``` +adb push out/android_arm.release/d8 /data/local/tmp/v8/d8 +``` + * the most comfortable way to run it is from your workstation's shell as a one-off command (rather than starting an interactive shell session on the device), that way you can use pipes or whatever to process the output as necessary: +``` +adb shell /data/local/tmp/v8/d8 +``` + * warning: when you cancel such an "adb shell whatever" command using Ctrl+C, the process on the phone will sometimes keep running. + * Alternatively, use the `.check` suffix to automatically push test binaries and test cases onto the device and run them. +``` +make android_arm.release.check +``` + + +# Profile + * compile a binary, push it to the device, keep a copy of it on the host +``` +make android_arm.release -j16 +adb push out/android_arm.release/d8 /data/local/tmp/v8/d8-version.under.test +cp out/android_arm.release/d8 ./d8-version.under.test +``` + * get a profiling log and copy it to the host: +``` +adb shell /data/local/tmp/v8/d8-version.under.test benchmark.js --prof +adb pull /data/local/tmp/v8/v8.log ./ +``` + * open `v8.log` in your favorite editor and edit the first line to match the full path of the `d8-version.under.test` binary on your workstation (instead of the `/data/local/tmp/v8/` path it had on the device) + * run the tick processor with the host's `d8` and an appropriate `nm` binary: +``` +cp out/ia32.release/d8 ./d8 # only required once +tools/linux-tick-processor --nm=$ANDROID_NDK_ROOT/toolchain/bin/arm-linux-androideabi-nm +``` + +# Compile SpiderMonkey for Lollipop +``` +cd firefox/js/src +autoconf2.13 +./configure \ + --target=arm-linux-androideabi \ + --with-android-ndk=$ANDROID_NDK_ROOT \ + --with-android-version=21 \ + --without-intl-api \ + --disable-tests \ + --enable-android-libstdcxx \ + --enable-pie +make +adb push -p js/src/shell/js /data/local/tmp/js +``` \ No newline at end of file diff --git a/deps/v8/docs/debugger_protocol.md b/deps/v8/docs/debugger_protocol.md new file mode 100644 index 0000000000..6b6b448a0f --- /dev/null +++ b/deps/v8/docs/debugger_protocol.md @@ -0,0 +1,934 @@ +# Introduction + +V8 has support for debugging the JavaScript code running in it. There are two API's for this a function based API using JavaScript objects and a message based API using a JSON based protocol. The function based API can be used by an in-process debugger agent, whereas the message based API can be used out of process as well. +**> The message based API is no longer maintained. Please ask in v8-users@googlegroups.com if you want to attach a debugger to the run-time.** + +The debugger protocol is based on [JSON](http://www.json.org/)). Each protocol packet is defined in terms of JSON and is transmitted as a string value. All packets have two basic elements `seq` and `type`. + +``` +{ "seq" : , + "type" : , + ... +} +``` + +The element `seq` holds the sequence number of the packet. And element type is the type of the packet. The type is a string value with one of the following values `"request"`, `"response"` or `"event"`. + +A `"request"` packet has the following structure: + +``` +{ "seq" : , + "type" : "request", + "command" : + "arguments" : ... +} +``` + +A `"response"` packet has the following structure. If `success` is true `body` will contain the response data. If `success` is false `message` will contain an error message. + +``` +{ "seq" : , + "type" : "response", + "request_seq" : , + "command" : + "body" : ... + "running" : + "success" : + "message" : +} +``` + +An `"event"` packet has the following structure: + +``` +{ "seq" : , + "type" : "event", + "event" : + body : ... +} +``` + +# Request/response pairs + +## Request `continue` + +The request `continue` is a request from the debugger to start the VM running again. As part of the `continue` request the debugger can specify if it wants the VM to perform a single step action. + +``` +{ "seq" : , + "type" : "request", + "command" : "continue", + "arguments" : { "stepaction" : <"in", "next" or "out">, + "stepcount" : + } +} +``` + +In the response the property `running` will always be true as the VM will be running after executing the `continue` command. If a single step action is requested the VM will respond with a `break` event after running the step. + +``` +{ "seq" : , + "type" : "response", + "request_seq" : , + "command" : "continue", + "running" : true + "success" : true +} +``` + + +Here are a couple of examples. + +``` +{"seq":117,"type":"request","command":"continue"} +{"seq":118,"type":"request","command":"continue","arguments":{"stepaction":"out"}} +{"seq":119,"type":"request","command":"continue","arguments":{"stepaction":"next","stepcount":5}} +``` + +## Request `evaluate` + +The request `evaluate` is used to evaluate an expression. The body of the result is as described in response object serialization below. + +``` +{ "seq" : , + "type" : "request", + "command" : "evaluate", + "arguments" : { "expression" : , + "frame" : , + "global" : , + "disable_break" : , + "additional_context" : [ + { "name" : , "handle" : }, + { "name" : , "handle" : }, + ... + ] + } +} +``` + +Optional argument `additional_context` specifies handles that will be visible from the expression under corresponding names (see example below). + +Response: + +``` +{ "seq" : , + "type" : "response", + "request_seq" : , + "command" : "evaluate", + "body" : ... + "running" : + "success" : true +} +``` + +Here are a couple of examples. + +``` +{"seq":117,"type":"request","command":"evaluate","arguments":{"expression":"1+2"}} +{"seq":118,"type":"request","command":"evaluate","arguments":{"expression":"a()","frame":3,"disable_break":false}} +{"seq":119,"type":"request","command":"evaluate","arguments":{"expression":"[o.a,o.b,o.c]","global":true,"disable_break":true}} +{"seq":120,"type":"request","command":"evaluate","arguments":{"expression":"obj.toString()", "additional_context": [{ "name":"obj","handle":25 }] }} +``` + +## Request `lookup` + +The request `lookup` is used to lookup objects based on their handle. The individual array elements of the body of the result is as described in response object serialization below. + +``` +{ "seq" : , + "type" : "request", + "command" : "lookup", + "arguments" : { "handles" : , + "includeSource" : , + } +} +``` + +Response: + +``` +{ "seq" : , + "type" : "response", + "request_seq" : , + "command" : "lookup", + "body" : + "running" : + "success" : true +} +``` + +Here are a couple of examples. + +``` +{"seq":117,"type":"request","command":"lookup","arguments":{"handles":"[1]"}} +{"seq":118,"type":"request","command":"lookup","arguments":{"handles":"[7,12]"}} +``` + +## Request `backtrace` + +The request `backtrace` returns a backtrace (or stacktrace) from the current execution state. When issuing a request a range of frames can be supplied. The top frame is frame number 0. If no frame range is supplied data for 10 frames will be returned. + +``` +{ "seq" : , + "type" : "request", + "command" : "backtrace", + "arguments" : { "fromFrame" : + "toFrame" : + "bottom" : + } +} +``` + +The response contains the frame data together with the actual frames returned and the toalt frame count. + +``` +{ "seq" : , + "type" : "response", + "request_seq" : , + "command" : "backtrace", + "body" : { "fromFrame" : + "toFrame" : + "totalFrames" : + "frames" : + } + "running" : + "success" : true +} +``` + +If there are no stack frames the result body only contains `totalFrames` with a value of `0`. When an exception event is generated due to compilation failures it is possible that there are no stack frames. + +Here are a couple of examples. + +``` +{"seq":117,"type":"request","command":"backtrace"} +{"seq":118,"type":"request","command":"backtrace","arguments":{"toFrame":2}} +{"seq":119,"type":"request","command":"backtrace","arguments":{"fromFrame":0,"toFrame":9}} +``` + +## Request `frame` + +The request frame selects a new selected frame and returns information for that. If no frame number is specified the selected frame is returned. + +``` +{ "seq" : , + "type" : "request", + "command" : "frame", + "arguments" : { "number" : + } +} +``` + +Response: + +``` +{ "seq" : , + "type" : "response", + "request_seq" : , + "command" : "frame", + "body" : { "index" : , + "receiver" : , + "func" : , + "script" :