therubyracer 0.5.0-x86-linux → 0.11.0beta5-x86-linux
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/.gitignore +23 -11
- data/.travis.yml +10 -0
- data/Changelog.md +242 -0
- data/Gemfile +16 -0
- data/README.md +185 -0
- data/Rakefile +42 -51
- data/benchmarks.rb +217 -0
- data/ext/v8/accessor.cc +181 -0
- data/ext/v8/array.cc +26 -0
- data/ext/v8/backref.cc +56 -0
- data/ext/v8/build.rb +52 -0
- data/ext/v8/constants.cc +34 -0
- data/ext/v8/constraints.cc +52 -0
- data/ext/v8/context.cc +130 -0
- data/ext/v8/date.cc +18 -0
- data/ext/v8/exception.cc +38 -0
- data/ext/v8/extconf.rb +16 -29
- data/ext/v8/external.cc +43 -0
- data/ext/v8/function.cc +58 -0
- data/ext/v8/gc.cc +43 -0
- data/ext/v8/handles.cc +34 -0
- data/ext/v8/heap.cc +31 -0
- data/ext/v8/init.cc +39 -0
- data/ext/v8/init.so +0 -0
- data/ext/v8/invocation.cc +86 -0
- data/ext/v8/locker.cc +77 -0
- data/ext/v8/message.cc +51 -0
- data/ext/v8/object.cc +334 -0
- data/ext/v8/primitive.cc +8 -0
- data/ext/v8/rr.cc +83 -0
- data/ext/v8/rr.h +883 -0
- data/ext/v8/script.cc +80 -0
- data/ext/v8/signature.cc +18 -0
- data/ext/v8/stack.cc +75 -0
- data/ext/v8/string.cc +47 -0
- data/ext/v8/template.cc +175 -0
- data/ext/v8/trycatch.cc +86 -0
- data/ext/v8/v8.cc +87 -0
- data/ext/v8/value.cc +239 -0
- data/lib/v8.rb +30 -9
- data/lib/v8/access.rb +5 -0
- data/lib/v8/access/indices.rb +40 -0
- data/lib/v8/access/invocation.rb +47 -0
- data/lib/v8/access/names.rb +65 -0
- data/lib/v8/array.rb +26 -0
- data/lib/v8/context.rb +217 -75
- data/lib/v8/conversion.rb +35 -0
- data/lib/v8/conversion/array.rb +11 -0
- data/lib/v8/conversion/class.rb +120 -0
- data/lib/v8/conversion/code.rb +38 -0
- data/lib/v8/conversion/fundamental.rb +11 -0
- data/lib/v8/conversion/hash.rb +11 -0
- data/lib/v8/conversion/indentity.rb +31 -0
- data/lib/v8/conversion/method.rb +26 -0
- data/lib/v8/conversion/object.rb +28 -0
- data/lib/v8/conversion/primitive.rb +7 -0
- data/lib/v8/conversion/proc.rb +5 -0
- data/lib/v8/conversion/reference.rb +16 -0
- data/lib/v8/conversion/string.rb +12 -0
- data/lib/v8/conversion/symbol.rb +7 -0
- data/lib/v8/conversion/time.rb +13 -0
- data/lib/v8/error.rb +25 -0
- data/lib/v8/error/protect.rb +20 -0
- data/lib/v8/error/try.rb +15 -0
- data/lib/v8/function.rb +28 -0
- data/lib/v8/object.rb +69 -28
- data/lib/v8/util/weakcell.rb +29 -0
- data/lib/v8/version.rb +3 -0
- data/spec/c/array_spec.rb +17 -0
- data/spec/c/constants_spec.rb +20 -0
- data/spec/c/exception_spec.rb +26 -0
- data/spec/c/external_spec.rb +9 -0
- data/spec/c/function_spec.rb +46 -0
- data/spec/c/handles_spec.rb +35 -0
- data/spec/c/locker_spec.rb +38 -0
- data/spec/c/object_spec.rb +46 -0
- data/spec/c/script_spec.rb +28 -0
- data/spec/c/string_spec.rb +16 -0
- data/spec/c/template_spec.rb +30 -0
- data/spec/c/trycatch_spec.rb +51 -0
- data/spec/mem/blunt_spec.rb +42 -0
- data/spec/redjs_spec.rb +10 -0
- data/spec/spec_helper.rb +43 -12
- data/spec/threading_spec.rb +52 -0
- data/spec/v8/context_spec.rb +19 -0
- data/spec/v8/conversion_spec.rb +9 -0
- data/spec/v8/error_spec.rb +21 -0
- data/spec/v8/function_spec.rb +9 -0
- data/spec/v8/object_spec.rb +15 -0
- data/thefrontside.png +0 -0
- data/therubyracer.gemspec +15 -676
- metadata +146 -680
- data/.gitmodules +0 -3
- data/Doxyfile +0 -1514
- data/History.txt +0 -51
- data/README.rdoc +0 -158
- data/docs/data_conversion.txt +0 -18
- data/ext/v8/callbacks.cpp +0 -160
- data/ext/v8/callbacks.h +0 -14
- data/ext/v8/convert_ruby.cpp +0 -8
- data/ext/v8/convert_ruby.h +0 -99
- data/ext/v8/convert_string.cpp +0 -10
- data/ext/v8/convert_string.h +0 -73
- data/ext/v8/convert_v8.cpp +0 -9
- data/ext/v8/convert_v8.h +0 -121
- data/ext/v8/converters.cpp +0 -83
- data/ext/v8/converters.h +0 -23
- data/ext/v8/upstream/2.0.6/.gitignore +0 -26
- data/ext/v8/upstream/2.0.6/AUTHORS +0 -23
- data/ext/v8/upstream/2.0.6/ChangeLog +0 -1479
- data/ext/v8/upstream/2.0.6/LICENSE +0 -55
- data/ext/v8/upstream/2.0.6/SConstruct +0 -1028
- data/ext/v8/upstream/2.0.6/include/v8-debug.h +0 -275
- data/ext/v8/upstream/2.0.6/include/v8.h +0 -3236
- data/ext/v8/upstream/2.0.6/src/SConscript +0 -283
- data/ext/v8/upstream/2.0.6/src/accessors.cc +0 -695
- data/ext/v8/upstream/2.0.6/src/accessors.h +0 -114
- data/ext/v8/upstream/2.0.6/src/allocation.cc +0 -198
- data/ext/v8/upstream/2.0.6/src/allocation.h +0 -169
- data/ext/v8/upstream/2.0.6/src/api.cc +0 -3831
- data/ext/v8/upstream/2.0.6/src/api.h +0 -479
- data/ext/v8/upstream/2.0.6/src/apinatives.js +0 -110
- data/ext/v8/upstream/2.0.6/src/apiutils.h +0 -69
- data/ext/v8/upstream/2.0.6/src/arguments.h +0 -97
- data/ext/v8/upstream/2.0.6/src/arm/assembler-arm-inl.h +0 -277
- data/ext/v8/upstream/2.0.6/src/arm/assembler-arm.cc +0 -1821
- data/ext/v8/upstream/2.0.6/src/arm/assembler-arm.h +0 -1027
- data/ext/v8/upstream/2.0.6/src/arm/assembler-thumb2-inl.h +0 -267
- data/ext/v8/upstream/2.0.6/src/arm/assembler-thumb2.cc +0 -1821
- data/ext/v8/upstream/2.0.6/src/arm/assembler-thumb2.h +0 -1027
- data/ext/v8/upstream/2.0.6/src/arm/builtins-arm.cc +0 -1271
- data/ext/v8/upstream/2.0.6/src/arm/codegen-arm-inl.h +0 -74
- data/ext/v8/upstream/2.0.6/src/arm/codegen-arm.cc +0 -6682
- data/ext/v8/upstream/2.0.6/src/arm/codegen-arm.h +0 -535
- data/ext/v8/upstream/2.0.6/src/arm/constants-arm.cc +0 -112
- data/ext/v8/upstream/2.0.6/src/arm/constants-arm.h +0 -347
- data/ext/v8/upstream/2.0.6/src/arm/cpu-arm.cc +0 -132
- data/ext/v8/upstream/2.0.6/src/arm/debug-arm.cc +0 -213
- data/ext/v8/upstream/2.0.6/src/arm/disasm-arm.cc +0 -1166
- data/ext/v8/upstream/2.0.6/src/arm/fast-codegen-arm.cc +0 -1698
- data/ext/v8/upstream/2.0.6/src/arm/frames-arm.cc +0 -123
- data/ext/v8/upstream/2.0.6/src/arm/frames-arm.h +0 -162
- data/ext/v8/upstream/2.0.6/src/arm/ic-arm.cc +0 -849
- data/ext/v8/upstream/2.0.6/src/arm/jump-target-arm.cc +0 -238
- data/ext/v8/upstream/2.0.6/src/arm/macro-assembler-arm.cc +0 -1259
- data/ext/v8/upstream/2.0.6/src/arm/macro-assembler-arm.h +0 -423
- data/ext/v8/upstream/2.0.6/src/arm/regexp-macro-assembler-arm.cc +0 -1266
- data/ext/v8/upstream/2.0.6/src/arm/regexp-macro-assembler-arm.h +0 -282
- data/ext/v8/upstream/2.0.6/src/arm/register-allocator-arm-inl.h +0 -103
- data/ext/v8/upstream/2.0.6/src/arm/register-allocator-arm.cc +0 -59
- data/ext/v8/upstream/2.0.6/src/arm/register-allocator-arm.h +0 -43
- data/ext/v8/upstream/2.0.6/src/arm/simulator-arm.cc +0 -2264
- data/ext/v8/upstream/2.0.6/src/arm/simulator-arm.h +0 -306
- data/ext/v8/upstream/2.0.6/src/arm/stub-cache-arm.cc +0 -1516
- data/ext/v8/upstream/2.0.6/src/arm/virtual-frame-arm.cc +0 -412
- data/ext/v8/upstream/2.0.6/src/arm/virtual-frame-arm.h +0 -532
- data/ext/v8/upstream/2.0.6/src/array.js +0 -1154
- data/ext/v8/upstream/2.0.6/src/assembler.cc +0 -772
- data/ext/v8/upstream/2.0.6/src/assembler.h +0 -525
- data/ext/v8/upstream/2.0.6/src/ast.cc +0 -512
- data/ext/v8/upstream/2.0.6/src/ast.h +0 -1820
- data/ext/v8/upstream/2.0.6/src/bootstrapper.cc +0 -1680
- data/ext/v8/upstream/2.0.6/src/bootstrapper.h +0 -103
- data/ext/v8/upstream/2.0.6/src/builtins.cc +0 -851
- data/ext/v8/upstream/2.0.6/src/builtins.h +0 -245
- data/ext/v8/upstream/2.0.6/src/bytecodes-irregexp.h +0 -104
- data/ext/v8/upstream/2.0.6/src/char-predicates-inl.h +0 -86
- data/ext/v8/upstream/2.0.6/src/char-predicates.h +0 -65
- data/ext/v8/upstream/2.0.6/src/checks.cc +0 -100
- data/ext/v8/upstream/2.0.6/src/checks.h +0 -284
- data/ext/v8/upstream/2.0.6/src/code-stubs.cc +0 -164
- data/ext/v8/upstream/2.0.6/src/code-stubs.h +0 -164
- data/ext/v8/upstream/2.0.6/src/code.h +0 -68
- data/ext/v8/upstream/2.0.6/src/codegen-inl.h +0 -88
- data/ext/v8/upstream/2.0.6/src/codegen.cc +0 -504
- data/ext/v8/upstream/2.0.6/src/codegen.h +0 -522
- data/ext/v8/upstream/2.0.6/src/compilation-cache.cc +0 -490
- data/ext/v8/upstream/2.0.6/src/compilation-cache.h +0 -98
- 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/contexts.cc +0 -256
- data/ext/v8/upstream/2.0.6/src/contexts.h +0 -345
- data/ext/v8/upstream/2.0.6/src/conversions-inl.h +0 -95
- data/ext/v8/upstream/2.0.6/src/conversions.cc +0 -709
- data/ext/v8/upstream/2.0.6/src/conversions.h +0 -118
- data/ext/v8/upstream/2.0.6/src/counters.cc +0 -78
- data/ext/v8/upstream/2.0.6/src/counters.h +0 -239
- data/ext/v8/upstream/2.0.6/src/cpu.h +0 -65
- data/ext/v8/upstream/2.0.6/src/d8-debug.cc +0 -345
- data/ext/v8/upstream/2.0.6/src/d8-debug.h +0 -155
- data/ext/v8/upstream/2.0.6/src/d8-posix.cc +0 -675
- data/ext/v8/upstream/2.0.6/src/d8-readline.cc +0 -128
- data/ext/v8/upstream/2.0.6/src/d8-windows.cc +0 -42
- data/ext/v8/upstream/2.0.6/src/d8.cc +0 -776
- data/ext/v8/upstream/2.0.6/src/d8.h +0 -225
- data/ext/v8/upstream/2.0.6/src/d8.js +0 -1625
- data/ext/v8/upstream/2.0.6/src/date-delay.js +0 -1138
- data/ext/v8/upstream/2.0.6/src/dateparser-inl.h +0 -114
- data/ext/v8/upstream/2.0.6/src/dateparser.cc +0 -186
- data/ext/v8/upstream/2.0.6/src/dateparser.h +0 -240
- data/ext/v8/upstream/2.0.6/src/debug-agent.cc +0 -425
- data/ext/v8/upstream/2.0.6/src/debug-agent.h +0 -129
- data/ext/v8/upstream/2.0.6/src/debug-delay.js +0 -2073
- data/ext/v8/upstream/2.0.6/src/debug.cc +0 -2751
- data/ext/v8/upstream/2.0.6/src/debug.h +0 -866
- data/ext/v8/upstream/2.0.6/src/disasm.h +0 -77
- data/ext/v8/upstream/2.0.6/src/disassembler.cc +0 -318
- data/ext/v8/upstream/2.0.6/src/disassembler.h +0 -56
- data/ext/v8/upstream/2.0.6/src/dtoa-config.c +0 -91
- data/ext/v8/upstream/2.0.6/src/execution.cc +0 -701
- data/ext/v8/upstream/2.0.6/src/execution.h +0 -312
- data/ext/v8/upstream/2.0.6/src/factory.cc +0 -957
- data/ext/v8/upstream/2.0.6/src/factory.h +0 -393
- data/ext/v8/upstream/2.0.6/src/fast-codegen.cc +0 -725
- data/ext/v8/upstream/2.0.6/src/fast-codegen.h +0 -371
- data/ext/v8/upstream/2.0.6/src/flag-definitions.h +0 -426
- data/ext/v8/upstream/2.0.6/src/flags.cc +0 -555
- data/ext/v8/upstream/2.0.6/src/flags.h +0 -81
- data/ext/v8/upstream/2.0.6/src/frame-element.cc +0 -45
- data/ext/v8/upstream/2.0.6/src/frame-element.h +0 -235
- data/ext/v8/upstream/2.0.6/src/frames-inl.h +0 -215
- data/ext/v8/upstream/2.0.6/src/frames.cc +0 -749
- data/ext/v8/upstream/2.0.6/src/frames.h +0 -659
- data/ext/v8/upstream/2.0.6/src/func-name-inferrer.cc +0 -76
- data/ext/v8/upstream/2.0.6/src/func-name-inferrer.h +0 -135
- data/ext/v8/upstream/2.0.6/src/global-handles.cc +0 -516
- data/ext/v8/upstream/2.0.6/src/global-handles.h +0 -180
- data/ext/v8/upstream/2.0.6/src/globals.h +0 -608
- data/ext/v8/upstream/2.0.6/src/handles-inl.h +0 -76
- data/ext/v8/upstream/2.0.6/src/handles.cc +0 -811
- data/ext/v8/upstream/2.0.6/src/handles.h +0 -367
- data/ext/v8/upstream/2.0.6/src/hashmap.cc +0 -226
- data/ext/v8/upstream/2.0.6/src/hashmap.h +0 -120
- data/ext/v8/upstream/2.0.6/src/heap-inl.h +0 -407
- data/ext/v8/upstream/2.0.6/src/heap-profiler.cc +0 -695
- data/ext/v8/upstream/2.0.6/src/heap-profiler.h +0 -277
- data/ext/v8/upstream/2.0.6/src/heap.cc +0 -4204
- data/ext/v8/upstream/2.0.6/src/heap.h +0 -1704
- data/ext/v8/upstream/2.0.6/src/ia32/assembler-ia32-inl.h +0 -325
- data/ext/v8/upstream/2.0.6/src/ia32/assembler-ia32.cc +0 -2375
- data/ext/v8/upstream/2.0.6/src/ia32/assembler-ia32.h +0 -914
- data/ext/v8/upstream/2.0.6/src/ia32/builtins-ia32.cc +0 -1222
- data/ext/v8/upstream/2.0.6/src/ia32/codegen-ia32-inl.h +0 -46
- data/ext/v8/upstream/2.0.6/src/ia32/codegen-ia32.cc +0 -9770
- data/ext/v8/upstream/2.0.6/src/ia32/codegen-ia32.h +0 -834
- data/ext/v8/upstream/2.0.6/src/ia32/cpu-ia32.cc +0 -79
- data/ext/v8/upstream/2.0.6/src/ia32/debug-ia32.cc +0 -208
- data/ext/v8/upstream/2.0.6/src/ia32/disasm-ia32.cc +0 -1357
- data/ext/v8/upstream/2.0.6/src/ia32/fast-codegen-ia32.cc +0 -1813
- data/ext/v8/upstream/2.0.6/src/ia32/frames-ia32.cc +0 -111
- data/ext/v8/upstream/2.0.6/src/ia32/frames-ia32.h +0 -135
- data/ext/v8/upstream/2.0.6/src/ia32/ic-ia32.cc +0 -1490
- data/ext/v8/upstream/2.0.6/src/ia32/jump-target-ia32.cc +0 -432
- data/ext/v8/upstream/2.0.6/src/ia32/macro-assembler-ia32.cc +0 -1517
- data/ext/v8/upstream/2.0.6/src/ia32/macro-assembler-ia32.h +0 -528
- data/ext/v8/upstream/2.0.6/src/ia32/regexp-macro-assembler-ia32.cc +0 -1219
- data/ext/v8/upstream/2.0.6/src/ia32/regexp-macro-assembler-ia32.h +0 -230
- data/ext/v8/upstream/2.0.6/src/ia32/register-allocator-ia32-inl.h +0 -82
- data/ext/v8/upstream/2.0.6/src/ia32/register-allocator-ia32.cc +0 -99
- data/ext/v8/upstream/2.0.6/src/ia32/register-allocator-ia32.h +0 -43
- data/ext/v8/upstream/2.0.6/src/ia32/simulator-ia32.cc +0 -30
- data/ext/v8/upstream/2.0.6/src/ia32/simulator-ia32.h +0 -62
- data/ext/v8/upstream/2.0.6/src/ia32/stub-cache-ia32.cc +0 -1961
- data/ext/v8/upstream/2.0.6/src/ia32/virtual-frame-ia32.cc +0 -1105
- data/ext/v8/upstream/2.0.6/src/ia32/virtual-frame-ia32.h +0 -580
- data/ext/v8/upstream/2.0.6/src/ic-inl.h +0 -93
- data/ext/v8/upstream/2.0.6/src/ic.cc +0 -1426
- data/ext/v8/upstream/2.0.6/src/ic.h +0 -443
- data/ext/v8/upstream/2.0.6/src/interpreter-irregexp.cc +0 -646
- data/ext/v8/upstream/2.0.6/src/interpreter-irregexp.h +0 -48
- data/ext/v8/upstream/2.0.6/src/json-delay.js +0 -254
- data/ext/v8/upstream/2.0.6/src/jsregexp.cc +0 -5234
- data/ext/v8/upstream/2.0.6/src/jsregexp.h +0 -1439
- data/ext/v8/upstream/2.0.6/src/jump-target-inl.h +0 -49
- data/ext/v8/upstream/2.0.6/src/jump-target.cc +0 -383
- data/ext/v8/upstream/2.0.6/src/jump-target.h +0 -280
- data/ext/v8/upstream/2.0.6/src/list-inl.h +0 -166
- data/ext/v8/upstream/2.0.6/src/list.h +0 -158
- data/ext/v8/upstream/2.0.6/src/log-inl.h +0 -126
- data/ext/v8/upstream/2.0.6/src/log-utils.cc +0 -503
- data/ext/v8/upstream/2.0.6/src/log-utils.h +0 -292
- data/ext/v8/upstream/2.0.6/src/log.cc +0 -1457
- data/ext/v8/upstream/2.0.6/src/log.h +0 -371
- data/ext/v8/upstream/2.0.6/src/macro-assembler.h +0 -93
- data/ext/v8/upstream/2.0.6/src/macros.py +0 -137
- data/ext/v8/upstream/2.0.6/src/mark-compact.cc +0 -2007
- data/ext/v8/upstream/2.0.6/src/mark-compact.h +0 -442
- data/ext/v8/upstream/2.0.6/src/math.js +0 -263
- data/ext/v8/upstream/2.0.6/src/memory.h +0 -74
- data/ext/v8/upstream/2.0.6/src/messages.cc +0 -177
- data/ext/v8/upstream/2.0.6/src/messages.h +0 -112
- data/ext/v8/upstream/2.0.6/src/messages.js +0 -937
- data/ext/v8/upstream/2.0.6/src/mirror-delay.js +0 -2332
- data/ext/v8/upstream/2.0.6/src/mksnapshot.cc +0 -169
- data/ext/v8/upstream/2.0.6/src/natives.h +0 -63
- data/ext/v8/upstream/2.0.6/src/objects-debug.cc +0 -1317
- data/ext/v8/upstream/2.0.6/src/objects-inl.h +0 -3044
- data/ext/v8/upstream/2.0.6/src/objects.cc +0 -8306
- data/ext/v8/upstream/2.0.6/src/objects.h +0 -4960
- data/ext/v8/upstream/2.0.6/src/oprofile-agent.cc +0 -116
- data/ext/v8/upstream/2.0.6/src/oprofile-agent.h +0 -69
- data/ext/v8/upstream/2.0.6/src/parser.cc +0 -4810
- data/ext/v8/upstream/2.0.6/src/parser.h +0 -195
- data/ext/v8/upstream/2.0.6/src/platform-freebsd.cc +0 -645
- data/ext/v8/upstream/2.0.6/src/platform-linux.cc +0 -808
- data/ext/v8/upstream/2.0.6/src/platform-macos.cc +0 -643
- data/ext/v8/upstream/2.0.6/src/platform-nullos.cc +0 -454
- data/ext/v8/upstream/2.0.6/src/platform-openbsd.cc +0 -597
- data/ext/v8/upstream/2.0.6/src/platform-posix.cc +0 -380
- data/ext/v8/upstream/2.0.6/src/platform-win32.cc +0 -1908
- data/ext/v8/upstream/2.0.6/src/platform.h +0 -556
- data/ext/v8/upstream/2.0.6/src/prettyprinter.cc +0 -1511
- data/ext/v8/upstream/2.0.6/src/prettyprinter.h +0 -219
- data/ext/v8/upstream/2.0.6/src/property.cc +0 -96
- data/ext/v8/upstream/2.0.6/src/property.h +0 -327
- data/ext/v8/upstream/2.0.6/src/regexp-delay.js +0 -406
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-irregexp-inl.h +0 -78
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-irregexp.cc +0 -464
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-irregexp.h +0 -141
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-tracer.cc +0 -356
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-tracer.h +0 -103
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler.cc +0 -240
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler.h +0 -220
- data/ext/v8/upstream/2.0.6/src/regexp-stack.cc +0 -103
- data/ext/v8/upstream/2.0.6/src/regexp-stack.h +0 -123
- data/ext/v8/upstream/2.0.6/src/register-allocator-inl.h +0 -74
- data/ext/v8/upstream/2.0.6/src/register-allocator.cc +0 -100
- data/ext/v8/upstream/2.0.6/src/register-allocator.h +0 -295
- data/ext/v8/upstream/2.0.6/src/rewriter.cc +0 -855
- data/ext/v8/upstream/2.0.6/src/rewriter.h +0 -54
- data/ext/v8/upstream/2.0.6/src/runtime.cc +0 -8163
- data/ext/v8/upstream/2.0.6/src/runtime.h +0 -432
- data/ext/v8/upstream/2.0.6/src/runtime.js +0 -626
- data/ext/v8/upstream/2.0.6/src/scanner.cc +0 -1098
- data/ext/v8/upstream/2.0.6/src/scanner.h +0 -425
- data/ext/v8/upstream/2.0.6/src/scopeinfo.cc +0 -649
- data/ext/v8/upstream/2.0.6/src/scopeinfo.h +0 -236
- data/ext/v8/upstream/2.0.6/src/scopes.cc +0 -963
- data/ext/v8/upstream/2.0.6/src/scopes.h +0 -401
- data/ext/v8/upstream/2.0.6/src/serialize.cc +0 -1260
- data/ext/v8/upstream/2.0.6/src/serialize.h +0 -404
- data/ext/v8/upstream/2.0.6/src/shell.h +0 -55
- data/ext/v8/upstream/2.0.6/src/simulator.h +0 -41
- data/ext/v8/upstream/2.0.6/src/smart-pointer.h +0 -109
- data/ext/v8/upstream/2.0.6/src/snapshot-common.cc +0 -97
- data/ext/v8/upstream/2.0.6/src/snapshot-empty.cc +0 -40
- data/ext/v8/upstream/2.0.6/src/snapshot.h +0 -59
- data/ext/v8/upstream/2.0.6/src/spaces-inl.h +0 -372
- data/ext/v8/upstream/2.0.6/src/spaces.cc +0 -2864
- data/ext/v8/upstream/2.0.6/src/spaces.h +0 -2072
- data/ext/v8/upstream/2.0.6/src/string-stream.cc +0 -584
- data/ext/v8/upstream/2.0.6/src/string-stream.h +0 -189
- data/ext/v8/upstream/2.0.6/src/string.js +0 -901
- data/ext/v8/upstream/2.0.6/src/stub-cache.cc +0 -1108
- data/ext/v8/upstream/2.0.6/src/stub-cache.h +0 -578
- data/ext/v8/upstream/2.0.6/src/third_party/dtoa/COPYING +0 -15
- data/ext/v8/upstream/2.0.6/src/third_party/dtoa/dtoa.c +0 -3330
- data/ext/v8/upstream/2.0.6/src/third_party/valgrind/valgrind.h +0 -3925
- data/ext/v8/upstream/2.0.6/src/token.cc +0 -56
- data/ext/v8/upstream/2.0.6/src/token.h +0 -270
- data/ext/v8/upstream/2.0.6/src/top.cc +0 -991
- data/ext/v8/upstream/2.0.6/src/top.h +0 -459
- data/ext/v8/upstream/2.0.6/src/unicode-inl.h +0 -238
- data/ext/v8/upstream/2.0.6/src/unicode.cc +0 -749
- data/ext/v8/upstream/2.0.6/src/unicode.h +0 -279
- data/ext/v8/upstream/2.0.6/src/uri.js +0 -415
- data/ext/v8/upstream/2.0.6/src/usage-analyzer.cc +0 -426
- data/ext/v8/upstream/2.0.6/src/usage-analyzer.h +0 -40
- data/ext/v8/upstream/2.0.6/src/utils.cc +0 -322
- data/ext/v8/upstream/2.0.6/src/utils.h +0 -592
- data/ext/v8/upstream/2.0.6/src/v8-counters.cc +0 -55
- data/ext/v8/upstream/2.0.6/src/v8-counters.h +0 -198
- data/ext/v8/upstream/2.0.6/src/v8.cc +0 -193
- data/ext/v8/upstream/2.0.6/src/v8.h +0 -119
- data/ext/v8/upstream/2.0.6/src/v8natives.js +0 -846
- data/ext/v8/upstream/2.0.6/src/v8threads.cc +0 -450
- data/ext/v8/upstream/2.0.6/src/v8threads.h +0 -144
- data/ext/v8/upstream/2.0.6/src/variables.cc +0 -163
- data/ext/v8/upstream/2.0.6/src/variables.h +0 -235
- data/ext/v8/upstream/2.0.6/src/version.cc +0 -88
- data/ext/v8/upstream/2.0.6/src/version.h +0 -64
- data/ext/v8/upstream/2.0.6/src/virtual-frame.cc +0 -381
- data/ext/v8/upstream/2.0.6/src/virtual-frame.h +0 -44
- data/ext/v8/upstream/2.0.6/src/x64/assembler-x64-inl.h +0 -352
- data/ext/v8/upstream/2.0.6/src/x64/assembler-x64.cc +0 -2539
- data/ext/v8/upstream/2.0.6/src/x64/assembler-x64.h +0 -1399
- data/ext/v8/upstream/2.0.6/src/x64/builtins-x64.cc +0 -1255
- data/ext/v8/upstream/2.0.6/src/x64/codegen-x64-inl.h +0 -46
- data/ext/v8/upstream/2.0.6/src/x64/codegen-x64.cc +0 -8223
- data/ext/v8/upstream/2.0.6/src/x64/codegen-x64.h +0 -785
- data/ext/v8/upstream/2.0.6/src/x64/cpu-x64.cc +0 -79
- data/ext/v8/upstream/2.0.6/src/x64/debug-x64.cc +0 -202
- data/ext/v8/upstream/2.0.6/src/x64/disasm-x64.cc +0 -1596
- data/ext/v8/upstream/2.0.6/src/x64/fast-codegen-x64.cc +0 -1820
- data/ext/v8/upstream/2.0.6/src/x64/frames-x64.cc +0 -109
- data/ext/v8/upstream/2.0.6/src/x64/frames-x64.h +0 -121
- data/ext/v8/upstream/2.0.6/src/x64/ic-x64.cc +0 -1392
- data/ext/v8/upstream/2.0.6/src/x64/jump-target-x64.cc +0 -432
- data/ext/v8/upstream/2.0.6/src/x64/macro-assembler-x64.cc +0 -2409
- data/ext/v8/upstream/2.0.6/src/x64/macro-assembler-x64.h +0 -765
- data/ext/v8/upstream/2.0.6/src/x64/regexp-macro-assembler-x64.cc +0 -1337
- data/ext/v8/upstream/2.0.6/src/x64/regexp-macro-assembler-x64.h +0 -295
- data/ext/v8/upstream/2.0.6/src/x64/register-allocator-x64-inl.h +0 -86
- data/ext/v8/upstream/2.0.6/src/x64/register-allocator-x64.cc +0 -84
- data/ext/v8/upstream/2.0.6/src/x64/register-allocator-x64.h +0 -43
- data/ext/v8/upstream/2.0.6/src/x64/simulator-x64.cc +0 -27
- data/ext/v8/upstream/2.0.6/src/x64/simulator-x64.h +0 -63
- data/ext/v8/upstream/2.0.6/src/x64/stub-cache-x64.cc +0 -1884
- data/ext/v8/upstream/2.0.6/src/x64/virtual-frame-x64.cc +0 -1089
- data/ext/v8/upstream/2.0.6/src/x64/virtual-frame-x64.h +0 -560
- data/ext/v8/upstream/2.0.6/src/zone-inl.h +0 -297
- data/ext/v8/upstream/2.0.6/src/zone.cc +0 -193
- data/ext/v8/upstream/2.0.6/src/zone.h +0 -305
- data/ext/v8/upstream/2.0.6/tools/codemap.js +0 -258
- data/ext/v8/upstream/2.0.6/tools/consarray.js +0 -93
- data/ext/v8/upstream/2.0.6/tools/csvparser.js +0 -98
- data/ext/v8/upstream/2.0.6/tools/gyp/v8.gyp +0 -620
- data/ext/v8/upstream/2.0.6/tools/js2c.py +0 -376
- data/ext/v8/upstream/2.0.6/tools/jsmin.py +0 -280
- data/ext/v8/upstream/2.0.6/tools/linux-tick-processor +0 -24
- data/ext/v8/upstream/2.0.6/tools/linux-tick-processor.py +0 -78
- data/ext/v8/upstream/2.0.6/tools/logreader.js +0 -320
- data/ext/v8/upstream/2.0.6/tools/mac-nm +0 -18
- data/ext/v8/upstream/2.0.6/tools/mac-tick-processor +0 -6
- data/ext/v8/upstream/2.0.6/tools/oprofile/annotate +0 -7
- data/ext/v8/upstream/2.0.6/tools/oprofile/common +0 -19
- data/ext/v8/upstream/2.0.6/tools/oprofile/dump +0 -7
- data/ext/v8/upstream/2.0.6/tools/oprofile/report +0 -7
- data/ext/v8/upstream/2.0.6/tools/oprofile/reset +0 -7
- data/ext/v8/upstream/2.0.6/tools/oprofile/run +0 -14
- data/ext/v8/upstream/2.0.6/tools/oprofile/shutdown +0 -7
- data/ext/v8/upstream/2.0.6/tools/oprofile/start +0 -7
- data/ext/v8/upstream/2.0.6/tools/presubmit.py +0 -299
- data/ext/v8/upstream/2.0.6/tools/process-heap-prof.py +0 -120
- data/ext/v8/upstream/2.0.6/tools/profile.js +0 -621
- data/ext/v8/upstream/2.0.6/tools/profile_view.js +0 -224
- data/ext/v8/upstream/2.0.6/tools/run-valgrind.py +0 -77
- data/ext/v8/upstream/2.0.6/tools/splaytree.js +0 -322
- data/ext/v8/upstream/2.0.6/tools/splaytree.py +0 -226
- data/ext/v8/upstream/2.0.6/tools/stats-viewer.py +0 -456
- data/ext/v8/upstream/2.0.6/tools/test.py +0 -1370
- data/ext/v8/upstream/2.0.6/tools/tickprocessor-driver.js +0 -53
- data/ext/v8/upstream/2.0.6/tools/tickprocessor.js +0 -731
- data/ext/v8/upstream/2.0.6/tools/tickprocessor.py +0 -535
- data/ext/v8/upstream/2.0.6/tools/utils.py +0 -82
- data/ext/v8/upstream/2.0.6/tools/visual_studio/README.txt +0 -71
- data/ext/v8/upstream/2.0.6/tools/visual_studio/arm.vsprops +0 -14
- data/ext/v8/upstream/2.0.6/tools/visual_studio/common.vsprops +0 -35
- data/ext/v8/upstream/2.0.6/tools/visual_studio/d8.vcproj +0 -199
- data/ext/v8/upstream/2.0.6/tools/visual_studio/d8_arm.vcproj +0 -199
- data/ext/v8/upstream/2.0.6/tools/visual_studio/d8_x64.vcproj +0 -201
- data/ext/v8/upstream/2.0.6/tools/visual_studio/d8js2c.cmd +0 -6
- data/ext/v8/upstream/2.0.6/tools/visual_studio/debug.vsprops +0 -17
- data/ext/v8/upstream/2.0.6/tools/visual_studio/ia32.vsprops +0 -13
- data/ext/v8/upstream/2.0.6/tools/visual_studio/js2c.cmd +0 -6
- data/ext/v8/upstream/2.0.6/tools/visual_studio/release.vsprops +0 -24
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8.sln +0 -101
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8.vcproj +0 -223
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_arm.sln +0 -74
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_arm.vcproj +0 -223
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_base.vcproj +0 -971
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_base_arm.vcproj +0 -983
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_base_x64.vcproj +0 -959
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_cctest.vcproj +0 -255
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_cctest_arm.vcproj +0 -243
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_cctest_x64.vcproj +0 -257
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_mksnapshot.vcproj +0 -151
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -151
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_process_sample.vcproj +0 -151
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_process_sample_arm.vcproj +0 -151
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_process_sample_x64.vcproj +0 -151
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_shell_sample.vcproj +0 -151
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_shell_sample_arm.vcproj +0 -151
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_shell_sample_x64.vcproj +0 -153
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot.vcproj +0 -142
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot_cc.vcproj +0 -92
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -92
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot_x64.vcproj +0 -142
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_x64.sln +0 -101
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_x64.vcproj +0 -223
- data/ext/v8/upstream/2.0.6/tools/visual_studio/x64.vsprops +0 -13
- data/ext/v8/upstream/2.0.6/tools/windows-tick-processor.bat +0 -5
- data/ext/v8/upstream/2.0.6/tools/windows-tick-processor.py +0 -137
- data/ext/v8/upstream/Makefile +0 -32
- data/ext/v8/upstream/fpic-on-linux-amd64.patch +0 -13
- data/ext/v8/upstream/no-strict-aliasing.patch +0 -13
- data/ext/v8/upstream/scons/CHANGES.txt +0 -5183
- data/ext/v8/upstream/scons/LICENSE.txt +0 -20
- data/ext/v8/upstream/scons/MANIFEST +0 -202
- data/ext/v8/upstream/scons/PKG-INFO +0 -13
- data/ext/v8/upstream/scons/README.txt +0 -273
- data/ext/v8/upstream/scons/RELEASE.txt +0 -1040
- data/ext/v8/upstream/scons/engine/SCons/Action.py +0 -1256
- data/ext/v8/upstream/scons/engine/SCons/Builder.py +0 -868
- data/ext/v8/upstream/scons/engine/SCons/CacheDir.py +0 -217
- data/ext/v8/upstream/scons/engine/SCons/Conftest.py +0 -794
- data/ext/v8/upstream/scons/engine/SCons/Debug.py +0 -237
- data/ext/v8/upstream/scons/engine/SCons/Defaults.py +0 -485
- data/ext/v8/upstream/scons/engine/SCons/Environment.py +0 -2327
- data/ext/v8/upstream/scons/engine/SCons/Errors.py +0 -207
- data/ext/v8/upstream/scons/engine/SCons/Executor.py +0 -636
- data/ext/v8/upstream/scons/engine/SCons/Job.py +0 -435
- data/ext/v8/upstream/scons/engine/SCons/Memoize.py +0 -292
- data/ext/v8/upstream/scons/engine/SCons/Node/Alias.py +0 -153
- data/ext/v8/upstream/scons/engine/SCons/Node/FS.py +0 -3220
- data/ext/v8/upstream/scons/engine/SCons/Node/Python.py +0 -128
- data/ext/v8/upstream/scons/engine/SCons/Node/__init__.py +0 -1341
- data/ext/v8/upstream/scons/engine/SCons/Options/BoolOption.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Options/EnumOption.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Options/ListOption.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Options/PackageOption.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Options/PathOption.py +0 -76
- data/ext/v8/upstream/scons/engine/SCons/Options/__init__.py +0 -74
- data/ext/v8/upstream/scons/engine/SCons/PathList.py +0 -232
- data/ext/v8/upstream/scons/engine/SCons/Platform/__init__.py +0 -236
- data/ext/v8/upstream/scons/engine/SCons/Platform/aix.py +0 -70
- data/ext/v8/upstream/scons/engine/SCons/Platform/cygwin.py +0 -55
- data/ext/v8/upstream/scons/engine/SCons/Platform/darwin.py +0 -46
- data/ext/v8/upstream/scons/engine/SCons/Platform/hpux.py +0 -46
- data/ext/v8/upstream/scons/engine/SCons/Platform/irix.py +0 -44
- data/ext/v8/upstream/scons/engine/SCons/Platform/os2.py +0 -58
- data/ext/v8/upstream/scons/engine/SCons/Platform/posix.py +0 -264
- data/ext/v8/upstream/scons/engine/SCons/Platform/sunos.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Platform/win32.py +0 -386
- data/ext/v8/upstream/scons/engine/SCons/SConf.py +0 -1038
- data/ext/v8/upstream/scons/engine/SCons/SConsign.py +0 -381
- data/ext/v8/upstream/scons/engine/SCons/Scanner/C.py +0 -132
- data/ext/v8/upstream/scons/engine/SCons/Scanner/D.py +0 -74
- data/ext/v8/upstream/scons/engine/SCons/Scanner/Dir.py +0 -111
- data/ext/v8/upstream/scons/engine/SCons/Scanner/Fortran.py +0 -320
- data/ext/v8/upstream/scons/engine/SCons/Scanner/IDL.py +0 -48
- data/ext/v8/upstream/scons/engine/SCons/Scanner/LaTeX.py +0 -378
- data/ext/v8/upstream/scons/engine/SCons/Scanner/Prog.py +0 -103
- data/ext/v8/upstream/scons/engine/SCons/Scanner/RC.py +0 -55
- data/ext/v8/upstream/scons/engine/SCons/Scanner/__init__.py +0 -415
- data/ext/v8/upstream/scons/engine/SCons/Script/Interactive.py +0 -386
- data/ext/v8/upstream/scons/engine/SCons/Script/Main.py +0 -1360
- data/ext/v8/upstream/scons/engine/SCons/Script/SConsOptions.py +0 -944
- data/ext/v8/upstream/scons/engine/SCons/Script/SConscript.py +0 -642
- data/ext/v8/upstream/scons/engine/SCons/Script/__init__.py +0 -414
- data/ext/v8/upstream/scons/engine/SCons/Sig.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Subst.py +0 -911
- data/ext/v8/upstream/scons/engine/SCons/Taskmaster.py +0 -1030
- data/ext/v8/upstream/scons/engine/SCons/Tool/386asm.py +0 -61
- data/ext/v8/upstream/scons/engine/SCons/Tool/BitKeeper.py +0 -65
- data/ext/v8/upstream/scons/engine/SCons/Tool/CVS.py +0 -73
- data/ext/v8/upstream/scons/engine/SCons/Tool/FortranCommon.py +0 -247
- data/ext/v8/upstream/scons/engine/SCons/Tool/JavaCommon.py +0 -324
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/__init__.py +0 -56
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/arch.py +0 -61
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/common.py +0 -210
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/netframework.py +0 -84
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/sdk.py +0 -321
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vc.py +0 -367
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vs.py +0 -497
- data/ext/v8/upstream/scons/engine/SCons/Tool/Perforce.py +0 -104
- data/ext/v8/upstream/scons/engine/SCons/Tool/PharLapCommon.py +0 -138
- data/ext/v8/upstream/scons/engine/SCons/Tool/RCS.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/SCCS.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/Subversion.py +0 -71
- data/ext/v8/upstream/scons/engine/SCons/Tool/__init__.py +0 -675
- data/ext/v8/upstream/scons/engine/SCons/Tool/aixc++.py +0 -82
- data/ext/v8/upstream/scons/engine/SCons/Tool/aixcc.py +0 -74
- data/ext/v8/upstream/scons/engine/SCons/Tool/aixf77.py +0 -80
- data/ext/v8/upstream/scons/engine/SCons/Tool/aixlink.py +0 -76
- data/ext/v8/upstream/scons/engine/SCons/Tool/applelink.py +0 -71
- data/ext/v8/upstream/scons/engine/SCons/Tool/ar.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/as.py +0 -78
- data/ext/v8/upstream/scons/engine/SCons/Tool/bcc32.py +0 -82
- data/ext/v8/upstream/scons/engine/SCons/Tool/c++.py +0 -99
- data/ext/v8/upstream/scons/engine/SCons/Tool/cc.py +0 -114
- data/ext/v8/upstream/scons/engine/SCons/Tool/cvf.py +0 -58
- data/ext/v8/upstream/scons/engine/SCons/Tool/default.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Tool/dmd.py +0 -224
- data/ext/v8/upstream/scons/engine/SCons/Tool/dvi.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/dvipdf.py +0 -125
- data/ext/v8/upstream/scons/engine/SCons/Tool/dvips.py +0 -94
- data/ext/v8/upstream/scons/engine/SCons/Tool/f77.py +0 -62
- data/ext/v8/upstream/scons/engine/SCons/Tool/f90.py +0 -62
- data/ext/v8/upstream/scons/engine/SCons/Tool/f95.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/filesystem.py +0 -98
- data/ext/v8/upstream/scons/engine/SCons/Tool/fortran.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/g++.py +0 -90
- data/ext/v8/upstream/scons/engine/SCons/Tool/g77.py +0 -73
- data/ext/v8/upstream/scons/engine/SCons/Tool/gas.py +0 -53
- data/ext/v8/upstream/scons/engine/SCons/Tool/gcc.py +0 -80
- data/ext/v8/upstream/scons/engine/SCons/Tool/gfortran.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/gnulink.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/gs.py +0 -81
- data/ext/v8/upstream/scons/engine/SCons/Tool/hpc++.py +0 -85
- data/ext/v8/upstream/scons/engine/SCons/Tool/hpcc.py +0 -53
- data/ext/v8/upstream/scons/engine/SCons/Tool/hplink.py +0 -77
- data/ext/v8/upstream/scons/engine/SCons/Tool/icc.py +0 -59
- data/ext/v8/upstream/scons/engine/SCons/Tool/icl.py +0 -52
- data/ext/v8/upstream/scons/engine/SCons/Tool/ifl.py +0 -72
- data/ext/v8/upstream/scons/engine/SCons/Tool/ifort.py +0 -90
- data/ext/v8/upstream/scons/engine/SCons/Tool/ilink.py +0 -59
- data/ext/v8/upstream/scons/engine/SCons/Tool/ilink32.py +0 -60
- data/ext/v8/upstream/scons/engine/SCons/Tool/install.py +0 -229
- data/ext/v8/upstream/scons/engine/SCons/Tool/intelc.py +0 -490
- data/ext/v8/upstream/scons/engine/SCons/Tool/ipkg.py +0 -71
- data/ext/v8/upstream/scons/engine/SCons/Tool/jar.py +0 -110
- data/ext/v8/upstream/scons/engine/SCons/Tool/javac.py +0 -234
- data/ext/v8/upstream/scons/engine/SCons/Tool/javah.py +0 -138
- data/ext/v8/upstream/scons/engine/SCons/Tool/latex.py +0 -79
- data/ext/v8/upstream/scons/engine/SCons/Tool/lex.py +0 -99
- data/ext/v8/upstream/scons/engine/SCons/Tool/link.py +0 -121
- data/ext/v8/upstream/scons/engine/SCons/Tool/linkloc.py +0 -112
- data/ext/v8/upstream/scons/engine/SCons/Tool/m4.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/masm.py +0 -77
- data/ext/v8/upstream/scons/engine/SCons/Tool/midl.py +0 -90
- data/ext/v8/upstream/scons/engine/SCons/Tool/mingw.py +0 -159
- data/ext/v8/upstream/scons/engine/SCons/Tool/mslib.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/mslink.py +0 -266
- data/ext/v8/upstream/scons/engine/SCons/Tool/mssdk.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Tool/msvc.py +0 -269
- data/ext/v8/upstream/scons/engine/SCons/Tool/msvs.py +0 -1439
- data/ext/v8/upstream/scons/engine/SCons/Tool/mwcc.py +0 -208
- data/ext/v8/upstream/scons/engine/SCons/Tool/mwld.py +0 -107
- data/ext/v8/upstream/scons/engine/SCons/Tool/nasm.py +0 -72
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/__init__.py +0 -314
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/ipk.py +0 -185
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/msi.py +0 -526
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/rpm.py +0 -367
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_tarbz2.py +0 -43
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_targz.py +0 -43
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_zip.py +0 -43
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/tarbz2.py +0 -44
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/targz.py +0 -44
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/zip.py +0 -44
- data/ext/v8/upstream/scons/engine/SCons/Tool/pdf.py +0 -78
- data/ext/v8/upstream/scons/engine/SCons/Tool/pdflatex.py +0 -83
- data/ext/v8/upstream/scons/engine/SCons/Tool/pdftex.py +0 -108
- data/ext/v8/upstream/scons/engine/SCons/Tool/qt.py +0 -336
- data/ext/v8/upstream/scons/engine/SCons/Tool/rmic.py +0 -121
- data/ext/v8/upstream/scons/engine/SCons/Tool/rpcgen.py +0 -70
- data/ext/v8/upstream/scons/engine/SCons/Tool/rpm.py +0 -132
- data/ext/v8/upstream/scons/engine/SCons/Tool/sgiar.py +0 -68
- data/ext/v8/upstream/scons/engine/SCons/Tool/sgic++.py +0 -58
- data/ext/v8/upstream/scons/engine/SCons/Tool/sgicc.py +0 -53
- data/ext/v8/upstream/scons/engine/SCons/Tool/sgilink.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunar.py +0 -67
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunc++.py +0 -142
- data/ext/v8/upstream/scons/engine/SCons/Tool/suncc.py +0 -58
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunf77.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunf90.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunf95.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunlink.py +0 -77
- data/ext/v8/upstream/scons/engine/SCons/Tool/swig.py +0 -186
- data/ext/v8/upstream/scons/engine/SCons/Tool/tar.py +0 -73
- data/ext/v8/upstream/scons/engine/SCons/Tool/tex.py +0 -805
- data/ext/v8/upstream/scons/engine/SCons/Tool/textfile.py +0 -175
- data/ext/v8/upstream/scons/engine/SCons/Tool/tlib.py +0 -53
- data/ext/v8/upstream/scons/engine/SCons/Tool/wix.py +0 -100
- data/ext/v8/upstream/scons/engine/SCons/Tool/yacc.py +0 -131
- data/ext/v8/upstream/scons/engine/SCons/Tool/zip.py +0 -100
- data/ext/v8/upstream/scons/engine/SCons/Util.py +0 -1645
- data/ext/v8/upstream/scons/engine/SCons/Variables/BoolVariable.py +0 -91
- data/ext/v8/upstream/scons/engine/SCons/Variables/EnumVariable.py +0 -107
- data/ext/v8/upstream/scons/engine/SCons/Variables/ListVariable.py +0 -139
- data/ext/v8/upstream/scons/engine/SCons/Variables/PackageVariable.py +0 -109
- data/ext/v8/upstream/scons/engine/SCons/Variables/PathVariable.py +0 -147
- data/ext/v8/upstream/scons/engine/SCons/Variables/__init__.py +0 -317
- data/ext/v8/upstream/scons/engine/SCons/Warnings.py +0 -228
- data/ext/v8/upstream/scons/engine/SCons/__init__.py +0 -49
- data/ext/v8/upstream/scons/engine/SCons/compat/__init__.py +0 -302
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_UserString.py +0 -98
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_hashlib.py +0 -91
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_itertools.py +0 -124
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_optparse.py +0 -1725
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets.py +0 -583
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets15.py +0 -176
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_shlex.py +0 -325
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_subprocess.py +0 -1296
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_textwrap.py +0 -382
- data/ext/v8/upstream/scons/engine/SCons/compat/builtins.py +0 -187
- data/ext/v8/upstream/scons/engine/SCons/cpp.py +0 -598
- data/ext/v8/upstream/scons/engine/SCons/dblite.py +0 -248
- data/ext/v8/upstream/scons/engine/SCons/exitfuncs.py +0 -77
- data/ext/v8/upstream/scons/os_spawnv_fix.diff +0 -83
- data/ext/v8/upstream/scons/scons-time.1 +0 -1017
- data/ext/v8/upstream/scons/scons.1 +0 -15179
- data/ext/v8/upstream/scons/sconsign.1 +0 -208
- data/ext/v8/upstream/scons/script/scons +0 -184
- data/ext/v8/upstream/scons/script/scons-time +0 -1529
- data/ext/v8/upstream/scons/script/scons.bat +0 -31
- data/ext/v8/upstream/scons/script/sconsign +0 -508
- data/ext/v8/upstream/scons/setup.cfg +0 -6
- data/ext/v8/upstream/scons/setup.py +0 -427
- data/ext/v8/v8.cpp +0 -89
- data/ext/v8/v8_cxt.cpp +0 -92
- data/ext/v8/v8_cxt.h +0 -20
- data/ext/v8/v8_func.cpp +0 -10
- data/ext/v8/v8_func.h +0 -11
- data/ext/v8/v8_msg.cpp +0 -54
- data/ext/v8/v8_msg.h +0 -18
- data/ext/v8/v8_obj.cpp +0 -52
- data/ext/v8/v8_obj.h +0 -13
- data/ext/v8/v8_ref.cpp +0 -26
- data/ext/v8/v8_ref.h +0 -31
- data/ext/v8/v8_script.cpp +0 -20
- data/ext/v8/v8_script.h +0 -8
- data/ext/v8/v8_standalone.cpp +0 -69
- data/ext/v8/v8_standalone.h +0 -31
- data/ext/v8/v8_str.cpp +0 -17
- data/ext/v8/v8_str.h +0 -9
- data/ext/v8/v8_template.cpp +0 -53
- data/ext/v8/v8_template.h +0 -13
- data/lib/v8/to.rb +0 -33
- data/lib/v8/v8.so +0 -0
- data/script/console +0 -10
- data/script/destroy +0 -14
- data/script/generate +0 -14
- data/spec/ext/cxt_spec.rb +0 -25
- data/spec/ext/obj_spec.rb +0 -13
- data/spec/redjs/jsapi_spec.rb +0 -405
- data/spec/redjs/tap.rb +0 -8
- data/spec/redjs_helper.rb +0 -3
- data/spec/spec.opts +0 -1
- data/spec/v8/to_spec.rb +0 -15
- data/tasks/rspec.rake +0 -21
@@ -1,49 +0,0 @@
|
|
1
|
-
// Copyright 2009 the V8 project authors. All rights reserved.
|
2
|
-
// Redistribution and use in source and binary forms, with or without
|
3
|
-
// modification, are permitted provided that the following conditions are
|
4
|
-
// met:
|
5
|
-
//
|
6
|
-
// * Redistributions of source code must retain the above copyright
|
7
|
-
// notice, this list of conditions and the following disclaimer.
|
8
|
-
// * Redistributions in binary form must reproduce the above
|
9
|
-
// copyright notice, this list of conditions and the following
|
10
|
-
// disclaimer in the documentation and/or other materials provided
|
11
|
-
// with the distribution.
|
12
|
-
// * Neither the name of Google Inc. nor the names of its
|
13
|
-
// contributors may be used to endorse or promote products derived
|
14
|
-
// from this software without specific prior written permission.
|
15
|
-
//
|
16
|
-
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
17
|
-
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
18
|
-
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
19
|
-
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
20
|
-
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
21
|
-
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
22
|
-
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
23
|
-
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
24
|
-
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
25
|
-
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
26
|
-
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
-
|
28
|
-
#ifndef V8_JUMP_TARGET_INL_H_
|
29
|
-
#define V8_JUMP_TARGET_INL_H_
|
30
|
-
|
31
|
-
namespace v8 {
|
32
|
-
namespace internal {
|
33
|
-
|
34
|
-
CodeGenerator* JumpTarget::cgen() {
|
35
|
-
return CodeGeneratorScope::Current();
|
36
|
-
}
|
37
|
-
|
38
|
-
void JumpTarget::InitializeEntryElement(int index, FrameElement* target) {
|
39
|
-
entry_frame_->elements_[index].clear_copied();
|
40
|
-
if (target->is_register()) {
|
41
|
-
entry_frame_->set_register_location(target->reg(), index);
|
42
|
-
} else if (target->is_copy()) {
|
43
|
-
entry_frame_->elements_[target->index()].set_copied();
|
44
|
-
}
|
45
|
-
}
|
46
|
-
|
47
|
-
} } // namespace v8::internal
|
48
|
-
|
49
|
-
#endif // V8_JUMP_TARGET_INL_H_
|
@@ -1,383 +0,0 @@
|
|
1
|
-
// Copyright 2009 the V8 project authors. All rights reserved.
|
2
|
-
// Redistribution and use in source and binary forms, with or without
|
3
|
-
// modification, are permitted provided that the following conditions are
|
4
|
-
// met:
|
5
|
-
//
|
6
|
-
// * Redistributions of source code must retain the above copyright
|
7
|
-
// notice, this list of conditions and the following disclaimer.
|
8
|
-
// * Redistributions in binary form must reproduce the above
|
9
|
-
// copyright notice, this list of conditions and the following
|
10
|
-
// disclaimer in the documentation and/or other materials provided
|
11
|
-
// with the distribution.
|
12
|
-
// * Neither the name of Google Inc. nor the names of its
|
13
|
-
// contributors may be used to endorse or promote products derived
|
14
|
-
// from this software without specific prior written permission.
|
15
|
-
//
|
16
|
-
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
17
|
-
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
18
|
-
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
19
|
-
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
20
|
-
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
21
|
-
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
22
|
-
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
23
|
-
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
24
|
-
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
25
|
-
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
26
|
-
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
-
|
28
|
-
#include "v8.h"
|
29
|
-
|
30
|
-
#include "codegen-inl.h"
|
31
|
-
#include "jump-target-inl.h"
|
32
|
-
#include "register-allocator-inl.h"
|
33
|
-
|
34
|
-
namespace v8 {
|
35
|
-
namespace internal {
|
36
|
-
|
37
|
-
// -------------------------------------------------------------------------
|
38
|
-
// JumpTarget implementation.
|
39
|
-
|
40
|
-
bool JumpTarget::compiling_deferred_code_ = false;
|
41
|
-
|
42
|
-
|
43
|
-
void JumpTarget::Unuse() {
|
44
|
-
reaching_frames_.Clear();
|
45
|
-
merge_labels_.Clear();
|
46
|
-
entry_frame_ = NULL;
|
47
|
-
entry_label_.Unuse();
|
48
|
-
}
|
49
|
-
|
50
|
-
|
51
|
-
void JumpTarget::ComputeEntryFrame() {
|
52
|
-
// Given: a collection of frames reaching by forward CFG edges and
|
53
|
-
// the directionality of the block. Compute: an entry frame for the
|
54
|
-
// block.
|
55
|
-
|
56
|
-
Counters::compute_entry_frame.Increment();
|
57
|
-
#ifdef DEBUG
|
58
|
-
if (compiling_deferred_code_) {
|
59
|
-
ASSERT(reaching_frames_.length() > 1);
|
60
|
-
VirtualFrame* frame = reaching_frames_[0];
|
61
|
-
bool all_identical = true;
|
62
|
-
for (int i = 1; i < reaching_frames_.length(); i++) {
|
63
|
-
if (!frame->Equals(reaching_frames_[i])) {
|
64
|
-
all_identical = false;
|
65
|
-
break;
|
66
|
-
}
|
67
|
-
}
|
68
|
-
ASSERT(!all_identical || all_identical);
|
69
|
-
}
|
70
|
-
#endif
|
71
|
-
|
72
|
-
// Choose an initial frame.
|
73
|
-
VirtualFrame* initial_frame = reaching_frames_[0];
|
74
|
-
|
75
|
-
// A list of pointers to frame elements in the entry frame. NULL
|
76
|
-
// indicates that the element has not yet been determined.
|
77
|
-
int length = initial_frame->element_count();
|
78
|
-
ZoneList<FrameElement*> elements(length);
|
79
|
-
|
80
|
-
// Initially populate the list of elements based on the initial
|
81
|
-
// frame.
|
82
|
-
for (int i = 0; i < length; i++) {
|
83
|
-
FrameElement element = initial_frame->elements_[i];
|
84
|
-
// We do not allow copies or constants in bidirectional frames.
|
85
|
-
if (direction_ == BIDIRECTIONAL) {
|
86
|
-
if (element.is_constant() || element.is_copy()) {
|
87
|
-
elements.Add(NULL);
|
88
|
-
continue;
|
89
|
-
}
|
90
|
-
}
|
91
|
-
elements.Add(&initial_frame->elements_[i]);
|
92
|
-
}
|
93
|
-
|
94
|
-
// Compute elements based on the other reaching frames.
|
95
|
-
if (reaching_frames_.length() > 1) {
|
96
|
-
for (int i = 0; i < length; i++) {
|
97
|
-
FrameElement* element = elements[i];
|
98
|
-
for (int j = 1; j < reaching_frames_.length(); j++) {
|
99
|
-
// Element computation is monotonic: new information will not
|
100
|
-
// change our decision about undetermined or invalid elements.
|
101
|
-
if (element == NULL || !element->is_valid()) break;
|
102
|
-
|
103
|
-
element = element->Combine(&reaching_frames_[j]->elements_[i]);
|
104
|
-
}
|
105
|
-
elements[i] = element;
|
106
|
-
}
|
107
|
-
}
|
108
|
-
|
109
|
-
// Build the new frame. A freshly allocated frame has memory elements
|
110
|
-
// for the parameters and some platform-dependent elements (e.g.,
|
111
|
-
// return address). Replace those first.
|
112
|
-
entry_frame_ = new VirtualFrame();
|
113
|
-
int index = 0;
|
114
|
-
for (; index < entry_frame_->element_count(); index++) {
|
115
|
-
FrameElement* target = elements[index];
|
116
|
-
// If the element is determined, set it now. Count registers. Mark
|
117
|
-
// elements as copied exactly when they have a copy. Undetermined
|
118
|
-
// elements are initially recorded as if in memory.
|
119
|
-
if (target != NULL) {
|
120
|
-
entry_frame_->elements_[index] = *target;
|
121
|
-
InitializeEntryElement(index, target);
|
122
|
-
}
|
123
|
-
}
|
124
|
-
// Then fill in the rest of the frame with new elements.
|
125
|
-
for (; index < length; index++) {
|
126
|
-
FrameElement* target = elements[index];
|
127
|
-
if (target == NULL) {
|
128
|
-
entry_frame_->elements_.Add(FrameElement::MemoryElement());
|
129
|
-
} else {
|
130
|
-
entry_frame_->elements_.Add(*target);
|
131
|
-
InitializeEntryElement(index, target);
|
132
|
-
}
|
133
|
-
}
|
134
|
-
|
135
|
-
// Allocate any still-undetermined frame elements to registers or
|
136
|
-
// memory, from the top down.
|
137
|
-
for (int i = length - 1; i >= 0; i--) {
|
138
|
-
if (elements[i] == NULL) {
|
139
|
-
// Loop over all the reaching frames to check whether the element
|
140
|
-
// is synced on all frames and to count the registers it occupies.
|
141
|
-
bool is_synced = true;
|
142
|
-
RegisterFile candidate_registers;
|
143
|
-
int best_count = kMinInt;
|
144
|
-
int best_reg_num = RegisterAllocator::kInvalidRegister;
|
145
|
-
|
146
|
-
for (int j = 0; j < reaching_frames_.length(); j++) {
|
147
|
-
FrameElement element = reaching_frames_[j]->elements_[i];
|
148
|
-
is_synced = is_synced && element.is_synced();
|
149
|
-
if (element.is_register() && !entry_frame_->is_used(element.reg())) {
|
150
|
-
// Count the register occurrence and remember it if better
|
151
|
-
// than the previous best.
|
152
|
-
int num = RegisterAllocator::ToNumber(element.reg());
|
153
|
-
candidate_registers.Use(num);
|
154
|
-
if (candidate_registers.count(num) > best_count) {
|
155
|
-
best_count = candidate_registers.count(num);
|
156
|
-
best_reg_num = num;
|
157
|
-
}
|
158
|
-
}
|
159
|
-
}
|
160
|
-
|
161
|
-
// If the value is synced on all frames, put it in memory. This
|
162
|
-
// costs nothing at the merge code but will incur a
|
163
|
-
// memory-to-register move when the value is needed later.
|
164
|
-
if (is_synced) {
|
165
|
-
// Already recorded as a memory element.
|
166
|
-
continue;
|
167
|
-
}
|
168
|
-
|
169
|
-
// Try to put it in a register. If there was no best choice
|
170
|
-
// consider any free register.
|
171
|
-
if (best_reg_num == RegisterAllocator::kInvalidRegister) {
|
172
|
-
for (int j = 0; j < RegisterAllocator::kNumRegisters; j++) {
|
173
|
-
if (!entry_frame_->is_used(j)) {
|
174
|
-
best_reg_num = j;
|
175
|
-
break;
|
176
|
-
}
|
177
|
-
}
|
178
|
-
}
|
179
|
-
|
180
|
-
if (best_reg_num != RegisterAllocator::kInvalidRegister) {
|
181
|
-
// If there was a register choice, use it. Preserve the copied
|
182
|
-
// flag on the element.
|
183
|
-
bool is_copied = entry_frame_->elements_[i].is_copied();
|
184
|
-
Register reg = RegisterAllocator::ToRegister(best_reg_num);
|
185
|
-
entry_frame_->elements_[i] =
|
186
|
-
FrameElement::RegisterElement(reg,
|
187
|
-
FrameElement::NOT_SYNCED);
|
188
|
-
if (is_copied) entry_frame_->elements_[i].set_copied();
|
189
|
-
entry_frame_->set_register_location(reg, i);
|
190
|
-
}
|
191
|
-
}
|
192
|
-
}
|
193
|
-
|
194
|
-
// The stack pointer is at the highest synced element or the base of
|
195
|
-
// the expression stack.
|
196
|
-
int stack_pointer = length - 1;
|
197
|
-
while (stack_pointer >= entry_frame_->expression_base_index() &&
|
198
|
-
!entry_frame_->elements_[stack_pointer].is_synced()) {
|
199
|
-
stack_pointer--;
|
200
|
-
}
|
201
|
-
entry_frame_->stack_pointer_ = stack_pointer;
|
202
|
-
}
|
203
|
-
|
204
|
-
|
205
|
-
void JumpTarget::Jump() {
|
206
|
-
DoJump();
|
207
|
-
}
|
208
|
-
|
209
|
-
|
210
|
-
void JumpTarget::Jump(Result* arg) {
|
211
|
-
ASSERT(cgen()->has_valid_frame());
|
212
|
-
|
213
|
-
cgen()->frame()->Push(arg);
|
214
|
-
DoJump();
|
215
|
-
}
|
216
|
-
|
217
|
-
|
218
|
-
void JumpTarget::Branch(Condition cc, Hint hint) {
|
219
|
-
DoBranch(cc, hint);
|
220
|
-
}
|
221
|
-
|
222
|
-
|
223
|
-
#ifdef DEBUG
|
224
|
-
#define DECLARE_ARGCHECK_VARS(name) \
|
225
|
-
Result::Type name##_type = name->type(); \
|
226
|
-
Register name##_reg = name->is_register() ? name->reg() : no_reg
|
227
|
-
|
228
|
-
#define ASSERT_ARGCHECK(name) \
|
229
|
-
ASSERT(name->type() == name##_type); \
|
230
|
-
ASSERT(!name->is_register() || name->reg().is(name##_reg))
|
231
|
-
|
232
|
-
#else
|
233
|
-
#define DECLARE_ARGCHECK_VARS(name) do {} while (false)
|
234
|
-
|
235
|
-
#define ASSERT_ARGCHECK(name) do {} while (false)
|
236
|
-
#endif
|
237
|
-
|
238
|
-
void JumpTarget::Branch(Condition cc, Result* arg, Hint hint) {
|
239
|
-
ASSERT(cgen()->has_valid_frame());
|
240
|
-
|
241
|
-
// We want to check that non-frame registers at the call site stay in
|
242
|
-
// the same registers on the fall-through branch.
|
243
|
-
DECLARE_ARGCHECK_VARS(arg);
|
244
|
-
|
245
|
-
cgen()->frame()->Push(arg);
|
246
|
-
DoBranch(cc, hint);
|
247
|
-
*arg = cgen()->frame()->Pop();
|
248
|
-
|
249
|
-
ASSERT_ARGCHECK(arg);
|
250
|
-
}
|
251
|
-
|
252
|
-
|
253
|
-
void BreakTarget::Branch(Condition cc, Result* arg, Hint hint) {
|
254
|
-
ASSERT(cgen()->has_valid_frame());
|
255
|
-
|
256
|
-
int count = cgen()->frame()->height() - expected_height_;
|
257
|
-
if (count > 0) {
|
258
|
-
// We negate and branch here rather than using DoBranch's negate
|
259
|
-
// and branch. This gives us a hook to remove statement state
|
260
|
-
// from the frame.
|
261
|
-
JumpTarget fall_through;
|
262
|
-
// Branch to fall through will not negate, because it is a
|
263
|
-
// forward-only target.
|
264
|
-
fall_through.Branch(NegateCondition(cc), NegateHint(hint));
|
265
|
-
Jump(arg); // May emit merge code here.
|
266
|
-
fall_through.Bind();
|
267
|
-
} else {
|
268
|
-
DECLARE_ARGCHECK_VARS(arg);
|
269
|
-
cgen()->frame()->Push(arg);
|
270
|
-
DoBranch(cc, hint);
|
271
|
-
*arg = cgen()->frame()->Pop();
|
272
|
-
ASSERT_ARGCHECK(arg);
|
273
|
-
}
|
274
|
-
}
|
275
|
-
|
276
|
-
#undef DECLARE_ARGCHECK_VARS
|
277
|
-
#undef ASSERT_ARGCHECK
|
278
|
-
|
279
|
-
|
280
|
-
void JumpTarget::Bind() {
|
281
|
-
DoBind();
|
282
|
-
}
|
283
|
-
|
284
|
-
|
285
|
-
void JumpTarget::Bind(Result* arg) {
|
286
|
-
if (cgen()->has_valid_frame()) {
|
287
|
-
cgen()->frame()->Push(arg);
|
288
|
-
}
|
289
|
-
DoBind();
|
290
|
-
*arg = cgen()->frame()->Pop();
|
291
|
-
}
|
292
|
-
|
293
|
-
|
294
|
-
void JumpTarget::AddReachingFrame(VirtualFrame* frame) {
|
295
|
-
ASSERT(reaching_frames_.length() == merge_labels_.length());
|
296
|
-
ASSERT(entry_frame_ == NULL);
|
297
|
-
Label fresh;
|
298
|
-
merge_labels_.Add(fresh);
|
299
|
-
reaching_frames_.Add(frame);
|
300
|
-
}
|
301
|
-
|
302
|
-
|
303
|
-
// -------------------------------------------------------------------------
|
304
|
-
// BreakTarget implementation.
|
305
|
-
|
306
|
-
void BreakTarget::set_direction(Directionality direction) {
|
307
|
-
JumpTarget::set_direction(direction);
|
308
|
-
ASSERT(cgen()->has_valid_frame());
|
309
|
-
expected_height_ = cgen()->frame()->height();
|
310
|
-
}
|
311
|
-
|
312
|
-
|
313
|
-
void BreakTarget::CopyTo(BreakTarget* destination) {
|
314
|
-
ASSERT(destination != NULL);
|
315
|
-
destination->direction_ = direction_;
|
316
|
-
destination->reaching_frames_.Rewind(0);
|
317
|
-
destination->reaching_frames_.AddAll(reaching_frames_);
|
318
|
-
destination->merge_labels_.Rewind(0);
|
319
|
-
destination->merge_labels_.AddAll(merge_labels_);
|
320
|
-
destination->entry_frame_ = entry_frame_;
|
321
|
-
destination->entry_label_ = entry_label_;
|
322
|
-
destination->expected_height_ = expected_height_;
|
323
|
-
}
|
324
|
-
|
325
|
-
|
326
|
-
void BreakTarget::Branch(Condition cc, Hint hint) {
|
327
|
-
ASSERT(cgen()->has_valid_frame());
|
328
|
-
|
329
|
-
int count = cgen()->frame()->height() - expected_height_;
|
330
|
-
if (count > 0) {
|
331
|
-
// We negate and branch here rather than using DoBranch's negate
|
332
|
-
// and branch. This gives us a hook to remove statement state
|
333
|
-
// from the frame.
|
334
|
-
JumpTarget fall_through;
|
335
|
-
// Branch to fall through will not negate, because it is a
|
336
|
-
// forward-only target.
|
337
|
-
fall_through.Branch(NegateCondition(cc), NegateHint(hint));
|
338
|
-
Jump(); // May emit merge code here.
|
339
|
-
fall_through.Bind();
|
340
|
-
} else {
|
341
|
-
DoBranch(cc, hint);
|
342
|
-
}
|
343
|
-
}
|
344
|
-
|
345
|
-
|
346
|
-
// -------------------------------------------------------------------------
|
347
|
-
// ShadowTarget implementation.
|
348
|
-
|
349
|
-
ShadowTarget::ShadowTarget(BreakTarget* shadowed) {
|
350
|
-
ASSERT(shadowed != NULL);
|
351
|
-
other_target_ = shadowed;
|
352
|
-
|
353
|
-
#ifdef DEBUG
|
354
|
-
is_shadowing_ = true;
|
355
|
-
#endif
|
356
|
-
// While shadowing this shadow target saves the state of the original.
|
357
|
-
shadowed->CopyTo(this);
|
358
|
-
|
359
|
-
// The original's state is reset.
|
360
|
-
shadowed->Unuse();
|
361
|
-
ASSERT(cgen()->has_valid_frame());
|
362
|
-
shadowed->set_expected_height(cgen()->frame()->height());
|
363
|
-
}
|
364
|
-
|
365
|
-
|
366
|
-
void ShadowTarget::StopShadowing() {
|
367
|
-
ASSERT(is_shadowing_);
|
368
|
-
|
369
|
-
// The states of this target, which was shadowed, and the original
|
370
|
-
// target, which was shadowing, are swapped.
|
371
|
-
BreakTarget temp;
|
372
|
-
other_target_->CopyTo(&temp);
|
373
|
-
CopyTo(other_target_);
|
374
|
-
temp.CopyTo(this);
|
375
|
-
temp.Unuse();
|
376
|
-
|
377
|
-
#ifdef DEBUG
|
378
|
-
is_shadowing_ = false;
|
379
|
-
#endif
|
380
|
-
}
|
381
|
-
|
382
|
-
|
383
|
-
} } // namespace v8::internal
|
@@ -1,280 +0,0 @@
|
|
1
|
-
// Copyright 2008 the V8 project authors. All rights reserved.
|
2
|
-
// Redistribution and use in source and binary forms, with or without
|
3
|
-
// modification, are permitted provided that the following conditions are
|
4
|
-
// met:
|
5
|
-
//
|
6
|
-
// * Redistributions of source code must retain the above copyright
|
7
|
-
// notice, this list of conditions and the following disclaimer.
|
8
|
-
// * Redistributions in binary form must reproduce the above
|
9
|
-
// copyright notice, this list of conditions and the following
|
10
|
-
// disclaimer in the documentation and/or other materials provided
|
11
|
-
// with the distribution.
|
12
|
-
// * Neither the name of Google Inc. nor the names of its
|
13
|
-
// contributors may be used to endorse or promote products derived
|
14
|
-
// from this software without specific prior written permission.
|
15
|
-
//
|
16
|
-
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
17
|
-
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
18
|
-
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
19
|
-
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
20
|
-
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
21
|
-
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
22
|
-
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
23
|
-
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
24
|
-
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
25
|
-
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
26
|
-
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
-
|
28
|
-
#ifndef V8_JUMP_TARGET_H_
|
29
|
-
#define V8_JUMP_TARGET_H_
|
30
|
-
|
31
|
-
#include "macro-assembler.h"
|
32
|
-
|
33
|
-
namespace v8 {
|
34
|
-
namespace internal {
|
35
|
-
|
36
|
-
// Forward declarations.
|
37
|
-
class FrameElement;
|
38
|
-
class Result;
|
39
|
-
class VirtualFrame;
|
40
|
-
|
41
|
-
// -------------------------------------------------------------------------
|
42
|
-
// Jump targets
|
43
|
-
//
|
44
|
-
// A jump target is an abstraction of a basic-block entry in generated
|
45
|
-
// code. It collects all the virtual frames reaching the block by
|
46
|
-
// forward jumps and pairs them with labels for the merge code along
|
47
|
-
// all forward-reaching paths. When bound, an expected frame for the
|
48
|
-
// block is determined and code is generated to merge to the expected
|
49
|
-
// frame. For backward jumps, the merge code is generated at the edge
|
50
|
-
// leaving the predecessor block.
|
51
|
-
//
|
52
|
-
// A jump target must have been reached via control flow (either by
|
53
|
-
// jumping, branching, or falling through) at the time it is bound.
|
54
|
-
// In particular, this means that at least one of the control-flow
|
55
|
-
// graph edges reaching the target must be a forward edge.
|
56
|
-
|
57
|
-
class JumpTarget : public ZoneObject { // Shadows are dynamically allocated.
|
58
|
-
public:
|
59
|
-
// Forward-only jump targets can only be reached by forward CFG edges.
|
60
|
-
enum Directionality { FORWARD_ONLY, BIDIRECTIONAL };
|
61
|
-
|
62
|
-
// Construct a jump target used to generate code and to provide
|
63
|
-
// access to a current frame.
|
64
|
-
explicit JumpTarget(Directionality direction)
|
65
|
-
: direction_(direction),
|
66
|
-
reaching_frames_(0),
|
67
|
-
merge_labels_(0),
|
68
|
-
entry_frame_(NULL) {
|
69
|
-
}
|
70
|
-
|
71
|
-
// Construct a jump target.
|
72
|
-
JumpTarget()
|
73
|
-
: direction_(FORWARD_ONLY),
|
74
|
-
reaching_frames_(0),
|
75
|
-
merge_labels_(0),
|
76
|
-
entry_frame_(NULL) {
|
77
|
-
}
|
78
|
-
|
79
|
-
virtual ~JumpTarget() {}
|
80
|
-
|
81
|
-
// Set the direction of the jump target.
|
82
|
-
virtual void set_direction(Directionality direction) {
|
83
|
-
direction_ = direction;
|
84
|
-
}
|
85
|
-
|
86
|
-
// Treat the jump target as a fresh one. The state is reset.
|
87
|
-
void Unuse();
|
88
|
-
|
89
|
-
inline CodeGenerator* cgen();
|
90
|
-
|
91
|
-
Label* entry_label() { return &entry_label_; }
|
92
|
-
|
93
|
-
VirtualFrame* entry_frame() const { return entry_frame_; }
|
94
|
-
void set_entry_frame(VirtualFrame* frame) {
|
95
|
-
entry_frame_ = frame;
|
96
|
-
}
|
97
|
-
|
98
|
-
// Predicates testing the state of the encapsulated label.
|
99
|
-
bool is_bound() const { return entry_label_.is_bound(); }
|
100
|
-
bool is_linked() const {
|
101
|
-
return !is_bound() && !reaching_frames_.is_empty();
|
102
|
-
}
|
103
|
-
bool is_unused() const {
|
104
|
-
// This is !is_bound() && !is_linked().
|
105
|
-
return !is_bound() && reaching_frames_.is_empty();
|
106
|
-
}
|
107
|
-
|
108
|
-
// Emit a jump to the target. There must be a current frame at the
|
109
|
-
// jump and there will be no current frame after the jump.
|
110
|
-
virtual void Jump();
|
111
|
-
virtual void Jump(Result* arg);
|
112
|
-
|
113
|
-
// Emit a conditional branch to the target. There must be a current
|
114
|
-
// frame at the branch. The current frame will fall through to the
|
115
|
-
// code after the branch. The arg is a result that is live both at
|
116
|
-
// the target and the fall-through.
|
117
|
-
virtual void Branch(Condition cc, Hint hint = no_hint);
|
118
|
-
virtual void Branch(Condition cc, Result* arg, Hint hint = no_hint);
|
119
|
-
|
120
|
-
// Bind a jump target. If there is no current frame at the binding
|
121
|
-
// site, there must be at least one frame reaching via a forward
|
122
|
-
// jump.
|
123
|
-
virtual void Bind();
|
124
|
-
virtual void Bind(Result* arg);
|
125
|
-
|
126
|
-
// Emit a call to a jump target. There must be a current frame at
|
127
|
-
// the call. The frame at the target is the same as the current
|
128
|
-
// frame except for an extra return address on top of it. The frame
|
129
|
-
// after the call is the same as the frame before the call.
|
130
|
-
void Call();
|
131
|
-
|
132
|
-
static void set_compiling_deferred_code(bool flag) {
|
133
|
-
compiling_deferred_code_ = flag;
|
134
|
-
}
|
135
|
-
|
136
|
-
protected:
|
137
|
-
// Directionality flag set at initialization time.
|
138
|
-
Directionality direction_;
|
139
|
-
|
140
|
-
// A list of frames reaching this block via forward jumps.
|
141
|
-
ZoneList<VirtualFrame*> reaching_frames_;
|
142
|
-
|
143
|
-
// A parallel list of labels for merge code.
|
144
|
-
ZoneList<Label> merge_labels_;
|
145
|
-
|
146
|
-
// The frame used on entry to the block and expected at backward
|
147
|
-
// jumps to the block. Set when the jump target is bound, but may
|
148
|
-
// or may not be set for forward-only blocks.
|
149
|
-
VirtualFrame* entry_frame_;
|
150
|
-
|
151
|
-
// The actual entry label of the block.
|
152
|
-
Label entry_label_;
|
153
|
-
|
154
|
-
// Implementations of Jump, Branch, and Bind with all arguments and
|
155
|
-
// return values using the virtual frame.
|
156
|
-
void DoJump();
|
157
|
-
void DoBranch(Condition cc, Hint hint);
|
158
|
-
void DoBind();
|
159
|
-
|
160
|
-
private:
|
161
|
-
static bool compiling_deferred_code_;
|
162
|
-
|
163
|
-
// Add a virtual frame reaching this labeled block via a forward jump,
|
164
|
-
// and a corresponding merge code label.
|
165
|
-
void AddReachingFrame(VirtualFrame* frame);
|
166
|
-
|
167
|
-
// Perform initialization required during entry frame computation
|
168
|
-
// after setting the virtual frame element at index in frame to be
|
169
|
-
// target.
|
170
|
-
inline void InitializeEntryElement(int index, FrameElement* target);
|
171
|
-
|
172
|
-
// Compute a frame to use for entry to this block.
|
173
|
-
void ComputeEntryFrame();
|
174
|
-
|
175
|
-
DISALLOW_COPY_AND_ASSIGN(JumpTarget);
|
176
|
-
};
|
177
|
-
|
178
|
-
|
179
|
-
// -------------------------------------------------------------------------
|
180
|
-
// Break targets
|
181
|
-
//
|
182
|
-
// A break target is a jump target that can be used to break out of a
|
183
|
-
// statement that keeps extra state on the stack (eg, for/in or
|
184
|
-
// try/finally). They know the expected stack height at the target
|
185
|
-
// and will drop state from nested statements as part of merging.
|
186
|
-
//
|
187
|
-
// Break targets are used for return, break, and continue targets.
|
188
|
-
|
189
|
-
class BreakTarget : public JumpTarget {
|
190
|
-
public:
|
191
|
-
// Construct a break target.
|
192
|
-
BreakTarget() {}
|
193
|
-
|
194
|
-
virtual ~BreakTarget() {}
|
195
|
-
|
196
|
-
// Set the direction of the break target.
|
197
|
-
virtual void set_direction(Directionality direction);
|
198
|
-
|
199
|
-
// Copy the state of this break target to the destination. The
|
200
|
-
// lists of forward-reaching frames and merge-point labels are
|
201
|
-
// copied. All virtual frame pointers are copied, not the
|
202
|
-
// pointed-to frames. The previous state of the destination is
|
203
|
-
// overwritten, without deallocating pointed-to virtual frames.
|
204
|
-
void CopyTo(BreakTarget* destination);
|
205
|
-
|
206
|
-
// Emit a jump to the target. There must be a current frame at the
|
207
|
-
// jump and there will be no current frame after the jump.
|
208
|
-
virtual void Jump();
|
209
|
-
virtual void Jump(Result* arg);
|
210
|
-
|
211
|
-
// Emit a conditional branch to the target. There must be a current
|
212
|
-
// frame at the branch. The current frame will fall through to the
|
213
|
-
// code after the branch.
|
214
|
-
virtual void Branch(Condition cc, Hint hint = no_hint);
|
215
|
-
virtual void Branch(Condition cc, Result* arg, Hint hint = no_hint);
|
216
|
-
|
217
|
-
// Bind a break target. If there is no current frame at the binding
|
218
|
-
// site, there must be at least one frame reaching via a forward
|
219
|
-
// jump.
|
220
|
-
virtual void Bind();
|
221
|
-
virtual void Bind(Result* arg);
|
222
|
-
|
223
|
-
// Setter for expected height.
|
224
|
-
void set_expected_height(int expected) { expected_height_ = expected; }
|
225
|
-
|
226
|
-
private:
|
227
|
-
// The expected height of the expression stack where the target will
|
228
|
-
// be bound, statically known at initialization time.
|
229
|
-
int expected_height_;
|
230
|
-
|
231
|
-
DISALLOW_COPY_AND_ASSIGN(BreakTarget);
|
232
|
-
};
|
233
|
-
|
234
|
-
|
235
|
-
// -------------------------------------------------------------------------
|
236
|
-
// Shadow break targets
|
237
|
-
//
|
238
|
-
// A shadow break target represents a break target that is temporarily
|
239
|
-
// shadowed by another one (represented by the original during
|
240
|
-
// shadowing). They are used to catch jumps to labels in certain
|
241
|
-
// contexts, e.g. try blocks. After shadowing ends, the formerly
|
242
|
-
// shadowed target is again represented by the original and the
|
243
|
-
// ShadowTarget can be used as a jump target in its own right,
|
244
|
-
// representing the formerly shadowing target.
|
245
|
-
|
246
|
-
class ShadowTarget : public BreakTarget {
|
247
|
-
public:
|
248
|
-
// Construct a shadow jump target. After construction the shadow
|
249
|
-
// target object holds the state of the original target, and the
|
250
|
-
// original target is actually a fresh one that intercepts control
|
251
|
-
// flow intended for the shadowed one.
|
252
|
-
explicit ShadowTarget(BreakTarget* shadowed);
|
253
|
-
|
254
|
-
virtual ~ShadowTarget() {}
|
255
|
-
|
256
|
-
// End shadowing. After shadowing ends, the original jump target
|
257
|
-
// again gives access to the formerly shadowed target and the shadow
|
258
|
-
// target object gives access to the formerly shadowing target.
|
259
|
-
void StopShadowing();
|
260
|
-
|
261
|
-
// During shadowing, the currently shadowing target. After
|
262
|
-
// shadowing, the target that was shadowed.
|
263
|
-
BreakTarget* other_target() const { return other_target_; }
|
264
|
-
|
265
|
-
private:
|
266
|
-
// During shadowing, the currently shadowing target. After
|
267
|
-
// shadowing, the target that was shadowed.
|
268
|
-
BreakTarget* other_target_;
|
269
|
-
|
270
|
-
#ifdef DEBUG
|
271
|
-
bool is_shadowing_;
|
272
|
-
#endif
|
273
|
-
|
274
|
-
DISALLOW_COPY_AND_ASSIGN(ShadowTarget);
|
275
|
-
};
|
276
|
-
|
277
|
-
|
278
|
-
} } // namespace v8::internal
|
279
|
-
|
280
|
-
#endif // V8_JUMP_TARGET_H_
|