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
File without changes
|
@@ -60,106 +60,138 @@ namespace internal {
|
|
60
60
|
// lines) rather than one macro (of length about 80 lines) to work around
|
61
61
|
// this problem. Please avoid using recursive macros of this length when
|
62
62
|
// possible.
|
63
|
-
#define STATS_COUNTER_LIST_1(SC)
|
64
|
-
/* Global Handle Count*/
|
65
|
-
SC(global_handles, V8.GlobalHandles)
|
66
|
-
/* Mallocs from PCRE */
|
67
|
-
SC(pcre_mallocs, V8.PcreMallocCount)
|
68
|
-
/* OS Memory allocated */
|
69
|
-
SC(memory_allocated, V8.OsMemoryAllocated)
|
70
|
-
SC(props_to_dictionary, V8.ObjectPropertiesToDictionary)
|
71
|
-
SC(elements_to_dictionary, V8.ObjectElementsToDictionary)
|
72
|
-
SC(alive_after_last_gc, V8.AliveAfterLastGC)
|
73
|
-
SC(objs_since_last_young, V8.ObjsSinceLastYoung)
|
74
|
-
SC(objs_since_last_full, V8.ObjsSinceLastFull)
|
75
|
-
SC(symbol_table_capacity, V8.SymbolTableCapacity)
|
76
|
-
SC(number_of_symbols, V8.NumberOfSymbols)
|
77
|
-
SC(script_wrappers, V8.ScriptWrappers)
|
78
|
-
SC(call_initialize_stubs, V8.CallInitializeStubs)
|
79
|
-
SC(call_premonomorphic_stubs, V8.CallPreMonomorphicStubs)
|
80
|
-
SC(call_normal_stubs, V8.CallNormalStubs)
|
81
|
-
SC(call_megamorphic_stubs, V8.CallMegamorphicStubs)
|
82
|
-
SC(arguments_adaptors, V8.ArgumentsAdaptors)
|
83
|
-
SC(compilation_cache_hits, V8.CompilationCacheHits)
|
84
|
-
SC(compilation_cache_misses, V8.CompilationCacheMisses)
|
85
|
-
SC(regexp_cache_hits, V8.RegExpCacheHits)
|
86
|
-
SC(regexp_cache_misses, V8.RegExpCacheMisses)
|
87
|
-
/* Amount of evaled source code. */
|
88
|
-
SC(total_eval_size, V8.TotalEvalSize)
|
89
|
-
/* Amount of loaded source code. */
|
90
|
-
SC(total_load_size, V8.TotalLoadSize)
|
91
|
-
/* Amount of parsed source code. */
|
92
|
-
SC(total_parse_size, V8.TotalParseSize)
|
93
|
-
/* Amount of source code skipped over using preparsing. */
|
94
|
-
SC(total_preparse_skipped, V8.TotalPreparseSkipped)
|
95
|
-
/* Amount of compiled source code. */
|
96
|
-
SC(total_compile_size, V8.TotalCompileSize)
|
63
|
+
#define STATS_COUNTER_LIST_1(SC) \
|
64
|
+
/* Global Handle Count*/ \
|
65
|
+
SC(global_handles, V8.GlobalHandles) \
|
66
|
+
/* Mallocs from PCRE */ \
|
67
|
+
SC(pcre_mallocs, V8.PcreMallocCount) \
|
68
|
+
/* OS Memory allocated */ \
|
69
|
+
SC(memory_allocated, V8.OsMemoryAllocated) \
|
70
|
+
SC(props_to_dictionary, V8.ObjectPropertiesToDictionary) \
|
71
|
+
SC(elements_to_dictionary, V8.ObjectElementsToDictionary) \
|
72
|
+
SC(alive_after_last_gc, V8.AliveAfterLastGC) \
|
73
|
+
SC(objs_since_last_young, V8.ObjsSinceLastYoung) \
|
74
|
+
SC(objs_since_last_full, V8.ObjsSinceLastFull) \
|
75
|
+
SC(symbol_table_capacity, V8.SymbolTableCapacity) \
|
76
|
+
SC(number_of_symbols, V8.NumberOfSymbols) \
|
77
|
+
SC(script_wrappers, V8.ScriptWrappers) \
|
78
|
+
SC(call_initialize_stubs, V8.CallInitializeStubs) \
|
79
|
+
SC(call_premonomorphic_stubs, V8.CallPreMonomorphicStubs) \
|
80
|
+
SC(call_normal_stubs, V8.CallNormalStubs) \
|
81
|
+
SC(call_megamorphic_stubs, V8.CallMegamorphicStubs) \
|
82
|
+
SC(arguments_adaptors, V8.ArgumentsAdaptors) \
|
83
|
+
SC(compilation_cache_hits, V8.CompilationCacheHits) \
|
84
|
+
SC(compilation_cache_misses, V8.CompilationCacheMisses) \
|
85
|
+
SC(regexp_cache_hits, V8.RegExpCacheHits) \
|
86
|
+
SC(regexp_cache_misses, V8.RegExpCacheMisses) \
|
87
|
+
/* Amount of evaled source code. */ \
|
88
|
+
SC(total_eval_size, V8.TotalEvalSize) \
|
89
|
+
/* Amount of loaded source code. */ \
|
90
|
+
SC(total_load_size, V8.TotalLoadSize) \
|
91
|
+
/* Amount of parsed source code. */ \
|
92
|
+
SC(total_parse_size, V8.TotalParseSize) \
|
93
|
+
/* Amount of source code skipped over using preparsing. */ \
|
94
|
+
SC(total_preparse_skipped, V8.TotalPreparseSkipped) \
|
95
|
+
/* Amount of compiled source code. */ \
|
96
|
+
SC(total_compile_size, V8.TotalCompileSize) \
|
97
|
+
/* Amount of source code compiled with the old codegen. */ \
|
98
|
+
SC(total_old_codegen_source_size, V8.TotalOldCodegenSourceSize) \
|
99
|
+
/* Amount of source code compiled with the full codegen. */ \
|
100
|
+
SC(total_full_codegen_source_size, V8.TotalFullCodegenSourceSize) \
|
101
|
+
/* Number of contexts created from scratch. */ \
|
102
|
+
SC(contexts_created_from_scratch, V8.ContextsCreatedFromScratch) \
|
103
|
+
/* Number of contexts created by partial snapshot. */ \
|
104
|
+
SC(contexts_created_by_snapshot, V8.ContextsCreatedBySnapshot)
|
97
105
|
|
98
106
|
|
99
|
-
#define STATS_COUNTER_LIST_2(SC)
|
100
|
-
/* Number of code stubs. */
|
101
|
-
SC(code_stubs, V8.CodeStubs)
|
102
|
-
/* Amount of stub code. */
|
103
|
-
SC(total_stubs_code_size, V8.TotalStubsCodeSize)
|
104
|
-
/* Amount of (JS) compiled code. */
|
105
|
-
SC(total_compiled_code_size, V8.TotalCompiledCodeSize)
|
106
|
-
SC(gc_compactor_caused_by_request, V8.GCCompactorCausedByRequest)
|
107
|
-
SC(gc_compactor_caused_by_promoted_data,
|
108
|
-
V8.GCCompactorCausedByPromotedData)
|
109
|
-
SC(gc_compactor_caused_by_oldspace_exhaustion,
|
110
|
-
V8.GCCompactorCausedByOldspaceExhaustion)
|
111
|
-
SC(gc_compactor_caused_by_weak_handles,
|
112
|
-
V8.GCCompactorCausedByWeakHandles)
|
113
|
-
SC(gc_last_resort_from_js, V8.GCLastResortFromJS)
|
114
|
-
SC(gc_last_resort_from_handles, V8.GCLastResortFromHandles)
|
115
|
-
/* How is the generic keyed-load stub used? */
|
116
|
-
SC(keyed_load_generic_smi, V8.KeyedLoadGenericSmi)
|
117
|
-
SC(keyed_load_generic_symbol, V8.KeyedLoadGenericSymbol)
|
118
|
-
SC(keyed_load_generic_slow, V8.KeyedLoadGenericSlow)
|
119
|
-
SC(keyed_load_external_array_slow, V8.KeyedLoadExternalArraySlow)
|
120
|
-
/* Count how much the monomorphic keyed-load stubs are hit. */
|
121
|
-
SC(keyed_load_function_prototype, V8.KeyedLoadFunctionPrototype)
|
122
|
-
SC(keyed_load_string_length, V8.KeyedLoadStringLength)
|
123
|
-
SC(keyed_load_array_length, V8.KeyedLoadArrayLength)
|
124
|
-
SC(keyed_load_constant_function, V8.KeyedLoadConstantFunction)
|
125
|
-
SC(keyed_load_field, V8.KeyedLoadField)
|
126
|
-
SC(keyed_load_callback, V8.KeyedLoadCallback)
|
127
|
-
SC(keyed_load_interceptor, V8.KeyedLoadInterceptor)
|
128
|
-
SC(keyed_load_inline, V8.KeyedLoadInline)
|
129
|
-
SC(keyed_load_inline_miss, V8.KeyedLoadInlineMiss)
|
130
|
-
SC(named_load_inline, V8.NamedLoadInline)
|
131
|
-
SC(named_load_inline_miss, V8.NamedLoadInlineMiss)
|
132
|
-
SC(named_load_global_inline, V8.NamedLoadGlobalInline)
|
133
|
-
SC(named_load_global_inline_miss, V8.NamedLoadGlobalInlineMiss)
|
134
|
-
SC(keyed_store_field, V8.KeyedStoreField)
|
135
|
-
SC(keyed_store_inline, V8.KeyedStoreInline)
|
136
|
-
SC(keyed_store_inline_miss, V8.KeyedStoreInlineMiss)
|
137
|
-
SC(named_store_global_inline, V8.NamedStoreGlobalInline)
|
138
|
-
SC(named_store_global_inline_miss, V8.NamedStoreGlobalInlineMiss)
|
139
|
-
SC(
|
140
|
-
SC(
|
141
|
-
SC(
|
142
|
-
SC(
|
143
|
-
SC(
|
144
|
-
SC(
|
145
|
-
SC(
|
146
|
-
SC(
|
147
|
-
SC(
|
148
|
-
SC(
|
149
|
-
SC(
|
150
|
-
SC(
|
151
|
-
SC(
|
152
|
-
SC(
|
153
|
-
SC(
|
154
|
-
SC(
|
155
|
-
SC(
|
156
|
-
SC(
|
157
|
-
SC(
|
158
|
-
SC(
|
159
|
-
SC(
|
160
|
-
SC(
|
161
|
-
SC(
|
162
|
-
SC(
|
107
|
+
#define STATS_COUNTER_LIST_2(SC) \
|
108
|
+
/* Number of code stubs. */ \
|
109
|
+
SC(code_stubs, V8.CodeStubs) \
|
110
|
+
/* Amount of stub code. */ \
|
111
|
+
SC(total_stubs_code_size, V8.TotalStubsCodeSize) \
|
112
|
+
/* Amount of (JS) compiled code. */ \
|
113
|
+
SC(total_compiled_code_size, V8.TotalCompiledCodeSize) \
|
114
|
+
SC(gc_compactor_caused_by_request, V8.GCCompactorCausedByRequest) \
|
115
|
+
SC(gc_compactor_caused_by_promoted_data, \
|
116
|
+
V8.GCCompactorCausedByPromotedData) \
|
117
|
+
SC(gc_compactor_caused_by_oldspace_exhaustion, \
|
118
|
+
V8.GCCompactorCausedByOldspaceExhaustion) \
|
119
|
+
SC(gc_compactor_caused_by_weak_handles, \
|
120
|
+
V8.GCCompactorCausedByWeakHandles) \
|
121
|
+
SC(gc_last_resort_from_js, V8.GCLastResortFromJS) \
|
122
|
+
SC(gc_last_resort_from_handles, V8.GCLastResortFromHandles) \
|
123
|
+
/* How is the generic keyed-load stub used? */ \
|
124
|
+
SC(keyed_load_generic_smi, V8.KeyedLoadGenericSmi) \
|
125
|
+
SC(keyed_load_generic_symbol, V8.KeyedLoadGenericSymbol) \
|
126
|
+
SC(keyed_load_generic_slow, V8.KeyedLoadGenericSlow) \
|
127
|
+
SC(keyed_load_external_array_slow, V8.KeyedLoadExternalArraySlow) \
|
128
|
+
/* Count how much the monomorphic keyed-load stubs are hit. */ \
|
129
|
+
SC(keyed_load_function_prototype, V8.KeyedLoadFunctionPrototype) \
|
130
|
+
SC(keyed_load_string_length, V8.KeyedLoadStringLength) \
|
131
|
+
SC(keyed_load_array_length, V8.KeyedLoadArrayLength) \
|
132
|
+
SC(keyed_load_constant_function, V8.KeyedLoadConstantFunction) \
|
133
|
+
SC(keyed_load_field, V8.KeyedLoadField) \
|
134
|
+
SC(keyed_load_callback, V8.KeyedLoadCallback) \
|
135
|
+
SC(keyed_load_interceptor, V8.KeyedLoadInterceptor) \
|
136
|
+
SC(keyed_load_inline, V8.KeyedLoadInline) \
|
137
|
+
SC(keyed_load_inline_miss, V8.KeyedLoadInlineMiss) \
|
138
|
+
SC(named_load_inline, V8.NamedLoadInline) \
|
139
|
+
SC(named_load_inline_miss, V8.NamedLoadInlineMiss) \
|
140
|
+
SC(named_load_global_inline, V8.NamedLoadGlobalInline) \
|
141
|
+
SC(named_load_global_inline_miss, V8.NamedLoadGlobalInlineMiss) \
|
142
|
+
SC(keyed_store_field, V8.KeyedStoreField) \
|
143
|
+
SC(keyed_store_inline, V8.KeyedStoreInline) \
|
144
|
+
SC(keyed_store_inline_miss, V8.KeyedStoreInlineMiss) \
|
145
|
+
SC(named_store_global_inline, V8.NamedStoreGlobalInline) \
|
146
|
+
SC(named_store_global_inline_miss, V8.NamedStoreGlobalInlineMiss) \
|
147
|
+
SC(call_const, V8.CallConst) \
|
148
|
+
SC(call_const_fast_api, V8.CallConstFastApi) \
|
149
|
+
SC(call_const_interceptor, V8.CallConstInterceptor) \
|
150
|
+
SC(call_const_interceptor_fast_api, V8.CallConstInterceptorFastApi) \
|
151
|
+
SC(call_global_inline, V8.CallGlobalInline) \
|
152
|
+
SC(call_global_inline_miss, V8.CallGlobalInlineMiss) \
|
153
|
+
SC(constructed_objects, V8.ConstructedObjects) \
|
154
|
+
SC(constructed_objects_runtime, V8.ConstructedObjectsRuntime) \
|
155
|
+
SC(constructed_objects_stub, V8.ConstructedObjectsStub) \
|
156
|
+
SC(array_function_runtime, V8.ArrayFunctionRuntime) \
|
157
|
+
SC(array_function_native, V8.ArrayFunctionNative) \
|
158
|
+
SC(for_in, V8.ForIn) \
|
159
|
+
SC(enum_cache_hits, V8.EnumCacheHits) \
|
160
|
+
SC(enum_cache_misses, V8.EnumCacheMisses) \
|
161
|
+
SC(reloc_info_count, V8.RelocInfoCount) \
|
162
|
+
SC(reloc_info_size, V8.RelocInfoSize) \
|
163
|
+
SC(zone_segment_bytes, V8.ZoneSegmentBytes) \
|
164
|
+
SC(compute_entry_frame, V8.ComputeEntryFrame) \
|
165
|
+
SC(generic_binary_stub_calls, V8.GenericBinaryStubCalls) \
|
166
|
+
SC(generic_binary_stub_calls_regs, V8.GenericBinaryStubCallsRegs) \
|
167
|
+
SC(string_add_runtime, V8.StringAddRuntime) \
|
168
|
+
SC(string_add_native, V8.StringAddNative) \
|
169
|
+
SC(string_add_runtime_ext_to_ascii, V8.StringAddRuntimeExtToAscii) \
|
170
|
+
SC(sub_string_runtime, V8.SubStringRuntime) \
|
171
|
+
SC(sub_string_native, V8.SubStringNative) \
|
172
|
+
SC(string_compare_native, V8.StringCompareNative) \
|
173
|
+
SC(string_compare_runtime, V8.StringCompareRuntime) \
|
174
|
+
SC(regexp_entry_runtime, V8.RegExpEntryRuntime) \
|
175
|
+
SC(regexp_entry_native, V8.RegExpEntryNative) \
|
176
|
+
SC(number_to_string_native, V8.NumberToStringNative) \
|
177
|
+
SC(number_to_string_runtime, V8.NumberToStringRuntime) \
|
178
|
+
SC(math_acos, V8.MathAcos) \
|
179
|
+
SC(math_asin, V8.MathAsin) \
|
180
|
+
SC(math_atan, V8.MathAtan) \
|
181
|
+
SC(math_atan2, V8.MathAtan2) \
|
182
|
+
SC(math_ceil, V8.MathCeil) \
|
183
|
+
SC(math_cos, V8.MathCos) \
|
184
|
+
SC(math_exp, V8.MathExp) \
|
185
|
+
SC(math_floor, V8.MathFloor) \
|
186
|
+
SC(math_log, V8.MathLog) \
|
187
|
+
SC(math_pow, V8.MathPow) \
|
188
|
+
SC(math_round, V8.MathRound) \
|
189
|
+
SC(math_sin, V8.MathSin) \
|
190
|
+
SC(math_sqrt, V8.MathSqrt) \
|
191
|
+
SC(math_tan, V8.MathTan) \
|
192
|
+
SC(transcendental_cache_hit, V8.TranscendentalCacheHit) \
|
193
|
+
SC(transcendental_cache_miss, V8.TranscendentalCacheMiss)
|
194
|
+
|
163
195
|
|
164
196
|
// This file contains all the v8 counters that are in use.
|
165
197
|
class Counters : AllStatic {
|
@@ -43,7 +43,7 @@ bool V8::has_been_setup_ = false;
|
|
43
43
|
bool V8::has_been_disposed_ = false;
|
44
44
|
bool V8::has_fatal_error_ = false;
|
45
45
|
|
46
|
-
bool V8::Initialize(Deserializer
|
46
|
+
bool V8::Initialize(Deserializer* des) {
|
47
47
|
bool create_heap_objects = des == NULL;
|
48
48
|
if (has_been_disposed_ || has_fatal_error_) return false;
|
49
49
|
if (IsRunning()) return true;
|
@@ -60,6 +60,8 @@ bool V8::Initialize(Deserializer *des) {
|
|
60
60
|
// Enable logging before setting up the heap
|
61
61
|
Logger::Setup();
|
62
62
|
|
63
|
+
CpuProfiler::Setup();
|
64
|
+
|
63
65
|
// Setup the platform OS support.
|
64
66
|
OS::Setup();
|
65
67
|
|
@@ -114,8 +116,11 @@ bool V8::Initialize(Deserializer *des) {
|
|
114
116
|
|
115
117
|
OProfileAgent::Initialize();
|
116
118
|
|
117
|
-
|
119
|
+
// If we are deserializing, log non-function code objects and compiled
|
120
|
+
// functions found in the snapshot.
|
121
|
+
if (des != NULL && FLAG_log_code) {
|
118
122
|
HandleScope scope;
|
123
|
+
LOG(LogCodeObjects());
|
119
124
|
LOG(LogCompiledFunctions());
|
120
125
|
}
|
121
126
|
|
@@ -145,6 +150,9 @@ void V8::TearDown() {
|
|
145
150
|
Top::TearDown();
|
146
151
|
|
147
152
|
Heap::TearDown();
|
153
|
+
|
154
|
+
CpuProfiler::TearDown();
|
155
|
+
|
148
156
|
Logger::TearDown();
|
149
157
|
|
150
158
|
is_running_ = false;
|
@@ -152,6 +160,14 @@ void V8::TearDown() {
|
|
152
160
|
}
|
153
161
|
|
154
162
|
|
163
|
+
static uint32_t random_seed() {
|
164
|
+
if (FLAG_random_seed == 0) {
|
165
|
+
return random();
|
166
|
+
}
|
167
|
+
return FLAG_random_seed;
|
168
|
+
}
|
169
|
+
|
170
|
+
|
155
171
|
uint32_t V8::Random() {
|
156
172
|
// Random number generator using George Marsaglia's MWC algorithm.
|
157
173
|
static uint32_t hi = 0;
|
@@ -161,8 +177,8 @@ uint32_t V8::Random() {
|
|
161
177
|
// should ever become zero again, or if random() returns zero, we
|
162
178
|
// avoid getting stuck with zero bits in hi or lo by re-initializing
|
163
179
|
// them on demand.
|
164
|
-
if (hi == 0) hi =
|
165
|
-
if (lo == 0) lo =
|
180
|
+
if (hi == 0) hi = random_seed();
|
181
|
+
if (lo == 0) lo = random_seed();
|
166
182
|
|
167
183
|
// Mix the bits.
|
168
184
|
hi = 36969 * (hi & 0xFFFF) + (hi >> 16);
|
@@ -180,14 +196,29 @@ bool V8::IdleNotification() {
|
|
180
196
|
return Heap::IdleNotification();
|
181
197
|
}
|
182
198
|
|
183
|
-
static const uint32_t kRandomPositiveSmiMax = 0x3fffffff;
|
184
199
|
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
200
|
+
// Use a union type to avoid type-aliasing optimizations in GCC.
|
201
|
+
typedef union {
|
202
|
+
double double_value;
|
203
|
+
uint64_t uint64_t_value;
|
204
|
+
} double_int_union;
|
205
|
+
|
206
|
+
|
207
|
+
Object* V8::FillHeapNumberWithRandom(Object* heap_number) {
|
208
|
+
uint64_t random_bits = Random();
|
209
|
+
// Make a double* from address (heap_number + sizeof(double)).
|
210
|
+
double_int_union* r = reinterpret_cast<double_int_union*>(
|
211
|
+
reinterpret_cast<char*>(heap_number) +
|
212
|
+
HeapNumber::kValueOffset - kHeapObjectTag);
|
213
|
+
// Convert 32 random bits to 0.(32 random bits) in a double
|
214
|
+
// by computing:
|
215
|
+
// ( 1.(20 0s)(32 random bits) x 2^20 ) - (1.0 x 2^20)).
|
216
|
+
const double binary_million = 1048576.0;
|
217
|
+
r->double_value = binary_million;
|
218
|
+
r->uint64_t_value |= random_bits;
|
219
|
+
r->double_value -= binary_million;
|
220
|
+
|
221
|
+
return heap_number;
|
191
222
|
}
|
192
223
|
|
193
224
|
} } // namespace v8::internal
|
@@ -67,7 +67,9 @@
|
|
67
67
|
#include "spaces-inl.h"
|
68
68
|
#include "heap-inl.h"
|
69
69
|
#include "log-inl.h"
|
70
|
-
#include "
|
70
|
+
#include "cpu-profiler-inl.h"
|
71
|
+
#include "handles-inl.h"
|
72
|
+
#include "vm-state-inl.h"
|
71
73
|
|
72
74
|
namespace v8 {
|
73
75
|
namespace internal {
|
@@ -94,7 +96,7 @@ class V8 : public AllStatic {
|
|
94
96
|
|
95
97
|
// Random number generation support. Not cryptographically safe.
|
96
98
|
static uint32_t Random();
|
97
|
-
static
|
99
|
+
static Object* FillHeapNumberWithRandom(Object* heap_number);
|
98
100
|
|
99
101
|
// Idle notification directly from the API.
|
100
102
|
static bool IdleNotification();
|
@@ -54,9 +54,10 @@ function InstallFunctions(object, attributes, functions) {
|
|
54
54
|
var key = functions[i];
|
55
55
|
var f = functions[i + 1];
|
56
56
|
%FunctionSetName(f, key);
|
57
|
+
%FunctionRemovePrototype(f);
|
57
58
|
%SetProperty(object, key, f, attributes);
|
58
59
|
}
|
59
|
-
%
|
60
|
+
%ToFastProperties(object);
|
60
61
|
}
|
61
62
|
|
62
63
|
// Emulates JSC by installing functions on a hidden prototype that
|
@@ -82,7 +83,10 @@ function GlobalIsNaN(number) {
|
|
82
83
|
|
83
84
|
// ECMA 262 - 15.1.5
|
84
85
|
function GlobalIsFinite(number) {
|
85
|
-
|
86
|
+
if (!IS_NUMBER(number)) number = ToNumber(number);
|
87
|
+
|
88
|
+
// NaN - NaN == NaN, Infinity - Infinity == NaN, -Infinity - -Infinity == NaN.
|
89
|
+
return %_IsSmi(number) || number - number == 0;
|
86
90
|
}
|
87
91
|
|
88
92
|
|
@@ -197,7 +201,7 @@ $Object.prototype.constructor = $Object;
|
|
197
201
|
|
198
202
|
// ECMA-262 - 15.2.4.2
|
199
203
|
function ObjectToString() {
|
200
|
-
return "[object " + %_ClassOf(this) + "]";
|
204
|
+
return "[object " + %_ClassOf(ToObject(this)) + "]";
|
201
205
|
}
|
202
206
|
|
203
207
|
|
@@ -209,7 +213,7 @@ function ObjectToLocaleString() {
|
|
209
213
|
|
210
214
|
// ECMA-262 - 15.2.4.4
|
211
215
|
function ObjectValueOf() {
|
212
|
-
return this;
|
216
|
+
return ToObject(this);
|
213
217
|
}
|
214
218
|
|
215
219
|
|
@@ -221,7 +225,7 @@ function ObjectHasOwnProperty(V) {
|
|
221
225
|
|
222
226
|
// ECMA-262 - 15.2.4.6
|
223
227
|
function ObjectIsPrototypeOf(V) {
|
224
|
-
if (!IS_OBJECT(V) && !IS_FUNCTION(V)) return false;
|
228
|
+
if (!IS_OBJECT(V) && !IS_FUNCTION(V) && !IS_UNDETECTABLE(V)) return false;
|
225
229
|
return %IsInPrototypeChain(this, V);
|
226
230
|
}
|
227
231
|
|
@@ -236,7 +240,7 @@ function ObjectPropertyIsEnumerable(V) {
|
|
236
240
|
|
237
241
|
// Extensions for providing property getters and setters.
|
238
242
|
function ObjectDefineGetter(name, fun) {
|
239
|
-
if (this == null) {
|
243
|
+
if (this == null && !IS_UNDETECTABLE(this)) {
|
240
244
|
throw new $TypeError('Object.prototype.__defineGetter__: this is Null');
|
241
245
|
}
|
242
246
|
if (!IS_FUNCTION(fun)) {
|
@@ -247,7 +251,7 @@ function ObjectDefineGetter(name, fun) {
|
|
247
251
|
|
248
252
|
|
249
253
|
function ObjectLookupGetter(name) {
|
250
|
-
if (this == null) {
|
254
|
+
if (this == null && !IS_UNDETECTABLE(this)) {
|
251
255
|
throw new $TypeError('Object.prototype.__lookupGetter__: this is Null');
|
252
256
|
}
|
253
257
|
return %LookupAccessor(ToObject(this), ToString(name), GETTER);
|
@@ -255,7 +259,7 @@ function ObjectLookupGetter(name) {
|
|
255
259
|
|
256
260
|
|
257
261
|
function ObjectDefineSetter(name, fun) {
|
258
|
-
if (this == null) {
|
262
|
+
if (this == null && !IS_UNDETECTABLE(this)) {
|
259
263
|
throw new $TypeError('Object.prototype.__defineSetter__: this is Null');
|
260
264
|
}
|
261
265
|
if (!IS_FUNCTION(fun)) {
|
@@ -267,7 +271,7 @@ function ObjectDefineSetter(name, fun) {
|
|
267
271
|
|
268
272
|
|
269
273
|
function ObjectLookupSetter(name) {
|
270
|
-
if (this == null) {
|
274
|
+
if (this == null && !IS_UNDETECTABLE(this)) {
|
271
275
|
throw new $TypeError('Object.prototype.__lookupSetter__: this is Null');
|
272
276
|
}
|
273
277
|
return %LookupAccessor(ToObject(this), ToString(name), SETTER);
|
@@ -275,8 +279,9 @@ function ObjectLookupSetter(name) {
|
|
275
279
|
|
276
280
|
|
277
281
|
function ObjectKeys(obj) {
|
278
|
-
if ((!IS_OBJECT(obj) || IS_NULL_OR_UNDEFINED(obj)) && !IS_FUNCTION(obj)
|
279
|
-
|
282
|
+
if ((!IS_OBJECT(obj) || IS_NULL_OR_UNDEFINED(obj)) && !IS_FUNCTION(obj) &&
|
283
|
+
!IS_UNDETECTABLE(obj))
|
284
|
+
throw MakeTypeError("obj_ctor_property_non_object", ["keys"]);
|
280
285
|
return %LocalKeys(obj);
|
281
286
|
}
|
282
287
|
|
@@ -307,7 +312,7 @@ function IsInconsistentDescriptor(desc) {
|
|
307
312
|
|
308
313
|
// ES5 8.10.4
|
309
314
|
function FromPropertyDescriptor(desc) {
|
310
|
-
if(IS_UNDEFINED(desc)) return desc;
|
315
|
+
if (IS_UNDEFINED(desc)) return desc;
|
311
316
|
var obj = new $Object();
|
312
317
|
if (IsDataDescriptor(desc)) {
|
313
318
|
obj.value = desc.getValue();
|
@@ -333,7 +338,6 @@ function ToPropertyDescriptor(obj) {
|
|
333
338
|
desc.setEnumerable(ToBoolean(obj.enumerable));
|
334
339
|
}
|
335
340
|
|
336
|
-
|
337
341
|
if ("configurable" in obj) {
|
338
342
|
desc.setConfigurable(ToBoolean(obj.configurable));
|
339
343
|
}
|
@@ -377,7 +381,9 @@ function PropertyDescriptor() {
|
|
377
381
|
this.writable_ = false;
|
378
382
|
this.hasWritable_ = false;
|
379
383
|
this.enumerable_ = false;
|
384
|
+
this.hasEnumerable_ = false;
|
380
385
|
this.configurable_ = false;
|
386
|
+
this.hasConfigurable_ = false;
|
381
387
|
this.get_ = void 0;
|
382
388
|
this.hasGetter_ = false;
|
383
389
|
this.set_ = void 0;
|
@@ -396,8 +402,14 @@ PropertyDescriptor.prototype.getValue = function() {
|
|
396
402
|
}
|
397
403
|
|
398
404
|
|
405
|
+
PropertyDescriptor.prototype.hasValue = function() {
|
406
|
+
return this.hasValue_;
|
407
|
+
}
|
408
|
+
|
409
|
+
|
399
410
|
PropertyDescriptor.prototype.setEnumerable = function(enumerable) {
|
400
411
|
this.enumerable_ = enumerable;
|
412
|
+
this.hasEnumerable_ = true;
|
401
413
|
}
|
402
414
|
|
403
415
|
|
@@ -406,6 +418,11 @@ PropertyDescriptor.prototype.isEnumerable = function () {
|
|
406
418
|
}
|
407
419
|
|
408
420
|
|
421
|
+
PropertyDescriptor.prototype.hasEnumerable = function() {
|
422
|
+
return this.hasEnumerable_;
|
423
|
+
}
|
424
|
+
|
425
|
+
|
409
426
|
PropertyDescriptor.prototype.setWritable = function(writable) {
|
410
427
|
this.writable_ = writable;
|
411
428
|
this.hasWritable_ = true;
|
@@ -419,6 +436,12 @@ PropertyDescriptor.prototype.isWritable = function() {
|
|
419
436
|
|
420
437
|
PropertyDescriptor.prototype.setConfigurable = function(configurable) {
|
421
438
|
this.configurable_ = configurable;
|
439
|
+
this.hasConfigurable_ = true;
|
440
|
+
}
|
441
|
+
|
442
|
+
|
443
|
+
PropertyDescriptor.prototype.hasConfigurable = function() {
|
444
|
+
return this.hasConfigurable_;
|
422
445
|
}
|
423
446
|
|
424
447
|
|
@@ -438,6 +461,11 @@ PropertyDescriptor.prototype.getGet = function() {
|
|
438
461
|
}
|
439
462
|
|
440
463
|
|
464
|
+
PropertyDescriptor.prototype.hasGetter = function() {
|
465
|
+
return this.hasGetter_;
|
466
|
+
}
|
467
|
+
|
468
|
+
|
441
469
|
PropertyDescriptor.prototype.setSet = function(set) {
|
442
470
|
this.set_ = set;
|
443
471
|
this.hasSetter_ = true;
|
@@ -449,17 +477,22 @@ PropertyDescriptor.prototype.getSet = function() {
|
|
449
477
|
}
|
450
478
|
|
451
479
|
|
480
|
+
PropertyDescriptor.prototype.hasSetter = function() {
|
481
|
+
return this.hasSetter_;
|
482
|
+
}
|
483
|
+
|
484
|
+
|
485
|
+
|
452
486
|
// ES5 section 8.12.1.
|
453
487
|
function GetOwnProperty(obj, p) {
|
454
488
|
var desc = new PropertyDescriptor();
|
455
|
-
|
489
|
+
|
456
490
|
// An array with:
|
457
491
|
// obj is a data property [false, value, Writeable, Enumerable, Configurable]
|
458
492
|
// obj is an accessor [true, Get, Set, Enumerable, Configurable]
|
459
493
|
var props = %GetOwnProperty(ToObject(obj), ToString(p));
|
460
494
|
|
461
|
-
if (IS_UNDEFINED(props))
|
462
|
-
return void 0;
|
495
|
+
if (IS_UNDEFINED(props)) return void 0;
|
463
496
|
|
464
497
|
// This is an accessor
|
465
498
|
if (props[0]) {
|
@@ -476,16 +509,89 @@ function GetOwnProperty(obj, p) {
|
|
476
509
|
}
|
477
510
|
|
478
511
|
|
479
|
-
// ES5 8.12.
|
480
|
-
|
512
|
+
// ES5 section 8.12.2.
|
513
|
+
function GetProperty(obj, p) {
|
514
|
+
var prop = GetOwnProperty(obj);
|
515
|
+
if (!IS_UNDEFINED(prop)) return prop;
|
516
|
+
var proto = obj.__proto__;
|
517
|
+
if (IS_NULL(proto)) return void 0;
|
518
|
+
return GetProperty(proto, p);
|
519
|
+
}
|
520
|
+
|
521
|
+
|
522
|
+
// ES5 section 8.12.6
|
523
|
+
function HasProperty(obj, p) {
|
524
|
+
var desc = GetProperty(obj, p);
|
525
|
+
return IS_UNDEFINED(desc) ? false : true;
|
526
|
+
}
|
527
|
+
|
528
|
+
|
529
|
+
// ES5 8.12.9.
|
481
530
|
function DefineOwnProperty(obj, p, desc, should_throw) {
|
482
|
-
var
|
483
|
-
|
484
|
-
|
485
|
-
|
531
|
+
var current = GetOwnProperty(obj, p);
|
532
|
+
var extensible = %IsExtensible(ToObject(obj));
|
533
|
+
|
534
|
+
// Error handling according to spec.
|
535
|
+
// Step 3
|
536
|
+
if (IS_UNDEFINED(current) && !extensible)
|
537
|
+
throw MakeTypeError("define_disallowed", ["defineProperty"]);
|
538
|
+
|
539
|
+
if (!IS_UNDEFINED(current) && !current.isConfigurable()) {
|
540
|
+
// Step 7
|
541
|
+
if (desc.isConfigurable() || desc.isEnumerable() != current.isEnumerable())
|
542
|
+
throw MakeTypeError("redefine_disallowed", ["defineProperty"]);
|
543
|
+
// Step 9
|
544
|
+
if (IsDataDescriptor(current) != IsDataDescriptor(desc))
|
545
|
+
throw MakeTypeError("redefine_disallowed", ["defineProperty"]);
|
546
|
+
// Step 10
|
547
|
+
if (IsDataDescriptor(current) && IsDataDescriptor(desc)) {
|
548
|
+
if (!current.isWritable() && desc.isWritable())
|
549
|
+
throw MakeTypeError("redefine_disallowed", ["defineProperty"]);
|
550
|
+
if (!current.isWritable() && desc.hasValue() &&
|
551
|
+
!SameValue(desc.getValue(), current.getValue())) {
|
552
|
+
throw MakeTypeError("redefine_disallowed", ["defineProperty"]);
|
553
|
+
}
|
554
|
+
}
|
555
|
+
// Step 11
|
556
|
+
if (IsAccessorDescriptor(desc) && IsAccessorDescriptor(current)) {
|
557
|
+
if (desc.hasSetter() && !SameValue(desc.getSet(), current.getSet())){
|
558
|
+
throw MakeTypeError("redefine_disallowed", ["defineProperty"]);
|
559
|
+
}
|
560
|
+
if (desc.hasGetter() && !SameValue(desc.getGet(),current.getGet()))
|
561
|
+
throw MakeTypeError("redefine_disallowed", ["defineProperty"]);
|
562
|
+
}
|
563
|
+
}
|
564
|
+
|
565
|
+
// Send flags - enumerable and configurable are common - writable is
|
566
|
+
// only send to the data descriptor.
|
567
|
+
// Take special care if enumerable and configurable is not defined on
|
568
|
+
// desc (we need to preserve the existing values from current).
|
569
|
+
var flag = NONE;
|
570
|
+
if (desc.hasEnumerable()) {
|
571
|
+
flag |= desc.isEnumerable() ? 0 : DONT_ENUM;
|
572
|
+
} else if (!IS_UNDEFINED(current)) {
|
573
|
+
flag |= current.isEnumerable() ? 0 : DONT_ENUM;
|
486
574
|
} else {
|
487
|
-
|
488
|
-
|
575
|
+
flag |= DONT_ENUM;
|
576
|
+
}
|
577
|
+
|
578
|
+
if (desc.hasConfigurable()) {
|
579
|
+
flag |= desc.isConfigurable() ? 0 : DONT_DELETE;
|
580
|
+
} else if (!IS_UNDEFINED(current)) {
|
581
|
+
flag |= current.isConfigurable() ? 0 : DONT_DELETE;
|
582
|
+
} else
|
583
|
+
flag |= DONT_DELETE;
|
584
|
+
|
585
|
+
if (IsDataDescriptor(desc) || IsGenericDescriptor(desc)) {
|
586
|
+
flag |= desc.isWritable() ? 0 : READ_ONLY;
|
587
|
+
%DefineOrRedefineDataProperty(obj, p, desc.getValue(), flag);
|
588
|
+
} else {
|
589
|
+
if (desc.hasGetter() && IS_FUNCTION(desc.getGet())) {
|
590
|
+
%DefineOrRedefineAccessorProperty(obj, p, GETTER, desc.getGet(), flag);
|
591
|
+
}
|
592
|
+
if (desc.hasSetter() && IS_FUNCTION(desc.getSet())) {
|
593
|
+
%DefineOrRedefineAccessorProperty(obj, p, SETTER, desc.getSet(), flag);
|
594
|
+
}
|
489
595
|
}
|
490
596
|
return true;
|
491
597
|
}
|
@@ -493,23 +599,65 @@ function DefineOwnProperty(obj, p, desc, should_throw) {
|
|
493
599
|
|
494
600
|
// ES5 section 15.2.3.2.
|
495
601
|
function ObjectGetPrototypeOf(obj) {
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
602
|
+
if ((!IS_OBJECT(obj) || IS_NULL_OR_UNDEFINED(obj)) && !IS_FUNCTION(obj) &&
|
603
|
+
!IS_UNDETECTABLE(obj))
|
604
|
+
throw MakeTypeError("obj_ctor_property_non_object", ["getPrototypeOf"]);
|
605
|
+
return obj.__proto__;
|
500
606
|
}
|
501
607
|
|
502
608
|
|
503
|
-
// ES5 section 15.2.3.3
|
609
|
+
// ES5 section 15.2.3.3
|
504
610
|
function ObjectGetOwnPropertyDescriptor(obj, p) {
|
505
|
-
if (!IS_OBJECT(obj) && !IS_FUNCTION(obj)
|
506
|
-
|
507
|
-
|
611
|
+
if ((!IS_OBJECT(obj) || IS_NULL_OR_UNDEFINED(obj)) && !IS_FUNCTION(obj) &&
|
612
|
+
!IS_UNDETECTABLE(obj))
|
613
|
+
throw MakeTypeError("obj_ctor_property_non_object", ["getOwnPropertyDescriptor"]);
|
508
614
|
var desc = GetOwnProperty(obj, p);
|
509
615
|
return FromPropertyDescriptor(desc);
|
510
616
|
}
|
511
617
|
|
512
618
|
|
619
|
+
// ES5 section 15.2.3.4.
|
620
|
+
function ObjectGetOwnPropertyNames(obj) {
|
621
|
+
if ((!IS_OBJECT(obj) || IS_NULL_OR_UNDEFINED(obj)) && !IS_FUNCTION(obj) &&
|
622
|
+
!IS_UNDETECTABLE(obj))
|
623
|
+
throw MakeTypeError("obj_ctor_property_non_object", ["getOwnPropertyNames"]);
|
624
|
+
|
625
|
+
// Find all the indexed properties.
|
626
|
+
|
627
|
+
// Get the local element names.
|
628
|
+
var propertyNames = %GetLocalElementNames(obj);
|
629
|
+
|
630
|
+
// Get names for indexed interceptor properties.
|
631
|
+
if (%GetInterceptorInfo(obj) & 1) {
|
632
|
+
var indexedInterceptorNames =
|
633
|
+
%GetIndexedInterceptorElementNames(obj);
|
634
|
+
if (indexedInterceptorNames)
|
635
|
+
propertyNames = propertyNames.concat(indexedInterceptorNames);
|
636
|
+
}
|
637
|
+
|
638
|
+
// Find all the named properties.
|
639
|
+
|
640
|
+
// Get the local property names.
|
641
|
+
propertyNames = propertyNames.concat(%GetLocalPropertyNames(obj));
|
642
|
+
|
643
|
+
// Get names for named interceptor properties if any.
|
644
|
+
|
645
|
+
if (%GetInterceptorInfo(obj) & 2) {
|
646
|
+
var namedInterceptorNames =
|
647
|
+
%GetNamedInterceptorPropertyNames(obj);
|
648
|
+
if (namedInterceptorNames) {
|
649
|
+
propertyNames = propertyNames.concat(namedInterceptorNames);
|
650
|
+
}
|
651
|
+
}
|
652
|
+
|
653
|
+
// Property names are expected to be strings.
|
654
|
+
for (var i = 0; i < propertyNames.length; ++i)
|
655
|
+
propertyNames[i] = ToString(propertyNames[i]);
|
656
|
+
|
657
|
+
return propertyNames;
|
658
|
+
}
|
659
|
+
|
660
|
+
|
513
661
|
// ES5 section 15.2.3.5.
|
514
662
|
function ObjectCreate(proto, properties) {
|
515
663
|
if (!IS_OBJECT(proto) && !IS_NULL(proto)) {
|
@@ -522,10 +670,23 @@ function ObjectCreate(proto, properties) {
|
|
522
670
|
}
|
523
671
|
|
524
672
|
|
525
|
-
// ES5 section 15.2.3.
|
526
|
-
|
527
|
-
|
673
|
+
// ES5 section 15.2.3.6.
|
674
|
+
function ObjectDefineProperty(obj, p, attributes) {
|
675
|
+
if ((!IS_OBJECT(obj) || IS_NULL_OR_UNDEFINED(obj)) && !IS_FUNCTION(obj) &&
|
676
|
+
!IS_UNDETECTABLE(obj))
|
677
|
+
throw MakeTypeError("obj_ctor_property_non_object", ["defineProperty"]);
|
678
|
+
var name = ToString(p);
|
679
|
+
var desc = ToPropertyDescriptor(attributes);
|
680
|
+
DefineOwnProperty(obj, name, desc, true);
|
681
|
+
return obj;
|
682
|
+
}
|
683
|
+
|
684
|
+
|
685
|
+
// ES5 section 15.2.3.7.
|
528
686
|
function ObjectDefineProperties(obj, properties) {
|
687
|
+
if ((!IS_OBJECT(obj) || IS_NULL_OR_UNDEFINED(obj)) && !IS_FUNCTION(obj) &&
|
688
|
+
!IS_UNDETECTABLE(obj))
|
689
|
+
throw MakeTypeError("obj_ctor_property_non_object", ["defineProperties"]);
|
529
690
|
var props = ToObject(properties);
|
530
691
|
var key_values = [];
|
531
692
|
for (var key in props) {
|
@@ -541,6 +702,7 @@ function ObjectDefineProperties(obj, properties) {
|
|
541
702
|
var desc = key_values[i + 1];
|
542
703
|
DefineOwnProperty(obj, key, desc, true);
|
543
704
|
}
|
705
|
+
return obj;
|
544
706
|
}
|
545
707
|
|
546
708
|
|
@@ -575,8 +737,11 @@ function SetupObject() {
|
|
575
737
|
InstallFunctions($Object, DONT_ENUM, $Array(
|
576
738
|
"keys", ObjectKeys,
|
577
739
|
"create", ObjectCreate,
|
740
|
+
"defineProperty", ObjectDefineProperty,
|
741
|
+
"defineProperties", ObjectDefineProperties,
|
578
742
|
"getPrototypeOf", ObjectGetPrototypeOf,
|
579
|
-
"getOwnPropertyDescriptor", ObjectGetOwnPropertyDescriptor
|
743
|
+
"getOwnPropertyDescriptor", ObjectGetOwnPropertyDescriptor,
|
744
|
+
"getOwnPropertyNames", ObjectGetOwnPropertyNames
|
580
745
|
));
|
581
746
|
}
|
582
747
|
|
@@ -759,7 +924,7 @@ function SetupNumber() {
|
|
759
924
|
"POSITIVE_INFINITY",
|
760
925
|
1/0,
|
761
926
|
DONT_ENUM | DONT_DELETE | READ_ONLY);
|
762
|
-
%
|
927
|
+
%ToFastProperties($Number);
|
763
928
|
|
764
929
|
// Setup non-enumerable functions on the Number prototype object.
|
765
930
|
InstallFunctions($Number.prototype, DONT_ENUM, $Array(
|