therubyracer 0.6.3 → 0.7.0.pre
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of therubyracer might be problematic. Click here for more details.
- data/Rakefile +10 -9
- data/ext/v8/callbacks.cpp +15 -8
- data/ext/v8/converters.cpp +7 -8
- data/ext/v8/converters.h +0 -2
- data/ext/v8/extconf.rb +2 -0
- data/ext/v8/rr.cpp +169 -0
- data/ext/v8/rr.h +34 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/AUTHORS +8 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/ChangeLog +198 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/LICENSE +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/SConstruct +152 -38
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/include/v8-debug.h +52 -4
- data/ext/v8/upstream/2.1.10/include/v8-profiler.h +176 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/include/v8.h +227 -48
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/SConscript +60 -10
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/accessors.cc +5 -39
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/accessors.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/allocation.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/allocation.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/api.cc +477 -57
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/api.h +8 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/apinatives.js +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/apiutils.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arguments.h +5 -6
- data/ext/v8/upstream/{2.0.6/src/arm/assembler-thumb2-inl.h → 2.1.10/src/arm/assembler-arm-inl.h} +42 -27
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-arm.cc +430 -216
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-arm.h +199 -110
- data/ext/v8/upstream/{2.0.6/src/arm/assembler-arm-inl.h → 2.1.10/src/arm/assembler-thumb2-inl.h} +4 -18
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-thumb2.cc +142 -85
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-thumb2.h +18 -9
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/builtins-arm.cc +127 -87
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/codegen-arm-inl.h +3 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/codegen-arm.cc +4634 -1427
- data/ext/v8/upstream/2.1.10/src/arm/codegen-arm.h +946 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/constants-arm.cc +21 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/constants-arm.h +39 -13
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/cpu-arm.cc +9 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/debug-arm.cc +34 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/disasm-arm.cc +262 -117
- data/ext/v8/upstream/2.1.10/src/arm/fast-codegen-arm.cc +238 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/frames-arm.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/frames-arm.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/arm/fast-codegen-arm.cc → 2.1.10/src/arm/full-codegen-arm.cc} +453 -283
- data/ext/v8/upstream/2.1.10/src/arm/ic-arm.cc +1833 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/jump-target-arm.cc +3 -29
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/macro-assembler-arm.cc +564 -104
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/macro-assembler-arm.h +255 -46
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/regexp-macro-assembler-arm.cc +78 -104
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/regexp-macro-assembler-arm.h +6 -22
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/register-allocator-arm-inl.h +0 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/register-allocator-arm.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/register-allocator-arm.h +2 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/simulator-arm.cc +557 -180
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/simulator-arm.h +52 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/stub-cache-arm.cc +904 -240
- data/ext/v8/upstream/2.1.10/src/arm/virtual-frame-arm.cc +668 -0
- data/ext/v8/upstream/2.1.10/src/arm/virtual-frame-arm.h +503 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/array.js +82 -109
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/assembler.cc +49 -13
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/assembler.h +27 -5
- data/ext/v8/upstream/2.1.10/src/ast.cc +1138 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ast.h +354 -53
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/bootstrapper.cc +609 -501
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/bootstrapper.h +27 -8
- data/ext/v8/upstream/2.1.10/src/builtins.cc +1512 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/builtins.h +41 -25
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/bytecodes-irregexp.h +0 -0
- data/ext/v8/upstream/2.1.10/src/cached-powers.h +119 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/char-predicates-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/char-predicates.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/checks.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/checks.h +25 -1
- data/ext/v8/upstream/2.1.10/src/circular-queue-inl.h +101 -0
- data/ext/v8/upstream/2.1.10/src/circular-queue.cc +121 -0
- data/ext/v8/upstream/2.1.10/src/circular-queue.h +129 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/code-stubs.cc +23 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/code-stubs.h +16 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/code.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/codegen-inl.h +6 -34
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/codegen.cc +73 -92
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/codegen.h +164 -68
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/compilation-cache.cc +117 -73
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/compilation-cache.h +18 -17
- data/ext/v8/upstream/2.1.10/src/compiler.cc +623 -0
- data/ext/v8/upstream/2.1.10/src/compiler.h +299 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/contexts.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/contexts.h +8 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/conversions-inl.h +28 -13
- data/ext/v8/upstream/2.1.10/src/conversions.cc +1105 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/conversions.h +9 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/counters.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/counters.h +1 -1
- data/ext/v8/upstream/2.1.10/src/cpu-profiler-inl.h +99 -0
- data/ext/v8/upstream/2.1.10/src/cpu-profiler.cc +494 -0
- data/ext/v8/upstream/2.1.10/src/cpu-profiler.h +277 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/cpu.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-debug.cc +15 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-debug.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-posix.cc +18 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-readline.cc +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-windows.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8.cc +10 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8.h +2 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8.js +43 -38
- data/ext/v8/upstream/2.1.10/src/data-flow.cc +755 -0
- data/ext/v8/upstream/2.1.10/src/data-flow.h +278 -0
- data/ext/v8/upstream/{2.0.6/src/date-delay.js → 2.1.10/src/date.js} +100 -110
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dateparser-inl.h +11 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dateparser.cc +24 -26
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dateparser.h +8 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug-agent.cc +3 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug-agent.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/debug-delay.js → 2.1.10/src/debug-debugger.js} +111 -15
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug.cc +156 -96
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug.h +53 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/disasm.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/disassembler.cc +2 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/disassembler.h +0 -0
- data/ext/v8/upstream/2.1.10/src/diy-fp.cc +58 -0
- data/ext/v8/upstream/2.1.10/src/diy-fp.h +117 -0
- data/ext/v8/upstream/2.1.10/src/double.h +169 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dtoa-config.c +4 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/execution.cc +22 -22
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/execution.h +17 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/factory.cc +70 -46
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/factory.h +27 -17
- data/ext/v8/upstream/2.1.10/src/fast-codegen.cc +746 -0
- data/ext/v8/upstream/2.1.10/src/fast-codegen.h +161 -0
- data/ext/v8/upstream/2.1.10/src/fast-dtoa.cc +512 -0
- data/ext/v8/upstream/2.1.10/src/fast-dtoa.h +59 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/flag-definitions.h +32 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/flags.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/flags.h +0 -0
- data/ext/v8/upstream/2.1.10/src/flow-graph.cc +763 -0
- data/ext/v8/upstream/2.1.10/src/flow-graph.h +180 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frame-element.cc +1 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frame-element.h +49 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frames-inl.h +2 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frames.cc +91 -17
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frames.h +24 -2
- data/ext/v8/upstream/{2.0.6/src/fast-codegen.cc → 2.1.10/src/full-codegen.cc} +549 -198
- data/ext/v8/upstream/{2.0.6/src/fast-codegen.h → 2.1.10/src/full-codegen.h} +109 -29
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/func-name-inferrer.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/func-name-inferrer.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/global-handles.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/global-handles.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/globals.h +67 -43
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/handles-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/handles.cc +124 -129
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/handles.h +33 -15
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/hashmap.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/hashmap.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap-inl.h +56 -12
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap-profiler.cc +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap-profiler.h +2 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap.cc +413 -221
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap.h +192 -67
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/assembler-ia32-inl.h +6 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/assembler-ia32.cc +187 -32
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/assembler-ia32.h +31 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/builtins-ia32.cc +160 -133
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/codegen-ia32-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/codegen-ia32.cc +5533 -2177
- data/ext/v8/upstream/{2.0.6/src/x64/codegen-x64.h → 2.1.10/src/ia32/codegen-ia32.h} +453 -134
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/cpu-ia32.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/debug-ia32.cc +63 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/disasm-ia32.cc +99 -16
- data/ext/v8/upstream/2.1.10/src/ia32/fast-codegen-ia32.cc +950 -0
- data/ext/v8/upstream/2.1.10/src/ia32/fast-codegen-ia32.h +155 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/frames-ia32.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/frames-ia32.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/ia32/fast-codegen-ia32.cc → 2.1.10/src/ia32/full-codegen-ia32.cc} +454 -253
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/ic-ia32.cc +545 -390
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/jump-target-ia32.cc +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/macro-assembler-ia32.cc +330 -139
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/macro-assembler-ia32.h +96 -30
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/regexp-macro-assembler-ia32.cc +73 -89
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/regexp-macro-assembler-ia32.h +6 -21
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/register-allocator-ia32-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/register-allocator-ia32.cc +59 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/register-allocator-ia32.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/simulator-ia32.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/simulator-ia32.h +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/stub-cache-ia32.cc +745 -303
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/virtual-frame-ia32.cc +278 -71
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/virtual-frame-ia32.h +78 -22
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ic-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ic.cc +172 -89
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ic.h +51 -20
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/interpreter-irregexp.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/interpreter-irregexp.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/json-delay.js → 2.1.10/src/json.js} +26 -12
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jsregexp.cc +151 -118
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jsregexp.h +31 -7
- data/ext/v8/upstream/2.1.10/src/jump-target-heavy-inl.h +51 -0
- data/ext/v8/upstream/{2.0.6/src/jump-target.cc → 2.1.10/src/jump-target-heavy.cc} +164 -184
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jump-target-inl.h +8 -9
- data/ext/v8/upstream/{2.0.6/src/usage-analyzer.h → 2.1.10/src/jump-target-light-inl.h} +9 -7
- data/ext/v8/upstream/2.1.10/src/jump-target-light.cc +86 -0
- data/ext/v8/upstream/2.1.10/src/jump-target.cc +155 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jump-target.h +6 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/list-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/list.h +2 -1
- data/ext/v8/upstream/2.1.10/src/liveedit-debugger.js +944 -0
- data/ext/v8/upstream/2.1.10/src/liveedit.cc +1468 -0
- data/ext/v8/upstream/2.1.10/src/liveedit.h +170 -0
- data/ext/v8/upstream/2.1.10/src/log-inl.h +59 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log-utils.cc +3 -9
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log-utils.h +1 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log.cc +198 -95
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log.h +50 -49
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/macro-assembler.h +9 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/macros.py +30 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/mark-compact.cc +464 -152
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/mark-compact.h +41 -20
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/math.js +9 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/memory.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/messages.cc +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/messages.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/messages.js +46 -9
- data/ext/v8/upstream/2.1.10/src/mips/assembler-mips-inl.h +215 -0
- data/ext/v8/upstream/2.1.10/src/mips/assembler-mips.cc +1208 -0
- data/ext/v8/upstream/2.1.10/src/mips/assembler-mips.h +665 -0
- data/ext/v8/upstream/2.1.10/src/mips/builtins-mips.cc +202 -0
- data/ext/v8/upstream/2.1.10/src/mips/codegen-mips-inl.h +70 -0
- data/ext/v8/upstream/2.1.10/src/mips/codegen-mips.cc +1428 -0
- data/ext/v8/upstream/{2.0.6/src/arm/codegen-arm.h → 2.1.10/src/mips/codegen-mips.h} +103 -205
- data/ext/v8/upstream/2.1.10/src/mips/constants-mips.cc +323 -0
- data/ext/v8/upstream/2.1.10/src/mips/constants-mips.h +525 -0
- data/ext/v8/upstream/2.1.10/src/mips/cpu-mips.cc +69 -0
- data/ext/v8/upstream/2.1.10/src/mips/debug-mips.cc +128 -0
- data/ext/v8/upstream/2.1.10/src/mips/disasm-mips.cc +784 -0
- data/ext/v8/upstream/2.1.10/src/mips/fast-codegen-mips.cc +74 -0
- data/ext/v8/upstream/2.1.10/src/mips/frames-mips.cc +99 -0
- data/ext/v8/upstream/2.1.10/src/mips/frames-mips.h +164 -0
- data/ext/v8/upstream/2.1.10/src/mips/full-codegen-mips.cc +273 -0
- data/ext/v8/upstream/2.1.10/src/mips/ic-mips.cc +217 -0
- data/ext/v8/upstream/2.1.10/src/mips/jump-target-mips.cc +172 -0
- data/ext/v8/upstream/2.1.10/src/mips/macro-assembler-mips.cc +1323 -0
- data/ext/v8/upstream/2.1.10/src/mips/macro-assembler-mips.h +461 -0
- data/ext/v8/upstream/2.1.10/src/mips/register-allocator-mips-inl.h +137 -0
- data/ext/v8/upstream/2.1.10/src/mips/register-allocator-mips.cc +60 -0
- data/ext/v8/upstream/2.1.10/src/mips/register-allocator-mips.h +46 -0
- data/ext/v8/upstream/2.1.10/src/mips/simulator-mips.cc +1648 -0
- data/ext/v8/upstream/2.1.10/src/mips/simulator-mips.h +311 -0
- data/ext/v8/upstream/2.1.10/src/mips/stub-cache-mips.cc +400 -0
- data/ext/v8/upstream/2.1.10/src/mips/virtual-frame-mips.cc +316 -0
- data/ext/v8/upstream/{2.0.6/src/arm/virtual-frame-arm.h → 2.1.10/src/mips/virtual-frame-mips.h} +87 -71
- data/ext/v8/upstream/{2.0.6/src/mirror-delay.js → 2.1.10/src/mirror-debugger.js} +51 -45
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/mksnapshot.cc +97 -10
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/natives.h +6 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects-debug.cc +47 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects-inl.h +154 -38
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects.cc +528 -280
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects.h +302 -95
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/oprofile-agent.cc +25 -33
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/oprofile-agent.h +9 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/parser.cc +444 -72
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/parser.h +4 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-freebsd.cc +32 -13
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-linux.cc +59 -25
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-macos.cc +30 -13
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-nullos.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-openbsd.cc +21 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-posix.cc +0 -18
- data/ext/v8/upstream/2.1.10/src/platform-solaris.cc +607 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-win32.cc +16 -17
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform.h +25 -8
- data/ext/v8/upstream/2.1.10/src/powers-ten.h +2461 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/prettyprinter.cc +49 -29
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/prettyprinter.h +3 -1
- data/ext/v8/upstream/2.1.10/src/profile-generator-inl.h +124 -0
- data/ext/v8/upstream/2.1.10/src/profile-generator.cc +583 -0
- data/ext/v8/upstream/2.1.10/src/profile-generator.h +364 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/property.cc +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/property.h +12 -24
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-irregexp-inl.h +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-irregexp.cc +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-irregexp.h +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-tracer.cc +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-tracer.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler.cc +33 -10
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler.h +12 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-stack.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-stack.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/regexp-delay.js → 2.1.10/src/regexp.js} +180 -58
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/register-allocator-inl.h +68 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/register-allocator.cc +5 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/register-allocator.h +42 -17
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/rewriter.cc +110 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/rewriter.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/runtime.cc +2733 -623
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/runtime.h +43 -20
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/runtime.js +46 -35
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scanner.cc +278 -36
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scanner.h +97 -26
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopeinfo.cc +3 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopeinfo.h +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopes.cc +11 -12
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopes.h +0 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/serialize.cc +298 -175
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/serialize.h +184 -40
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/shell.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/simulator.h +2 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/smart-pointer.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/snapshot-common.cc +16 -31
- data/ext/v8/upstream/2.1.10/src/snapshot-empty.cc +50 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/snapshot.h +13 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/spaces-inl.h +35 -27
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/spaces.cc +256 -42
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/spaces.h +136 -42
- data/ext/v8/upstream/{2.0.6/src/zone-inl.h → 2.1.10/src/splay-tree-inl.h} +102 -89
- data/ext/v8/upstream/2.1.10/src/splay-tree.h +203 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/string-stream.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/string-stream.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/string.js +260 -149
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/stub-cache.cc +195 -69
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/stub-cache.h +127 -12
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/third_party/dtoa/COPYING +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/third_party/dtoa/dtoa.c +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/third_party/valgrind/valgrind.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/token.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/token.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/top.cc +26 -31
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/top.h +3 -4
- data/ext/v8/upstream/2.1.10/src/type-info.cc +53 -0
- data/ext/v8/upstream/2.1.10/src/type-info.h +244 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/unicode-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/unicode.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/unicode.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/uri.js +6 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/utils.cc +0 -37
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/utils.h +121 -50
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8-counters.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8-counters.h +130 -98
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8.cc +42 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8.h +4 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8natives.js +202 -37
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8threads.cc +11 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8threads.h +15 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/variables.cc +7 -51
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/variables.h +5 -35
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/version.cc +3 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/version.h +0 -0
- data/ext/v8/upstream/2.1.10/src/virtual-frame-heavy-inl.h +152 -0
- data/ext/v8/upstream/{2.0.6/src/virtual-frame.cc → 2.1.10/src/virtual-frame-heavy.cc} +107 -176
- data/ext/v8/upstream/2.1.10/src/virtual-frame-inl.h +39 -0
- data/ext/v8/upstream/2.1.10/src/virtual-frame-light-inl.h +69 -0
- data/ext/v8/upstream/2.1.10/src/virtual-frame-light.cc +49 -0
- data/ext/v8/upstream/2.1.10/src/virtual-frame.cc +49 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/virtual-frame.h +2 -0
- data/ext/v8/upstream/{2.0.6/src/log-inl.h → 2.1.10/src/vm-state-inl.h} +28 -20
- data/ext/v8/upstream/{2.0.6/src/snapshot-empty.cc → 2.1.10/src/vm-state.cc} +5 -6
- data/ext/v8/upstream/2.1.10/src/vm-state.h +75 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/assembler-x64-inl.h +11 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/assembler-x64.cc +285 -93
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/assembler-x64.h +81 -78
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/builtins-x64.cc +130 -87
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/codegen-x64-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/codegen-x64.cc +4520 -1317
- data/ext/v8/upstream/{2.0.6/src/ia32/codegen-ia32.h → 2.1.10/src/x64/codegen-x64.h} +362 -141
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/cpu-x64.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/debug-x64.cc +20 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/disasm-x64.cc +121 -44
- data/ext/v8/upstream/2.1.10/src/x64/fast-codegen-x64.cc +246 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/frames-x64.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/frames-x64.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/x64/fast-codegen-x64.cc → 2.1.10/src/x64/full-codegen-x64.cc} +404 -231
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/ic-x64.cc +346 -117
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/jump-target-x64.cc +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/macro-assembler-x64.cc +537 -181
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/macro-assembler-x64.h +140 -34
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/regexp-macro-assembler-x64.cc +74 -96
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/regexp-macro-assembler-x64.h +8 -25
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/register-allocator-x64-inl.h +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/register-allocator-x64.cc +3 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/register-allocator-x64.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/simulator-x64.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/simulator-x64.h +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/stub-cache-x64.cc +785 -288
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/virtual-frame-x64.cc +128 -52
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/virtual-frame-x64.h +40 -19
- data/ext/v8/upstream/2.1.10/src/zone-inl.h +82 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/zone.cc +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/zone.h +6 -90
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/codemap.js +12 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/consarray.js +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/csvparser.js +22 -37
- data/ext/v8/upstream/2.1.10/tools/generate-ten-powers.scm +286 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/gyp/v8.gyp +86 -24
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/js2c.py +22 -22
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/jsmin.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/linux-tick-processor +10 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/linux-tick-processor.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/logreader.js +34 -16
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/mac-nm +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/mac-tick-processor +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/annotate +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/common +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/dump +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/report +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/reset +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/run +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/shutdown +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/start +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/presubmit.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/process-heap-prof.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/profile.js +70 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/profile_view.js +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/run-valgrind.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/splaytree.js +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/splaytree.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/stats-viewer.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/test.py +7 -7
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/tickprocessor-driver.js +7 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/tickprocessor.js +140 -9
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/tickprocessor.py +40 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/utils.py +6 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/README.txt +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/arm.vsprops +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/common.vsprops +1 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8_arm.vcproj +193 -199
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8_x64.vcproj +16 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8js2c.cmd +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/debug.vsprops +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/ia32.vsprops +5 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/js2c.cmd +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/release.vsprops +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8.sln +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8.vcproj +11 -7
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_arm.sln +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_arm.vcproj +227 -223
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_base.vcproj +137 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_base_arm.vcproj +116 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_base_x64.vcproj +125 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_cctest.vcproj +12 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_cctest_arm.vcproj +12 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_cctest_x64.vcproj +11 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_mksnapshot.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_process_sample.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_process_sample_arm.vcproj +145 -151
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_process_sample_x64.vcproj +16 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_shell_sample.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_shell_sample_arm.vcproj +145 -151
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_shell_sample_x64.vcproj +16 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot.vcproj +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot_cc.vcproj +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_x64.sln +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_x64.vcproj +11 -7
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/x64.vsprops +5 -1
- data/ext/v8/upstream/2.1.10/tools/windows-tick-processor.bat +29 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/windows-tick-processor.py +0 -0
- data/ext/v8/upstream/Makefile +8 -2
- data/ext/v8/v8.cpp +21 -73
- data/ext/v8/v8_array.cpp +56 -0
- data/ext/v8/v8_array.h +8 -0
- data/ext/v8/v8_callbacks.cpp +121 -0
- data/ext/v8/v8_callbacks.h +8 -0
- data/ext/v8/v8_cxt.cpp +74 -77
- data/ext/v8/v8_cxt.h +2 -9
- data/ext/v8/v8_date.cpp +26 -0
- data/ext/v8/v8_date.h +6 -0
- data/ext/v8/v8_exception.cpp +55 -0
- data/ext/v8/v8_exception.h +6 -0
- data/ext/v8/v8_external.cpp +50 -0
- data/ext/v8/v8_external.h +8 -0
- data/ext/v8/v8_func.cpp +76 -18
- data/ext/v8/v8_func.h +5 -4
- data/ext/v8/v8_msg.cpp +55 -46
- data/ext/v8/v8_msg.h +3 -11
- data/ext/v8/v8_obj.cpp +67 -36
- data/ext/v8/v8_obj.h +6 -8
- data/ext/v8/v8_ref.cpp +25 -9
- data/ext/v8/v8_ref.h +3 -5
- data/ext/v8/v8_script.cpp +17 -10
- data/ext/v8/v8_script.h +3 -3
- data/ext/v8/v8_str.cpp +34 -6
- data/ext/v8/v8_str.h +4 -2
- data/ext/v8/v8_template.cpp +195 -33
- data/ext/v8/v8_template.h +4 -5
- data/ext/v8/v8_try_catch.cpp +99 -0
- data/ext/v8/v8_try_catch.h +5 -0
- data/ext/v8/v8_value.cpp +164 -0
- data/ext/v8/v8_value.h +10 -0
- data/lib/v8.rb +3 -1
- data/lib/v8/access.rb +60 -0
- data/lib/v8/array.rb +15 -0
- data/lib/v8/callbacks.rb +88 -0
- data/lib/v8/cli.rb +1 -1
- data/lib/v8/context.rb +55 -66
- data/lib/v8/function.rb +20 -2
- data/lib/v8/object.rb +14 -12
- data/lib/v8/ruby_error.rb +3 -0
- data/lib/v8/to.rb +59 -7
- data/spec/ext/cxt_spec.rb +2 -15
- data/spec/ext/func_spec.rb +17 -10
- data/spec/ext/try_catch_spec.rb +32 -0
- data/spec/foo.rb +17 -0
- data/spec/redjs/jsapi_spec.rb +173 -96
- data/spec/spec_helper.rb +7 -0
- data/spec/v8/to_spec.rb +0 -1
- data/therubyracer.gemspec +6 -6
- metadata +493 -386
- data/ext/v8/upstream/2.0.6/src/arm/ic-arm.cc +0 -849
- data/ext/v8/upstream/2.0.6/src/arm/virtual-frame-arm.cc +0 -412
- data/ext/v8/upstream/2.0.6/src/ast.cc +0 -512
- data/ext/v8/upstream/2.0.6/src/builtins.cc +0 -851
- data/ext/v8/upstream/2.0.6/src/compiler.cc +0 -1132
- data/ext/v8/upstream/2.0.6/src/compiler.h +0 -107
- data/ext/v8/upstream/2.0.6/src/conversions.cc +0 -709
- data/ext/v8/upstream/2.0.6/src/usage-analyzer.cc +0 -426
- data/ext/v8/upstream/2.0.6/tools/windows-tick-processor.bat +0 -5
- data/ext/v8/upstream/no-strict-aliasing.patch +0 -13
- data/ext/v8/v8_standalone.cpp +0 -69
- data/ext/v8/v8_standalone.h +0 -31
- data/spec/ext/obj_spec.rb +0 -13
@@ -52,9 +52,17 @@ namespace internal {
|
|
52
52
|
F(IsPropertyEnumerable, 2, 1) \
|
53
53
|
F(GetPropertyNames, 1, 1) \
|
54
54
|
F(GetPropertyNamesFast, 1, 1) \
|
55
|
+
F(GetLocalPropertyNames, 1, 1) \
|
56
|
+
F(GetLocalElementNames, 1, 1) \
|
57
|
+
F(GetInterceptorInfo, 1, 1) \
|
58
|
+
F(GetNamedInterceptorPropertyNames, 1, 1) \
|
59
|
+
F(GetIndexedInterceptorElementNames, 1, 1) \
|
55
60
|
F(GetArgumentsProperty, 1, 1) \
|
56
61
|
F(ToFastProperties, 1, 1) \
|
57
62
|
F(ToSlowProperties, 1, 1) \
|
63
|
+
F(FinishArrayPrototypeSetup, 1, 1) \
|
64
|
+
F(SpecialArrayFunctions, 1, 1) \
|
65
|
+
F(GetGlobalReceiver, 0, 1) \
|
58
66
|
\
|
59
67
|
F(IsInPrototypeChain, 2, 1) \
|
60
68
|
F(SetHiddenPrototype, 2, 1) \
|
@@ -63,11 +71,11 @@ namespace internal {
|
|
63
71
|
\
|
64
72
|
F(GetOwnProperty, 2, 1) \
|
65
73
|
\
|
74
|
+
F(IsExtensible, 1, 1) \
|
75
|
+
\
|
66
76
|
/* Utilities */ \
|
67
|
-
F(GetCalledFunction, 0, 1) \
|
68
77
|
F(GetFunctionDelegate, 1, 1) \
|
69
78
|
F(GetConstructorDelegate, 1, 1) \
|
70
|
-
F(NewArguments, 1, 1) \
|
71
79
|
F(NewArgumentsFast, 3, 1) \
|
72
80
|
F(LazyCompile, 1, 1) \
|
73
81
|
F(SetNewFunctionAttributes, 1, 1) \
|
@@ -86,11 +94,13 @@ namespace internal {
|
|
86
94
|
F(StringParseFloat, 1, 1) \
|
87
95
|
F(StringToLowerCase, 1, 1) \
|
88
96
|
F(StringToUpperCase, 1, 1) \
|
97
|
+
F(StringSplit, 3, 1) \
|
89
98
|
F(CharFromCode, 1, 1) \
|
90
99
|
F(URIEscape, 1, 1) \
|
91
100
|
F(URIUnescape, 1, 1) \
|
92
101
|
\
|
93
102
|
F(NumberToString, 1, 1) \
|
103
|
+
F(NumberToStringSkipCache, 1, 1) \
|
94
104
|
F(NumberToInteger, 1, 1) \
|
95
105
|
F(NumberToJSUint32, 1, 1) \
|
96
106
|
F(NumberToJSInt32, 1, 1) \
|
@@ -126,7 +136,6 @@ namespace internal {
|
|
126
136
|
F(StringCompare, 2, 1) \
|
127
137
|
\
|
128
138
|
/* Math */ \
|
129
|
-
F(Math_abs, 1, 1) \
|
130
139
|
F(Math_acos, 1, 1) \
|
131
140
|
F(Math_asin, 1, 1) \
|
132
141
|
F(Math_atan, 1, 1) \
|
@@ -137,7 +146,8 @@ namespace internal {
|
|
137
146
|
F(Math_floor, 1, 1) \
|
138
147
|
F(Math_log, 1, 1) \
|
139
148
|
F(Math_pow, 2, 1) \
|
140
|
-
F(
|
149
|
+
F(Math_pow_cfunction, 2, 1) \
|
150
|
+
F(RoundNumber, 1, 1) \
|
141
151
|
F(Math_sin, 1, 1) \
|
142
152
|
F(Math_sqrt, 1, 1) \
|
143
153
|
F(Math_tan, 1, 1) \
|
@@ -145,6 +155,9 @@ namespace internal {
|
|
145
155
|
/* Regular expressions */ \
|
146
156
|
F(RegExpCompile, 3, 1) \
|
147
157
|
F(RegExpExec, 4, 1) \
|
158
|
+
F(RegExpExecMultiple, 4, 1) \
|
159
|
+
F(RegExpInitializeObject, 5, 1) \
|
160
|
+
F(RegExpConstructResult, 3, 1) \
|
148
161
|
\
|
149
162
|
/* Strings */ \
|
150
163
|
F(StringCharCodeAt, 2, 1) \
|
@@ -156,6 +169,7 @@ namespace internal {
|
|
156
169
|
F(StringReplaceRegExpWithString, 4, 1) \
|
157
170
|
F(StringMatch, 3, 1) \
|
158
171
|
F(StringTrim, 3, 1) \
|
172
|
+
F(StringToArray, 1, 1) \
|
159
173
|
\
|
160
174
|
/* Numbers */ \
|
161
175
|
F(NumberToRadixString, 2, 1) \
|
@@ -170,6 +184,7 @@ namespace internal {
|
|
170
184
|
F(FunctionSetPrototype, 2, 1) \
|
171
185
|
F(FunctionGetName, 1, 1) \
|
172
186
|
F(FunctionSetName, 2, 1) \
|
187
|
+
F(FunctionRemovePrototype, 1, 1) \
|
173
188
|
F(FunctionGetSourceCode, 1, 1) \
|
174
189
|
F(FunctionGetScript, 1, 1) \
|
175
190
|
F(FunctionGetScriptSourcePosition, 1, 1) \
|
@@ -195,9 +210,10 @@ namespace internal {
|
|
195
210
|
F(DateLocalTimezone, 1, 1) \
|
196
211
|
F(DateLocalTimeOffset, 0, 1) \
|
197
212
|
F(DateDaylightSavingsOffset, 1, 1) \
|
213
|
+
F(DateMakeDay, 3, 1) \
|
214
|
+
F(DateYMDFromTime, 2, 1) \
|
198
215
|
\
|
199
216
|
/* Numbers */ \
|
200
|
-
F(NumberIsFinite, 1, 1) \
|
201
217
|
\
|
202
218
|
/* Globals */ \
|
203
219
|
F(CompileString, 2, 1) \
|
@@ -208,6 +224,8 @@ namespace internal {
|
|
208
224
|
F(ResolvePossiblyDirectEval, 3, 2) \
|
209
225
|
\
|
210
226
|
F(SetProperty, -1 /* 3 or 4 */, 1) \
|
227
|
+
F(DefineOrRedefineDataProperty, 4, 1) \
|
228
|
+
F(DefineOrRedefineAccessorProperty, 5, 1) \
|
211
229
|
F(IgnoreAttributesAndSetProperty, -1 /* 3 or 4 */, 1) \
|
212
230
|
\
|
213
231
|
/* Arrays */ \
|
@@ -215,6 +233,7 @@ namespace internal {
|
|
215
233
|
F(GetArrayKeys, 2, 1) \
|
216
234
|
F(MoveArrayContents, 2, 1) \
|
217
235
|
F(EstimateNumberOfElements, 1, 1) \
|
236
|
+
F(SwapElements, 3, 1) \
|
218
237
|
\
|
219
238
|
/* Getters and Setters */ \
|
220
239
|
F(DefineAccessor, -1 /* 4 or 5 */, 1) \
|
@@ -223,11 +242,10 @@ namespace internal {
|
|
223
242
|
/* Literals */ \
|
224
243
|
F(MaterializeRegExpLiteral, 4, 1)\
|
225
244
|
F(CreateArrayLiteralBoilerplate, 3, 1) \
|
226
|
-
F(CreateObjectLiteralBoilerplate, 3, 1) \
|
227
245
|
F(CloneLiteralBoilerplate, 1, 1) \
|
228
246
|
F(CloneShallowLiteralBoilerplate, 1, 1) \
|
229
|
-
F(CreateObjectLiteral,
|
230
|
-
F(CreateObjectLiteralShallow,
|
247
|
+
F(CreateObjectLiteral, 4, 1) \
|
248
|
+
F(CreateObjectLiteralShallow, 4, 1) \
|
231
249
|
F(CreateArrayLiteral, 3, 1) \
|
232
250
|
F(CreateArrayLiteralShallow, 3, 1) \
|
233
251
|
\
|
@@ -259,7 +277,6 @@ namespace internal {
|
|
259
277
|
F(InitializeConstGlobal, 2, 1) \
|
260
278
|
F(InitializeConstContextSlot, 3, 1) \
|
261
279
|
F(OptimizeObjectForAddingMultipleProperties, 2, 1) \
|
262
|
-
F(TransformToFastProperties, 1, 1) \
|
263
280
|
\
|
264
281
|
/* Debugging */ \
|
265
282
|
F(DebugPrint, 1, 1) \
|
@@ -273,6 +290,8 @@ namespace internal {
|
|
273
290
|
F(LocalKeys, 1, 1) \
|
274
291
|
/* Handle scopes */ \
|
275
292
|
F(DeleteHandleScopeExtensions, 0, 1) \
|
293
|
+
/* Cache suport */ \
|
294
|
+
F(GetFromCache, 2, 1) \
|
276
295
|
\
|
277
296
|
/* Pseudo functions - handled as macros by parser */ \
|
278
297
|
F(IS_VAR, 1, 1)
|
@@ -285,14 +304,9 @@ namespace internal {
|
|
285
304
|
F(Break, 0, 1) \
|
286
305
|
F(DebugGetPropertyDetails, 2, 1) \
|
287
306
|
F(DebugGetProperty, 2, 1) \
|
288
|
-
F(DebugLocalPropertyNames, 1, 1) \
|
289
|
-
F(DebugLocalElementNames, 1, 1) \
|
290
307
|
F(DebugPropertyTypeFromDetails, 1, 1) \
|
291
308
|
F(DebugPropertyAttributesFromDetails, 1, 1) \
|
292
309
|
F(DebugPropertyIndexFromDetails, 1, 1) \
|
293
|
-
F(DebugInterceptorInfo, 1, 1) \
|
294
|
-
F(DebugNamedInterceptorPropertyNames, 1, 1) \
|
295
|
-
F(DebugIndexedInterceptorElementNames, 1, 1) \
|
296
310
|
F(DebugNamedInterceptorPropertyValue, 2, 1) \
|
297
311
|
F(DebugIndexedInterceptorElementValue, 2, 1) \
|
298
312
|
F(CheckExecutionState, 1, 1) \
|
@@ -320,15 +334,26 @@ namespace internal {
|
|
320
334
|
F(SystemBreak, 0, 1) \
|
321
335
|
F(DebugDisassembleFunction, 1, 1) \
|
322
336
|
F(DebugDisassembleConstructor, 1, 1) \
|
323
|
-
F(FunctionGetInferredName, 1, 1)
|
337
|
+
F(FunctionGetInferredName, 1, 1) \
|
338
|
+
F(LiveEditFindSharedFunctionInfosForScript, 1, 1) \
|
339
|
+
F(LiveEditGatherCompileInfo, 2, 1) \
|
340
|
+
F(LiveEditReplaceScript, 3, 1) \
|
341
|
+
F(LiveEditReplaceFunctionCode, 2, 1) \
|
342
|
+
F(LiveEditFunctionSetScript, 2, 1) \
|
343
|
+
F(LiveEditReplaceRefToNestedFunction, 3, 1) \
|
344
|
+
F(LiveEditPatchFunctionPositions, 2, 1) \
|
345
|
+
F(LiveEditCheckAndDropActivations, 2, 1) \
|
346
|
+
F(LiveEditCompareStringsLinewise, 2, 1) \
|
347
|
+
F(GetFunctionCodePositionFromSource, 2, 1) \
|
348
|
+
F(ExecuteInDebugContext, 2, 1)
|
324
349
|
#else
|
325
350
|
#define RUNTIME_FUNCTION_LIST_DEBUGGER_SUPPORT(F)
|
326
351
|
#endif
|
327
352
|
|
328
353
|
#ifdef ENABLE_LOGGING_AND_PROFILING
|
329
354
|
#define RUNTIME_FUNCTION_LIST_PROFILER_SUPPORT(F) \
|
330
|
-
F(ProfilerResume,
|
331
|
-
F(ProfilerPause,
|
355
|
+
F(ProfilerResume, 2, 1) \
|
356
|
+
F(ProfilerPause, 2, 1)
|
332
357
|
#else
|
333
358
|
#define RUNTIME_FUNCTION_LIST_PROFILER_SUPPORT(F)
|
334
359
|
#endif
|
@@ -371,9 +396,6 @@ class Runtime : public AllStatic {
|
|
371
396
|
// The JS name of the function.
|
372
397
|
const char* name;
|
373
398
|
|
374
|
-
// The name of the stub that calls the runtime function.
|
375
|
-
const char* stub_name;
|
376
|
-
|
377
399
|
// The C++ (native) entry point.
|
378
400
|
byte* entry;
|
379
401
|
|
@@ -402,6 +424,7 @@ class Runtime : public AllStatic {
|
|
402
424
|
// Support getting the characters in a string using [] notation as
|
403
425
|
// in Firefox/SpiderMonkey, Safari and Opera.
|
404
426
|
static Object* GetElementOrCharAt(Handle<Object> object, uint32_t index);
|
427
|
+
static Object* GetElement(Handle<Object> object, uint32_t index);
|
405
428
|
|
406
429
|
static Object* SetObjectProperty(Handle<Object> object,
|
407
430
|
Handle<Object> key,
|
@@ -178,7 +178,7 @@ function STRING_ADD_LEFT(y) {
|
|
178
178
|
y = %_ValueOf(y);
|
179
179
|
} else {
|
180
180
|
y = IS_NUMBER(y)
|
181
|
-
? %
|
181
|
+
? %_NumberToString(y)
|
182
182
|
: %ToString(%ToPrimitive(y, NO_HINT));
|
183
183
|
}
|
184
184
|
}
|
@@ -194,7 +194,7 @@ function STRING_ADD_RIGHT(y) {
|
|
194
194
|
x = %_ValueOf(x);
|
195
195
|
} else {
|
196
196
|
x = IS_NUMBER(x)
|
197
|
-
? %
|
197
|
+
? %_NumberToString(x)
|
198
198
|
: %ToString(%ToPrimitive(x, NO_HINT));
|
199
199
|
}
|
200
200
|
}
|
@@ -395,26 +395,20 @@ function FILTER_KEY(key) {
|
|
395
395
|
|
396
396
|
|
397
397
|
function CALL_NON_FUNCTION() {
|
398
|
-
var
|
399
|
-
var delegate = %GetFunctionDelegate(callee);
|
398
|
+
var delegate = %GetFunctionDelegate(this);
|
400
399
|
if (!IS_FUNCTION(delegate)) {
|
401
|
-
throw %MakeTypeError('called_non_callable', [typeof
|
400
|
+
throw %MakeTypeError('called_non_callable', [typeof this]);
|
402
401
|
}
|
403
|
-
|
404
|
-
var parameters = %NewArguments(delegate);
|
405
|
-
return delegate.apply(callee, parameters);
|
402
|
+
return delegate.apply(this, arguments);
|
406
403
|
}
|
407
404
|
|
408
405
|
|
409
406
|
function CALL_NON_FUNCTION_AS_CONSTRUCTOR() {
|
410
|
-
var
|
411
|
-
var delegate = %GetConstructorDelegate(callee);
|
407
|
+
var delegate = %GetConstructorDelegate(this);
|
412
408
|
if (!IS_FUNCTION(delegate)) {
|
413
|
-
throw %MakeTypeError('called_non_callable', [typeof
|
409
|
+
throw %MakeTypeError('called_non_callable', [typeof this]);
|
414
410
|
}
|
415
|
-
|
416
|
-
var parameters = %NewArguments(delegate);
|
417
|
-
return delegate.apply(callee, parameters);
|
411
|
+
return delegate.apply(this, arguments);
|
418
412
|
}
|
419
413
|
|
420
414
|
|
@@ -477,17 +471,6 @@ function TO_STRING() {
|
|
477
471
|
}
|
478
472
|
|
479
473
|
|
480
|
-
// Specialized version of String.charAt. It assumes string as
|
481
|
-
// the receiver type and that the index is a number.
|
482
|
-
function STRING_CHAR_AT(pos) {
|
483
|
-
var char_code = %_FastCharCodeAt(this, pos);
|
484
|
-
if (!%_IsSmi(char_code)) {
|
485
|
-
return %StringCharAt(this, pos);
|
486
|
-
}
|
487
|
-
return %CharFromCode(char_code);
|
488
|
-
}
|
489
|
-
|
490
|
-
|
491
474
|
/* -------------------------------------
|
492
475
|
- - - C o n v e r s i o n s - - -
|
493
476
|
-------------------------------------
|
@@ -506,6 +489,16 @@ function ToPrimitive(x, hint) {
|
|
506
489
|
}
|
507
490
|
|
508
491
|
|
492
|
+
// ECMA-262, section 9.2, page 30
|
493
|
+
function ToBoolean(x) {
|
494
|
+
if (IS_BOOLEAN(x)) return x;
|
495
|
+
if (IS_STRING(x)) return x.length != 0;
|
496
|
+
if (x == null) return false;
|
497
|
+
if (IS_NUMBER(x)) return !((x == 0) || NUMBER_IS_NAN(x));
|
498
|
+
return true;
|
499
|
+
}
|
500
|
+
|
501
|
+
|
509
502
|
// ECMA-262, section 9.3, page 31.
|
510
503
|
function ToNumber(x) {
|
511
504
|
if (IS_NUMBER(x)) return x;
|
@@ -519,20 +512,17 @@ function ToNumber(x) {
|
|
519
512
|
// ECMA-262, section 9.8, page 35.
|
520
513
|
function ToString(x) {
|
521
514
|
if (IS_STRING(x)) return x;
|
522
|
-
if (IS_NUMBER(x)) return %
|
515
|
+
if (IS_NUMBER(x)) return %_NumberToString(x);
|
523
516
|
if (IS_BOOLEAN(x)) return x ? 'true' : 'false';
|
524
517
|
if (IS_UNDEFINED(x)) return 'undefined';
|
525
518
|
return (IS_NULL(x)) ? 'null' : %ToString(%DefaultString(x));
|
526
519
|
}
|
527
520
|
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
if (
|
532
|
-
|
533
|
-
if (x == null) return false;
|
534
|
-
if (IS_NUMBER(x)) return !((x == 0) || NUMBER_IS_NAN(x));
|
535
|
-
return true;
|
521
|
+
function NonStringToString(x) {
|
522
|
+
if (IS_NUMBER(x)) return %_NumberToString(x);
|
523
|
+
if (IS_BOOLEAN(x)) return x ? 'true' : 'false';
|
524
|
+
if (IS_UNDEFINED(x)) return 'undefined';
|
525
|
+
return (IS_NULL(x)) ? 'null' : %ToString(%DefaultString(x));
|
536
526
|
}
|
537
527
|
|
538
528
|
|
@@ -541,7 +531,9 @@ function ToObject(x) {
|
|
541
531
|
if (IS_STRING(x)) return new $String(x);
|
542
532
|
if (IS_NUMBER(x)) return new $Number(x);
|
543
533
|
if (IS_BOOLEAN(x)) return new $Boolean(x);
|
544
|
-
if (x
|
534
|
+
if (IS_NULL_OR_UNDEFINED(x) && !IS_UNDETECTABLE(x)) {
|
535
|
+
throw %MakeTypeError('null_to_object', []);
|
536
|
+
}
|
545
537
|
return x;
|
546
538
|
}
|
547
539
|
|
@@ -567,6 +559,25 @@ function ToInt32(x) {
|
|
567
559
|
}
|
568
560
|
|
569
561
|
|
562
|
+
// ES5, section 9.12
|
563
|
+
function SameValue(x, y) {
|
564
|
+
if (typeof x != typeof y) return false;
|
565
|
+
if (IS_NULL_OR_UNDEFINED(x)) return true;
|
566
|
+
if (IS_NUMBER(x)) {
|
567
|
+
if (NUMBER_IS_NAN(x) && NUMBER_IS_NAN(y)) return true;
|
568
|
+
// x is +0 and y is -0 or vice versa
|
569
|
+
if (x === 0 && y === 0 && !%_IsSmi(x) && !%_IsSmi(y) &&
|
570
|
+
((1 / x < 0 && 1 / y > 0) || (1 / x > 0 && 1 / y < 0))) {
|
571
|
+
return false;
|
572
|
+
}
|
573
|
+
return x == y;
|
574
|
+
}
|
575
|
+
if (IS_STRING(x)) return %StringEquals(x, y);
|
576
|
+
if (IS_BOOLEAN(x))return %NumberEquals(%ToNumber(x),%ToNumber(y));
|
577
|
+
|
578
|
+
return %_ObjectEquals(x, y);
|
579
|
+
}
|
580
|
+
|
570
581
|
|
571
582
|
/* ---------------------------------
|
572
583
|
- - - U t i l i t i e s - - -
|
@@ -28,6 +28,7 @@
|
|
28
28
|
#include "v8.h"
|
29
29
|
|
30
30
|
#include "ast.h"
|
31
|
+
#include "handles.h"
|
31
32
|
#include "scanner.h"
|
32
33
|
|
33
34
|
namespace v8 {
|
@@ -86,12 +87,7 @@ void UTF8Buffer::AddCharSlow(uc32 c) {
|
|
86
87
|
|
87
88
|
|
88
89
|
UTF16Buffer::UTF16Buffer()
|
89
|
-
: pos_(0),
|
90
|
-
|
91
|
-
|
92
|
-
Handle<String> UTF16Buffer::SubString(int start, int end) {
|
93
|
-
return internal::SubString(data_, start, end);
|
94
|
-
}
|
90
|
+
: pos_(0), end_(Scanner::kNoEndPosition) { }
|
95
91
|
|
96
92
|
|
97
93
|
// CharacterStreamUTF16Buffer
|
@@ -100,10 +96,14 @@ CharacterStreamUTF16Buffer::CharacterStreamUTF16Buffer()
|
|
100
96
|
|
101
97
|
|
102
98
|
void CharacterStreamUTF16Buffer::Initialize(Handle<String> data,
|
103
|
-
unibrow::CharacterStream* input
|
104
|
-
|
105
|
-
|
99
|
+
unibrow::CharacterStream* input,
|
100
|
+
int start_position,
|
101
|
+
int end_position) {
|
106
102
|
stream_ = input;
|
103
|
+
if (start_position > 0) {
|
104
|
+
SeekForward(start_position);
|
105
|
+
}
|
106
|
+
end_ = end_position != Scanner::kNoEndPosition ? end_position : kMaxInt;
|
107
107
|
}
|
108
108
|
|
109
109
|
|
@@ -115,6 +115,8 @@ void CharacterStreamUTF16Buffer::PushBack(uc32 ch) {
|
|
115
115
|
|
116
116
|
|
117
117
|
uc32 CharacterStreamUTF16Buffer::Advance() {
|
118
|
+
ASSERT(end_ != Scanner::kNoEndPosition);
|
119
|
+
ASSERT(end_ >= 0);
|
118
120
|
// NOTE: It is of importance to Persian / Farsi resources that we do
|
119
121
|
// *not* strip format control characters in the scanner; see
|
120
122
|
//
|
@@ -126,7 +128,7 @@ uc32 CharacterStreamUTF16Buffer::Advance() {
|
|
126
128
|
if (!pushback_buffer()->is_empty()) {
|
127
129
|
pos_++;
|
128
130
|
return last_ = pushback_buffer()->RemoveLast();
|
129
|
-
} else if (stream_->has_more()) {
|
131
|
+
} else if (stream_->has_more() && pos_ < end_) {
|
130
132
|
pos_++;
|
131
133
|
uc32 next = stream_->GetNext();
|
132
134
|
return last_ = next;
|
@@ -146,25 +148,32 @@ void CharacterStreamUTF16Buffer::SeekForward(int pos) {
|
|
146
148
|
}
|
147
149
|
|
148
150
|
|
149
|
-
//
|
150
|
-
|
151
|
+
// ExternalStringUTF16Buffer
|
152
|
+
template <typename StringType, typename CharType>
|
153
|
+
ExternalStringUTF16Buffer<StringType, CharType>::ExternalStringUTF16Buffer()
|
151
154
|
: raw_data_(NULL) { }
|
152
155
|
|
153
156
|
|
154
|
-
|
155
|
-
|
157
|
+
template <typename StringType, typename CharType>
|
158
|
+
void ExternalStringUTF16Buffer<StringType, CharType>::Initialize(
|
159
|
+
Handle<StringType> data,
|
160
|
+
int start_position,
|
161
|
+
int end_position) {
|
156
162
|
ASSERT(!data.is_null());
|
157
|
-
|
158
|
-
data_ = data;
|
159
|
-
pos_ = 0;
|
160
|
-
|
161
163
|
raw_data_ = data->resource()->data();
|
162
|
-
|
164
|
+
|
165
|
+
ASSERT(end_position <= data->length());
|
166
|
+
if (start_position > 0) {
|
167
|
+
SeekForward(start_position);
|
168
|
+
}
|
169
|
+
end_ =
|
170
|
+
end_position != Scanner::kNoEndPosition ? end_position : data->length();
|
163
171
|
}
|
164
172
|
|
165
173
|
|
166
|
-
|
167
|
-
|
174
|
+
template <typename StringType, typename CharType>
|
175
|
+
uc32 ExternalStringUTF16Buffer<StringType, CharType>::Advance() {
|
176
|
+
if (pos_ < end_) {
|
168
177
|
return raw_data_[pos_++];
|
169
178
|
} else {
|
170
179
|
// note: currently the following increment is necessary to avoid a
|
@@ -175,14 +184,16 @@ uc32 TwoByteStringUTF16Buffer::Advance() {
|
|
175
184
|
}
|
176
185
|
|
177
186
|
|
178
|
-
|
187
|
+
template <typename StringType, typename CharType>
|
188
|
+
void ExternalStringUTF16Buffer<StringType, CharType>::PushBack(uc32 ch) {
|
179
189
|
pos_--;
|
180
190
|
ASSERT(pos_ >= Scanner::kCharacterLookaheadBufferSize);
|
181
191
|
ASSERT(raw_data_[pos_ - Scanner::kCharacterLookaheadBufferSize] == ch);
|
182
192
|
}
|
183
193
|
|
184
194
|
|
185
|
-
|
195
|
+
template <typename StringType, typename CharType>
|
196
|
+
void ExternalStringUTF16Buffer<StringType, CharType>::SeekForward(int pos) {
|
186
197
|
pos_ = pos;
|
187
198
|
}
|
188
199
|
|
@@ -323,22 +334,61 @@ void KeywordMatcher::Step(uc32 input) {
|
|
323
334
|
// ----------------------------------------------------------------------------
|
324
335
|
// Scanner
|
325
336
|
|
326
|
-
Scanner::Scanner(
|
337
|
+
Scanner::Scanner(ParserMode pre)
|
338
|
+
: stack_overflow_(false), is_pre_parsing_(pre == PREPARSE) { }
|
327
339
|
|
328
340
|
|
329
|
-
void Scanner::
|
330
|
-
|
341
|
+
void Scanner::Initialize(Handle<String> source,
|
342
|
+
ParserLanguage language) {
|
343
|
+
safe_string_input_buffer_.Reset(source.location());
|
344
|
+
Init(source, &safe_string_input_buffer_, 0, source->length(), language);
|
345
|
+
}
|
346
|
+
|
347
|
+
|
348
|
+
void Scanner::Initialize(Handle<String> source,
|
349
|
+
unibrow::CharacterStream* stream,
|
350
|
+
ParserLanguage language) {
|
351
|
+
Init(source, stream, 0, kNoEndPosition, language);
|
352
|
+
}
|
353
|
+
|
354
|
+
|
355
|
+
void Scanner::Initialize(Handle<String> source,
|
356
|
+
int start_position,
|
357
|
+
int end_position,
|
358
|
+
ParserLanguage language) {
|
359
|
+
safe_string_input_buffer_.Reset(source.location());
|
360
|
+
Init(source, &safe_string_input_buffer_,
|
361
|
+
start_position, end_position, language);
|
362
|
+
}
|
363
|
+
|
364
|
+
|
365
|
+
void Scanner::Init(Handle<String> source,
|
366
|
+
unibrow::CharacterStream* stream,
|
367
|
+
int start_position,
|
368
|
+
int end_position,
|
369
|
+
ParserLanguage language) {
|
331
370
|
// Initialize the source buffer.
|
332
371
|
if (!source.is_null() && StringShape(*source).IsExternalTwoByte()) {
|
333
372
|
two_byte_string_buffer_.Initialize(
|
334
|
-
Handle<ExternalTwoByteString>::cast(source)
|
373
|
+
Handle<ExternalTwoByteString>::cast(source),
|
374
|
+
start_position,
|
375
|
+
end_position);
|
335
376
|
source_ = &two_byte_string_buffer_;
|
377
|
+
} else if (!source.is_null() && StringShape(*source).IsExternalAscii()) {
|
378
|
+
ascii_string_buffer_.Initialize(
|
379
|
+
Handle<ExternalAsciiString>::cast(source),
|
380
|
+
start_position,
|
381
|
+
end_position);
|
382
|
+
source_ = &ascii_string_buffer_;
|
336
383
|
} else {
|
337
|
-
char_stream_buffer_.Initialize(source,
|
384
|
+
char_stream_buffer_.Initialize(source,
|
385
|
+
stream,
|
386
|
+
start_position,
|
387
|
+
end_position);
|
338
388
|
source_ = &char_stream_buffer_;
|
339
389
|
}
|
340
390
|
|
341
|
-
|
391
|
+
is_parsing_json_ = (language == JSON);
|
342
392
|
|
343
393
|
// Set c0_ (one character ahead)
|
344
394
|
ASSERT(kCharacterLookaheadBufferSize == 1);
|
@@ -354,11 +404,6 @@ void Scanner::Init(Handle<String> source, unibrow::CharacterStream* stream,
|
|
354
404
|
}
|
355
405
|
|
356
406
|
|
357
|
-
Handle<String> Scanner::SubString(int start, int end) {
|
358
|
-
return source_->SubString(start - position_, end - position_);
|
359
|
-
}
|
360
|
-
|
361
|
-
|
362
407
|
Token::Value Scanner::Next() {
|
363
408
|
// BUG 1215673: Find a thread safe way to set a stack limit in
|
364
409
|
// pre-parse mode. Otherwise, we cannot safely pre-parse from other
|
@@ -416,7 +461,17 @@ static inline bool IsByteOrderMark(uc32 c) {
|
|
416
461
|
}
|
417
462
|
|
418
463
|
|
419
|
-
bool Scanner::
|
464
|
+
bool Scanner::SkipJsonWhiteSpace() {
|
465
|
+
int start_position = source_pos();
|
466
|
+
// JSON WhiteSpace is tab, carrige-return, newline and space.
|
467
|
+
while (c0_ == ' ' || c0_ == '\n' || c0_ == '\r' || c0_ == '\t') {
|
468
|
+
Advance();
|
469
|
+
}
|
470
|
+
return source_pos() != start_position;
|
471
|
+
}
|
472
|
+
|
473
|
+
|
474
|
+
bool Scanner::SkipJavaScriptWhiteSpace() {
|
420
475
|
int start_position = source_pos();
|
421
476
|
|
422
477
|
while (true) {
|
@@ -512,7 +567,194 @@ Token::Value Scanner::ScanHtmlComment() {
|
|
512
567
|
}
|
513
568
|
|
514
569
|
|
515
|
-
|
570
|
+
|
571
|
+
void Scanner::ScanJson() {
|
572
|
+
next_.literal_buffer = NULL;
|
573
|
+
Token::Value token;
|
574
|
+
has_line_terminator_before_next_ = false;
|
575
|
+
do {
|
576
|
+
// Remember the position of the next token
|
577
|
+
next_.location.beg_pos = source_pos();
|
578
|
+
switch (c0_) {
|
579
|
+
case '\t':
|
580
|
+
case '\r':
|
581
|
+
case '\n':
|
582
|
+
case ' ':
|
583
|
+
Advance();
|
584
|
+
token = Token::WHITESPACE;
|
585
|
+
break;
|
586
|
+
case '{':
|
587
|
+
Advance();
|
588
|
+
token = Token::LBRACE;
|
589
|
+
break;
|
590
|
+
case '}':
|
591
|
+
Advance();
|
592
|
+
token = Token::RBRACE;
|
593
|
+
break;
|
594
|
+
case '[':
|
595
|
+
Advance();
|
596
|
+
token = Token::LBRACK;
|
597
|
+
break;
|
598
|
+
case ']':
|
599
|
+
Advance();
|
600
|
+
token = Token::RBRACK;
|
601
|
+
break;
|
602
|
+
case ':':
|
603
|
+
Advance();
|
604
|
+
token = Token::COLON;
|
605
|
+
break;
|
606
|
+
case ',':
|
607
|
+
Advance();
|
608
|
+
token = Token::COMMA;
|
609
|
+
break;
|
610
|
+
case '"':
|
611
|
+
token = ScanJsonString();
|
612
|
+
break;
|
613
|
+
case '-':
|
614
|
+
case '0':
|
615
|
+
case '1':
|
616
|
+
case '2':
|
617
|
+
case '3':
|
618
|
+
case '4':
|
619
|
+
case '5':
|
620
|
+
case '6':
|
621
|
+
case '7':
|
622
|
+
case '8':
|
623
|
+
case '9':
|
624
|
+
token = ScanJsonNumber();
|
625
|
+
break;
|
626
|
+
case 't':
|
627
|
+
token = ScanJsonIdentifier("true", Token::TRUE_LITERAL);
|
628
|
+
break;
|
629
|
+
case 'f':
|
630
|
+
token = ScanJsonIdentifier("false", Token::FALSE_LITERAL);
|
631
|
+
break;
|
632
|
+
case 'n':
|
633
|
+
token = ScanJsonIdentifier("null", Token::NULL_LITERAL);
|
634
|
+
break;
|
635
|
+
default:
|
636
|
+
if (c0_ < 0) {
|
637
|
+
Advance();
|
638
|
+
token = Token::EOS;
|
639
|
+
} else {
|
640
|
+
Advance();
|
641
|
+
token = Select(Token::ILLEGAL);
|
642
|
+
}
|
643
|
+
}
|
644
|
+
} while (token == Token::WHITESPACE);
|
645
|
+
|
646
|
+
next_.location.end_pos = source_pos();
|
647
|
+
next_.token = token;
|
648
|
+
}
|
649
|
+
|
650
|
+
|
651
|
+
Token::Value Scanner::ScanJsonString() {
|
652
|
+
ASSERT_EQ('"', c0_);
|
653
|
+
Advance();
|
654
|
+
StartLiteral();
|
655
|
+
while (c0_ != '"' && c0_ > 0) {
|
656
|
+
// Check for control character (0x00-0x1f) or unterminated string (<0).
|
657
|
+
if (c0_ < 0x20) return Token::ILLEGAL;
|
658
|
+
if (c0_ != '\\') {
|
659
|
+
AddCharAdvance();
|
660
|
+
} else {
|
661
|
+
Advance();
|
662
|
+
switch (c0_) {
|
663
|
+
case '"':
|
664
|
+
case '\\':
|
665
|
+
case '/':
|
666
|
+
AddChar(c0_);
|
667
|
+
break;
|
668
|
+
case 'b':
|
669
|
+
AddChar('\x08');
|
670
|
+
break;
|
671
|
+
case 'f':
|
672
|
+
AddChar('\x0c');
|
673
|
+
break;
|
674
|
+
case 'n':
|
675
|
+
AddChar('\x0a');
|
676
|
+
break;
|
677
|
+
case 'r':
|
678
|
+
AddChar('\x0d');
|
679
|
+
break;
|
680
|
+
case 't':
|
681
|
+
AddChar('\x09');
|
682
|
+
break;
|
683
|
+
case 'u': {
|
684
|
+
uc32 value = 0;
|
685
|
+
for (int i = 0; i < 4; i++) {
|
686
|
+
Advance();
|
687
|
+
int digit = HexValue(c0_);
|
688
|
+
if (digit < 0) return Token::ILLEGAL;
|
689
|
+
value = value * 16 + digit;
|
690
|
+
}
|
691
|
+
AddChar(value);
|
692
|
+
break;
|
693
|
+
}
|
694
|
+
default:
|
695
|
+
return Token::ILLEGAL;
|
696
|
+
}
|
697
|
+
Advance();
|
698
|
+
}
|
699
|
+
}
|
700
|
+
if (c0_ != '"') {
|
701
|
+
return Token::ILLEGAL;
|
702
|
+
}
|
703
|
+
TerminateLiteral();
|
704
|
+
Advance();
|
705
|
+
return Token::STRING;
|
706
|
+
}
|
707
|
+
|
708
|
+
|
709
|
+
Token::Value Scanner::ScanJsonNumber() {
|
710
|
+
StartLiteral();
|
711
|
+
if (c0_ == '-') AddCharAdvance();
|
712
|
+
if (c0_ == '0') {
|
713
|
+
AddCharAdvance();
|
714
|
+
// Prefix zero is only allowed if it's the only digit before
|
715
|
+
// a decimal point or exponent.
|
716
|
+
if ('0' <= c0_ && c0_ <= '9') return Token::ILLEGAL;
|
717
|
+
} else {
|
718
|
+
if (c0_ < '1' || c0_ > '9') return Token::ILLEGAL;
|
719
|
+
do {
|
720
|
+
AddCharAdvance();
|
721
|
+
} while (c0_ >= '0' && c0_ <= '9');
|
722
|
+
}
|
723
|
+
if (c0_ == '.') {
|
724
|
+
AddCharAdvance();
|
725
|
+
if (c0_ < '0' || c0_ > '9') return Token::ILLEGAL;
|
726
|
+
do {
|
727
|
+
AddCharAdvance();
|
728
|
+
} while (c0_ >= '0' && c0_ <= '9');
|
729
|
+
}
|
730
|
+
if ((c0_ | 0x20) == 'e') {
|
731
|
+
AddCharAdvance();
|
732
|
+
if (c0_ == '-' || c0_ == '+') AddCharAdvance();
|
733
|
+
if (c0_ < '0' || c0_ > '9') return Token::ILLEGAL;
|
734
|
+
do {
|
735
|
+
AddCharAdvance();
|
736
|
+
} while (c0_ >= '0' && c0_ <= '9');
|
737
|
+
}
|
738
|
+
TerminateLiteral();
|
739
|
+
return Token::NUMBER;
|
740
|
+
}
|
741
|
+
|
742
|
+
|
743
|
+
Token::Value Scanner::ScanJsonIdentifier(const char* text,
|
744
|
+
Token::Value token) {
|
745
|
+
StartLiteral();
|
746
|
+
while (*text != '\0') {
|
747
|
+
if (c0_ != *text) return Token::ILLEGAL;
|
748
|
+
Advance();
|
749
|
+
text++;
|
750
|
+
}
|
751
|
+
if (kIsIdentifierPart.get(c0_)) return Token::ILLEGAL;
|
752
|
+
TerminateLiteral();
|
753
|
+
return token;
|
754
|
+
}
|
755
|
+
|
756
|
+
|
757
|
+
void Scanner::ScanJavaScript() {
|
516
758
|
next_.literal_buffer = NULL;
|
517
759
|
Token::Value token;
|
518
760
|
has_line_terminator_before_next_ = false;
|