mustang 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +1 -0
- data/Isolate +9 -0
- data/README.md +6 -12
- data/Rakefile +30 -4
- data/TODO.md +9 -0
- data/ext/v8/extconf.rb +56 -0
- data/ext/v8/v8.cpp +37 -0
- data/ext/v8/v8_array.cpp +161 -0
- data/ext/v8/v8_array.h +17 -0
- data/ext/v8/v8_base.cpp +147 -0
- data/ext/v8/v8_base.h +23 -0
- data/ext/v8/v8_cast.cpp +151 -0
- data/ext/v8/v8_cast.h +64 -0
- data/ext/v8/v8_context.cpp +174 -0
- data/ext/v8/v8_context.h +12 -0
- data/ext/v8/v8_date.cpp +61 -0
- data/ext/v8/v8_date.h +16 -0
- data/ext/v8/v8_errors.cpp +147 -0
- data/ext/v8/v8_errors.h +19 -0
- data/ext/v8/v8_external.cpp +66 -0
- data/ext/v8/v8_external.h +16 -0
- data/ext/v8/v8_function.cpp +182 -0
- data/ext/v8/v8_function.h +14 -0
- data/ext/v8/v8_integer.cpp +70 -0
- data/ext/v8/v8_integer.h +16 -0
- data/ext/v8/v8_macros.h +30 -0
- data/ext/v8/v8_main.cpp +53 -0
- data/ext/v8/v8_main.h +13 -0
- data/ext/v8/v8_number.cpp +62 -0
- data/ext/v8/v8_number.h +16 -0
- data/ext/v8/v8_object.cpp +172 -0
- data/ext/v8/v8_object.h +17 -0
- data/ext/v8/v8_ref.cpp +72 -0
- data/ext/v8/v8_ref.h +43 -0
- data/ext/v8/v8_regexp.cpp +148 -0
- data/ext/v8/v8_regexp.h +16 -0
- data/ext/v8/v8_string.cpp +78 -0
- data/ext/v8/v8_string.h +16 -0
- data/ext/v8/v8_value.cpp +370 -0
- data/ext/v8/v8_value.h +19 -0
- data/gemspec.yml +2 -1
- data/lib/core_ext/class.rb +14 -0
- data/lib/core_ext/object.rb +12 -0
- data/lib/core_ext/symbol.rb +23 -0
- data/lib/mustang.rb +44 -0
- data/lib/mustang/context.rb +69 -0
- data/lib/mustang/errors.rb +36 -0
- data/lib/support/delegated.rb +25 -0
- data/lib/v8/array.rb +21 -0
- data/lib/v8/context.rb +13 -0
- data/lib/v8/date.rb +20 -0
- data/lib/v8/error.rb +15 -0
- data/lib/v8/external.rb +16 -0
- data/lib/v8/function.rb +11 -0
- data/lib/v8/integer.rb +16 -0
- data/lib/v8/number.rb +16 -0
- data/lib/v8/object.rb +66 -0
- data/lib/v8/regexp.rb +23 -0
- data/lib/v8/string.rb +27 -0
- data/mustang.gemspec +3 -0
- data/spec/core_ext/class_spec.rb +19 -0
- data/spec/core_ext/object_spec.rb +19 -0
- data/spec/core_ext/symbol_spec.rb +27 -0
- data/spec/fixtures/test1.js +2 -0
- data/spec/fixtures/test2.js +2 -0
- data/spec/spec_helper.rb +20 -0
- data/spec/v8/array_spec.rb +88 -0
- data/spec/v8/cast_spec.rb +151 -0
- data/spec/v8/context_spec.rb +78 -0
- data/spec/v8/data_spec.rb +39 -0
- data/spec/v8/date_spec.rb +45 -0
- data/spec/v8/empty_spec.rb +27 -0
- data/spec/v8/errors_spec.rb +142 -0
- data/spec/v8/external_spec.rb +44 -0
- data/spec/v8/function_spec.rb +170 -0
- data/spec/v8/integer_spec.rb +41 -0
- data/spec/v8/main_spec.rb +18 -0
- data/spec/v8/null_spec.rb +27 -0
- data/spec/v8/number_spec.rb +40 -0
- data/spec/v8/object_spec.rb +79 -0
- data/spec/v8/primitive_spec.rb +9 -0
- data/spec/v8/regexp_spec.rb +65 -0
- data/spec/v8/string_spec.rb +48 -0
- data/spec/v8/undefined_spec.rb +27 -0
- data/spec/v8/value_spec.rb +215 -0
- data/vendor/v8/.gitignore +2 -0
- data/vendor/v8/AUTHORS +3 -1
- data/vendor/v8/ChangeLog +117 -0
- data/vendor/v8/SConstruct +334 -53
- data/vendor/v8/include/v8-debug.h +21 -11
- data/vendor/v8/include/v8-preparser.h +1 -1
- data/vendor/v8/include/v8-profiler.h +122 -43
- data/vendor/v8/include/v8-testing.h +5 -0
- data/vendor/v8/include/v8.h +171 -17
- data/vendor/v8/preparser/SConscript +38 -0
- data/vendor/v8/preparser/preparser-process.cc +77 -114
- data/vendor/v8/samples/shell.cc +232 -46
- data/vendor/v8/src/SConscript +29 -5
- data/vendor/v8/src/accessors.cc +70 -211
- data/vendor/v8/{test/cctest/test-mips.cc → src/allocation-inl.h} +15 -18
- data/vendor/v8/src/allocation.cc +0 -82
- data/vendor/v8/src/allocation.h +9 -42
- data/vendor/v8/src/api.cc +1645 -1156
- data/vendor/v8/src/api.h +76 -12
- data/vendor/v8/src/apiutils.h +0 -7
- data/vendor/v8/src/arguments.h +15 -4
- data/vendor/v8/src/arm/assembler-arm-inl.h +10 -9
- data/vendor/v8/src/arm/assembler-arm.cc +62 -23
- data/vendor/v8/src/arm/assembler-arm.h +76 -11
- data/vendor/v8/src/arm/builtins-arm.cc +39 -33
- data/vendor/v8/src/arm/code-stubs-arm.cc +1182 -402
- data/vendor/v8/src/arm/code-stubs-arm.h +20 -54
- data/vendor/v8/src/arm/codegen-arm.cc +159 -106
- data/vendor/v8/src/arm/codegen-arm.h +6 -6
- data/vendor/v8/src/arm/constants-arm.h +16 -1
- data/vendor/v8/src/arm/cpu-arm.cc +7 -5
- data/vendor/v8/src/arm/debug-arm.cc +6 -4
- data/vendor/v8/src/arm/deoptimizer-arm.cc +51 -14
- data/vendor/v8/src/arm/disasm-arm.cc +47 -15
- data/vendor/v8/src/arm/frames-arm.h +1 -1
- data/vendor/v8/src/arm/full-codegen-arm.cc +724 -408
- data/vendor/v8/src/arm/ic-arm.cc +90 -85
- data/vendor/v8/src/arm/lithium-arm.cc +140 -69
- data/vendor/v8/src/arm/lithium-arm.h +161 -46
- data/vendor/v8/src/arm/lithium-codegen-arm.cc +567 -297
- data/vendor/v8/src/arm/lithium-codegen-arm.h +21 -9
- data/vendor/v8/src/arm/lithium-gap-resolver-arm.cc +2 -0
- data/vendor/v8/src/arm/macro-assembler-arm.cc +457 -96
- data/vendor/v8/src/arm/macro-assembler-arm.h +115 -18
- data/vendor/v8/src/arm/regexp-macro-assembler-arm.cc +20 -13
- data/vendor/v8/src/arm/regexp-macro-assembler-arm.h +1 -0
- data/vendor/v8/src/arm/simulator-arm.cc +184 -101
- data/vendor/v8/src/arm/simulator-arm.h +26 -21
- data/vendor/v8/src/arm/stub-cache-arm.cc +450 -467
- data/vendor/v8/src/arm/virtual-frame-arm.cc +14 -12
- data/vendor/v8/src/arm/virtual-frame-arm.h +11 -8
- data/vendor/v8/src/array.js +35 -18
- data/vendor/v8/src/assembler.cc +186 -92
- data/vendor/v8/src/assembler.h +106 -69
- data/vendor/v8/src/ast-inl.h +5 -0
- data/vendor/v8/src/ast.cc +46 -35
- data/vendor/v8/src/ast.h +107 -50
- data/vendor/v8/src/atomicops.h +2 -0
- data/vendor/v8/src/atomicops_internals_mips_gcc.h +169 -0
- data/vendor/v8/src/bootstrapper.cc +649 -399
- data/vendor/v8/src/bootstrapper.h +94 -27
- data/vendor/v8/src/builtins.cc +359 -227
- data/vendor/v8/src/builtins.h +157 -123
- data/vendor/v8/src/checks.cc +2 -2
- data/vendor/v8/src/checks.h +4 -0
- data/vendor/v8/src/code-stubs.cc +27 -17
- data/vendor/v8/src/code-stubs.h +38 -17
- data/vendor/v8/src/codegen-inl.h +5 -1
- data/vendor/v8/src/codegen.cc +27 -17
- data/vendor/v8/src/codegen.h +9 -9
- data/vendor/v8/src/compilation-cache.cc +92 -206
- data/vendor/v8/src/compilation-cache.h +205 -30
- data/vendor/v8/src/compiler.cc +107 -120
- data/vendor/v8/src/compiler.h +17 -2
- data/vendor/v8/src/contexts.cc +22 -15
- data/vendor/v8/src/contexts.h +14 -8
- data/vendor/v8/src/conversions.cc +86 -30
- data/vendor/v8/src/counters.cc +19 -4
- data/vendor/v8/src/counters.h +28 -16
- data/vendor/v8/src/cpu-profiler-inl.h +4 -3
- data/vendor/v8/src/cpu-profiler.cc +123 -72
- data/vendor/v8/src/cpu-profiler.h +33 -19
- data/vendor/v8/src/cpu.h +2 -0
- data/vendor/v8/src/d8-debug.cc +3 -3
- data/vendor/v8/src/d8-debug.h +7 -6
- data/vendor/v8/src/d8-posix.cc +2 -0
- data/vendor/v8/src/d8.cc +22 -12
- data/vendor/v8/src/d8.gyp +3 -0
- data/vendor/v8/src/d8.js +618 -0
- data/vendor/v8/src/data-flow.h +3 -3
- data/vendor/v8/src/dateparser.h +4 -2
- data/vendor/v8/src/debug-agent.cc +10 -9
- data/vendor/v8/src/debug-agent.h +9 -11
- data/vendor/v8/src/debug-debugger.js +121 -0
- data/vendor/v8/src/debug.cc +331 -227
- data/vendor/v8/src/debug.h +248 -219
- data/vendor/v8/src/deoptimizer.cc +173 -62
- data/vendor/v8/src/deoptimizer.h +119 -19
- data/vendor/v8/src/disasm.h +3 -0
- data/vendor/v8/src/disassembler.cc +10 -9
- data/vendor/v8/src/execution.cc +185 -129
- data/vendor/v8/src/execution.h +47 -78
- data/vendor/v8/src/extensions/experimental/break-iterator.cc +250 -0
- data/vendor/v8/src/extensions/experimental/break-iterator.h +89 -0
- data/vendor/v8/src/extensions/experimental/experimental.gyp +2 -0
- data/vendor/v8/src/extensions/experimental/i18n-extension.cc +22 -2
- data/vendor/v8/src/extensions/externalize-string-extension.cc +2 -2
- data/vendor/v8/src/extensions/gc-extension.cc +1 -1
- data/vendor/v8/src/factory.cc +261 -154
- data/vendor/v8/src/factory.h +162 -158
- data/vendor/v8/src/flag-definitions.h +17 -11
- data/vendor/v8/src/frame-element.cc +0 -5
- data/vendor/v8/src/frame-element.h +9 -13
- data/vendor/v8/src/frames-inl.h +7 -0
- data/vendor/v8/src/frames.cc +56 -46
- data/vendor/v8/src/frames.h +36 -25
- data/vendor/v8/src/full-codegen.cc +15 -24
- data/vendor/v8/src/full-codegen.h +13 -41
- data/vendor/v8/src/func-name-inferrer.cc +7 -6
- data/vendor/v8/src/func-name-inferrer.h +1 -1
- data/vendor/v8/src/gdb-jit.cc +1 -0
- data/vendor/v8/src/global-handles.cc +118 -56
- data/vendor/v8/src/global-handles.h +98 -40
- data/vendor/v8/src/globals.h +2 -2
- data/vendor/v8/src/handles-inl.h +106 -9
- data/vendor/v8/src/handles.cc +220 -157
- data/vendor/v8/src/handles.h +38 -59
- data/vendor/v8/src/hashmap.h +3 -3
- data/vendor/v8/src/heap-inl.h +141 -25
- data/vendor/v8/src/heap-profiler.cc +117 -63
- data/vendor/v8/src/heap-profiler.h +38 -21
- data/vendor/v8/src/heap.cc +805 -564
- data/vendor/v8/src/heap.h +640 -594
- data/vendor/v8/src/hydrogen-instructions.cc +216 -73
- data/vendor/v8/src/hydrogen-instructions.h +259 -124
- data/vendor/v8/src/hydrogen.cc +996 -1171
- data/vendor/v8/src/hydrogen.h +163 -144
- data/vendor/v8/src/ia32/assembler-ia32-inl.h +12 -11
- data/vendor/v8/src/ia32/assembler-ia32.cc +85 -39
- data/vendor/v8/src/ia32/assembler-ia32.h +82 -16
- data/vendor/v8/src/ia32/builtins-ia32.cc +64 -58
- data/vendor/v8/src/ia32/code-stubs-ia32.cc +248 -324
- data/vendor/v8/src/ia32/code-stubs-ia32.h +3 -44
- data/vendor/v8/src/ia32/codegen-ia32.cc +217 -165
- data/vendor/v8/src/ia32/codegen-ia32.h +3 -0
- data/vendor/v8/src/ia32/cpu-ia32.cc +6 -5
- data/vendor/v8/src/ia32/debug-ia32.cc +8 -5
- data/vendor/v8/src/ia32/deoptimizer-ia32.cc +124 -14
- data/vendor/v8/src/ia32/disasm-ia32.cc +85 -62
- data/vendor/v8/src/ia32/frames-ia32.h +1 -1
- data/vendor/v8/src/ia32/full-codegen-ia32.cc +348 -435
- data/vendor/v8/src/ia32/ic-ia32.cc +91 -91
- data/vendor/v8/src/ia32/lithium-codegen-ia32.cc +500 -255
- data/vendor/v8/src/ia32/lithium-codegen-ia32.h +13 -4
- data/vendor/v8/src/ia32/lithium-gap-resolver-ia32.cc +6 -0
- data/vendor/v8/src/ia32/lithium-ia32.cc +122 -45
- data/vendor/v8/src/ia32/lithium-ia32.h +128 -41
- data/vendor/v8/src/ia32/macro-assembler-ia32.cc +109 -84
- data/vendor/v8/src/ia32/macro-assembler-ia32.h +18 -9
- data/vendor/v8/src/ia32/regexp-macro-assembler-ia32.cc +26 -15
- data/vendor/v8/src/ia32/regexp-macro-assembler-ia32.h +1 -0
- data/vendor/v8/src/ia32/register-allocator-ia32.cc +30 -30
- data/vendor/v8/src/ia32/simulator-ia32.h +4 -4
- data/vendor/v8/src/ia32/stub-cache-ia32.cc +383 -400
- data/vendor/v8/src/ia32/virtual-frame-ia32.cc +36 -13
- data/vendor/v8/src/ia32/virtual-frame-ia32.h +11 -5
- data/vendor/v8/src/ic-inl.h +12 -2
- data/vendor/v8/src/ic.cc +304 -221
- data/vendor/v8/src/ic.h +115 -58
- data/vendor/v8/src/interpreter-irregexp.cc +25 -21
- data/vendor/v8/src/interpreter-irregexp.h +2 -1
- data/vendor/v8/src/isolate.cc +883 -0
- data/vendor/v8/src/isolate.h +1304 -0
- data/vendor/v8/src/json.js +10 -10
- data/vendor/v8/src/jsregexp.cc +111 -80
- data/vendor/v8/src/jsregexp.h +6 -7
- data/vendor/v8/src/jump-target-heavy.cc +5 -8
- data/vendor/v8/src/jump-target-heavy.h +0 -6
- data/vendor/v8/src/jump-target-inl.h +1 -1
- data/vendor/v8/src/jump-target-light.cc +3 -3
- data/vendor/v8/src/lithium-allocator-inl.h +2 -0
- data/vendor/v8/src/lithium-allocator.cc +42 -30
- data/vendor/v8/src/lithium-allocator.h +8 -22
- data/vendor/v8/src/lithium.cc +1 -0
- data/vendor/v8/src/liveedit.cc +141 -99
- data/vendor/v8/src/liveedit.h +7 -2
- data/vendor/v8/src/liveobjectlist-inl.h +90 -0
- data/vendor/v8/src/liveobjectlist.cc +2537 -1
- data/vendor/v8/src/liveobjectlist.h +245 -35
- data/vendor/v8/src/log-utils.cc +122 -35
- data/vendor/v8/src/log-utils.h +33 -36
- data/vendor/v8/src/log.cc +299 -241
- data/vendor/v8/src/log.h +177 -110
- data/vendor/v8/src/mark-compact.cc +612 -470
- data/vendor/v8/src/mark-compact.h +153 -80
- data/vendor/v8/src/messages.cc +16 -14
- data/vendor/v8/src/messages.js +30 -7
- data/vendor/v8/src/mips/assembler-mips-inl.h +155 -35
- data/vendor/v8/src/mips/assembler-mips.cc +1093 -219
- data/vendor/v8/src/mips/assembler-mips.h +552 -153
- data/vendor/v8/src/mips/builtins-mips.cc +43 -100
- data/vendor/v8/src/mips/code-stubs-mips.cc +752 -0
- data/vendor/v8/src/mips/code-stubs-mips.h +511 -0
- data/vendor/v8/src/mips/codegen-mips-inl.h +8 -14
- data/vendor/v8/src/mips/codegen-mips.cc +672 -896
- data/vendor/v8/src/mips/codegen-mips.h +271 -69
- data/vendor/v8/src/mips/constants-mips.cc +44 -20
- data/vendor/v8/src/mips/constants-mips.h +238 -40
- data/vendor/v8/src/mips/cpu-mips.cc +20 -3
- data/vendor/v8/src/mips/debug-mips.cc +35 -7
- data/vendor/v8/src/mips/deoptimizer-mips.cc +91 -0
- data/vendor/v8/src/mips/disasm-mips.cc +329 -93
- data/vendor/v8/src/mips/frames-mips.cc +2 -50
- data/vendor/v8/src/mips/frames-mips.h +24 -9
- data/vendor/v8/src/mips/full-codegen-mips.cc +473 -23
- data/vendor/v8/src/mips/ic-mips.cc +81 -45
- data/vendor/v8/src/mips/jump-target-mips.cc +11 -106
- data/vendor/v8/src/mips/lithium-codegen-mips.h +65 -0
- data/vendor/v8/src/mips/lithium-mips.h +304 -0
- data/vendor/v8/src/mips/macro-assembler-mips.cc +2391 -390
- data/vendor/v8/src/mips/macro-assembler-mips.h +718 -121
- data/vendor/v8/src/mips/regexp-macro-assembler-mips.cc +478 -0
- data/vendor/v8/src/mips/regexp-macro-assembler-mips.h +250 -0
- data/vendor/v8/src/mips/register-allocator-mips-inl.h +0 -3
- data/vendor/v8/src/mips/register-allocator-mips.h +3 -2
- data/vendor/v8/src/mips/simulator-mips.cc +1009 -221
- data/vendor/v8/src/mips/simulator-mips.h +119 -36
- data/vendor/v8/src/mips/stub-cache-mips.cc +331 -148
- data/vendor/v8/src/mips/{fast-codegen-mips.cc → virtual-frame-mips-inl.h} +11 -30
- data/vendor/v8/src/mips/virtual-frame-mips.cc +137 -149
- data/vendor/v8/src/mips/virtual-frame-mips.h +294 -312
- data/vendor/v8/src/mirror-debugger.js +9 -8
- data/vendor/v8/src/mksnapshot.cc +2 -2
- data/vendor/v8/src/objects-debug.cc +16 -16
- data/vendor/v8/src/objects-inl.h +421 -195
- data/vendor/v8/src/objects-printer.cc +7 -7
- data/vendor/v8/src/objects-visiting.cc +1 -1
- data/vendor/v8/src/objects-visiting.h +33 -12
- data/vendor/v8/src/objects.cc +935 -658
- data/vendor/v8/src/objects.h +234 -139
- data/vendor/v8/src/parser.cc +484 -439
- data/vendor/v8/src/parser.h +35 -14
- data/vendor/v8/src/platform-cygwin.cc +173 -107
- data/vendor/v8/src/platform-freebsd.cc +224 -72
- data/vendor/v8/src/platform-linux.cc +234 -95
- data/vendor/v8/src/platform-macos.cc +215 -82
- data/vendor/v8/src/platform-nullos.cc +9 -3
- data/vendor/v8/src/platform-openbsd.cc +22 -7
- data/vendor/v8/src/platform-posix.cc +30 -5
- data/vendor/v8/src/platform-solaris.cc +120 -38
- data/vendor/v8/src/platform-tls-mac.h +62 -0
- data/vendor/v8/src/platform-tls-win32.h +62 -0
- data/vendor/v8/src/platform-tls.h +50 -0
- data/vendor/v8/src/platform-win32.cc +195 -97
- data/vendor/v8/src/platform.h +72 -15
- data/vendor/v8/src/preparse-data.cc +2 -0
- data/vendor/v8/src/preparser-api.cc +8 -2
- data/vendor/v8/src/preparser.cc +1 -1
- data/vendor/v8/src/prettyprinter.cc +43 -52
- data/vendor/v8/src/prettyprinter.h +1 -1
- data/vendor/v8/src/profile-generator-inl.h +0 -28
- data/vendor/v8/src/profile-generator.cc +942 -685
- data/vendor/v8/src/profile-generator.h +210 -176
- data/vendor/v8/src/property.cc +6 -0
- data/vendor/v8/src/property.h +14 -3
- data/vendor/v8/src/regexp-macro-assembler-irregexp.cc +1 -1
- data/vendor/v8/src/regexp-macro-assembler.cc +28 -19
- data/vendor/v8/src/regexp-macro-assembler.h +11 -6
- data/vendor/v8/src/regexp-stack.cc +18 -10
- data/vendor/v8/src/regexp-stack.h +45 -21
- data/vendor/v8/src/regexp.js +3 -3
- data/vendor/v8/src/register-allocator-inl.h +3 -3
- data/vendor/v8/src/register-allocator.cc +1 -7
- data/vendor/v8/src/register-allocator.h +5 -15
- data/vendor/v8/src/rewriter.cc +2 -1
- data/vendor/v8/src/runtime-profiler.cc +158 -128
- data/vendor/v8/src/runtime-profiler.h +131 -15
- data/vendor/v8/src/runtime.cc +2409 -1692
- data/vendor/v8/src/runtime.h +93 -17
- data/vendor/v8/src/safepoint-table.cc +3 -0
- data/vendor/v8/src/safepoint-table.h +9 -3
- data/vendor/v8/src/scanner-base.cc +21 -28
- data/vendor/v8/src/scanner-base.h +22 -11
- data/vendor/v8/src/scanner.cc +3 -5
- data/vendor/v8/src/scanner.h +4 -2
- data/vendor/v8/src/scopeinfo.cc +11 -16
- data/vendor/v8/src/scopeinfo.h +26 -15
- data/vendor/v8/src/scopes.cc +67 -37
- data/vendor/v8/src/scopes.h +26 -12
- data/vendor/v8/src/serialize.cc +193 -154
- data/vendor/v8/src/serialize.h +41 -36
- data/vendor/v8/src/small-pointer-list.h +163 -0
- data/vendor/v8/src/snapshot-common.cc +1 -1
- data/vendor/v8/src/snapshot.h +3 -1
- data/vendor/v8/src/spaces-inl.h +30 -25
- data/vendor/v8/src/spaces.cc +263 -370
- data/vendor/v8/src/spaces.h +178 -166
- data/vendor/v8/src/string-search.cc +4 -3
- data/vendor/v8/src/string-search.h +21 -20
- data/vendor/v8/src/string-stream.cc +32 -24
- data/vendor/v8/src/string.js +7 -7
- data/vendor/v8/src/stub-cache.cc +324 -248
- data/vendor/v8/src/stub-cache.h +181 -155
- data/vendor/v8/src/token.cc +3 -3
- data/vendor/v8/src/token.h +3 -3
- data/vendor/v8/src/top.cc +218 -390
- data/vendor/v8/src/type-info.cc +98 -32
- data/vendor/v8/src/type-info.h +10 -3
- data/vendor/v8/src/unicode.cc +1 -1
- data/vendor/v8/src/unicode.h +1 -1
- data/vendor/v8/src/utils.h +3 -0
- data/vendor/v8/src/v8-counters.cc +18 -11
- data/vendor/v8/src/v8-counters.h +34 -13
- data/vendor/v8/src/v8.cc +66 -121
- data/vendor/v8/src/v8.h +7 -4
- data/vendor/v8/src/v8globals.h +18 -12
- data/vendor/v8/src/{memory.h → v8memory.h} +0 -0
- data/vendor/v8/src/v8natives.js +59 -18
- data/vendor/v8/src/v8threads.cc +127 -114
- data/vendor/v8/src/v8threads.h +42 -35
- data/vendor/v8/src/v8utils.h +2 -39
- data/vendor/v8/src/variables.h +1 -1
- data/vendor/v8/src/version.cc +26 -5
- data/vendor/v8/src/version.h +4 -0
- data/vendor/v8/src/virtual-frame-heavy-inl.h +2 -4
- data/vendor/v8/src/virtual-frame-light-inl.h +5 -4
- data/vendor/v8/src/vm-state-inl.h +21 -17
- data/vendor/v8/src/vm-state.h +7 -5
- data/vendor/v8/src/win32-headers.h +1 -0
- data/vendor/v8/src/x64/assembler-x64-inl.h +12 -11
- data/vendor/v8/src/x64/assembler-x64.cc +80 -40
- data/vendor/v8/src/x64/assembler-x64.h +67 -17
- data/vendor/v8/src/x64/builtins-x64.cc +34 -33
- data/vendor/v8/src/x64/code-stubs-x64.cc +636 -377
- data/vendor/v8/src/x64/code-stubs-x64.h +14 -48
- data/vendor/v8/src/x64/codegen-x64-inl.h +1 -1
- data/vendor/v8/src/x64/codegen-x64.cc +158 -136
- data/vendor/v8/src/x64/codegen-x64.h +4 -1
- data/vendor/v8/src/x64/cpu-x64.cc +7 -5
- data/vendor/v8/src/x64/debug-x64.cc +8 -6
- data/vendor/v8/src/x64/deoptimizer-x64.cc +195 -20
- data/vendor/v8/src/x64/disasm-x64.cc +42 -23
- data/vendor/v8/src/x64/frames-x64.cc +1 -1
- data/vendor/v8/src/x64/frames-x64.h +2 -2
- data/vendor/v8/src/x64/full-codegen-x64.cc +780 -218
- data/vendor/v8/src/x64/ic-x64.cc +77 -79
- data/vendor/v8/src/x64/jump-target-x64.cc +1 -1
- data/vendor/v8/src/x64/lithium-codegen-x64.cc +698 -181
- data/vendor/v8/src/x64/lithium-codegen-x64.h +31 -6
- data/vendor/v8/src/x64/lithium-x64.cc +136 -54
- data/vendor/v8/src/x64/lithium-x64.h +142 -51
- data/vendor/v8/src/x64/macro-assembler-x64.cc +456 -187
- data/vendor/v8/src/x64/macro-assembler-x64.h +166 -34
- data/vendor/v8/src/x64/regexp-macro-assembler-x64.cc +44 -28
- data/vendor/v8/src/x64/regexp-macro-assembler-x64.h +8 -4
- data/vendor/v8/src/x64/register-allocator-x64-inl.h +3 -3
- data/vendor/v8/src/x64/register-allocator-x64.cc +12 -8
- data/vendor/v8/src/x64/simulator-x64.h +5 -5
- data/vendor/v8/src/x64/stub-cache-x64.cc +299 -344
- data/vendor/v8/src/x64/virtual-frame-x64.cc +37 -13
- data/vendor/v8/src/x64/virtual-frame-x64.h +13 -7
- data/vendor/v8/src/zone-inl.h +49 -3
- data/vendor/v8/src/zone.cc +42 -41
- data/vendor/v8/src/zone.h +37 -34
- data/vendor/v8/test/benchmarks/testcfg.py +100 -0
- data/vendor/v8/test/cctest/SConscript +5 -4
- data/vendor/v8/test/cctest/cctest.h +3 -2
- data/vendor/v8/test/cctest/cctest.status +6 -11
- data/vendor/v8/test/cctest/test-accessors.cc +3 -3
- data/vendor/v8/test/cctest/test-alloc.cc +39 -33
- data/vendor/v8/test/cctest/test-api.cc +1092 -205
- data/vendor/v8/test/cctest/test-assembler-arm.cc +39 -25
- data/vendor/v8/test/cctest/test-assembler-ia32.cc +36 -37
- data/vendor/v8/test/cctest/test-assembler-mips.cc +1098 -40
- data/vendor/v8/test/cctest/test-assembler-x64.cc +32 -25
- data/vendor/v8/test/cctest/test-ast.cc +1 -0
- data/vendor/v8/test/cctest/test-circular-queue.cc +8 -5
- data/vendor/v8/test/cctest/test-compiler.cc +24 -24
- data/vendor/v8/test/cctest/test-cpu-profiler.cc +140 -5
- data/vendor/v8/test/cctest/test-dataflow.cc +1 -0
- data/vendor/v8/test/cctest/test-debug.cc +136 -77
- data/vendor/v8/test/cctest/test-decls.cc +1 -1
- data/vendor/v8/test/cctest/test-deoptimization.cc +25 -24
- data/vendor/v8/test/cctest/test-disasm-arm.cc +9 -4
- data/vendor/v8/test/cctest/test-disasm-ia32.cc +10 -8
- data/vendor/v8/test/cctest/test-func-name-inference.cc +10 -4
- data/vendor/v8/test/cctest/test-heap-profiler.cc +226 -164
- data/vendor/v8/test/cctest/test-heap.cc +240 -217
- data/vendor/v8/test/cctest/test-liveedit.cc +1 -0
- data/vendor/v8/test/cctest/test-log-stack-tracer.cc +18 -20
- data/vendor/v8/test/cctest/test-log.cc +114 -108
- data/vendor/v8/test/cctest/test-macro-assembler-x64.cc +247 -177
- data/vendor/v8/test/cctest/test-mark-compact.cc +129 -90
- data/vendor/v8/test/cctest/test-parsing.cc +15 -14
- data/vendor/v8/test/cctest/test-platform-linux.cc +1 -0
- data/vendor/v8/test/cctest/test-platform-tls.cc +66 -0
- data/vendor/v8/test/cctest/test-platform-win32.cc +1 -0
- data/vendor/v8/test/cctest/test-profile-generator.cc +1 -1
- data/vendor/v8/test/cctest/test-regexp.cc +53 -41
- data/vendor/v8/test/cctest/test-reloc-info.cc +18 -11
- data/vendor/v8/test/cctest/test-serialize.cc +44 -43
- data/vendor/v8/test/cctest/test-sockets.cc +8 -3
- data/vendor/v8/test/cctest/test-spaces.cc +47 -29
- data/vendor/v8/test/cctest/test-strings.cc +20 -20
- data/vendor/v8/test/cctest/test-thread-termination.cc +8 -3
- data/vendor/v8/test/cctest/test-threads.cc +5 -3
- data/vendor/v8/test/cctest/test-utils.cc +5 -4
- data/vendor/v8/test/cctest/testcfg.py +7 -3
- data/vendor/v8/test/es5conform/es5conform.status +2 -77
- data/vendor/v8/test/es5conform/testcfg.py +1 -1
- data/vendor/v8/test/message/testcfg.py +1 -1
- data/vendor/v8/test/mjsunit/accessors-on-global-object.js +3 -3
- data/vendor/v8/test/mjsunit/array-concat.js +43 -1
- data/vendor/v8/test/mjsunit/array-join.js +25 -0
- data/vendor/v8/test/mjsunit/bitops-info.js +7 -1
- data/vendor/v8/test/mjsunit/compiler/array-length.js +2 -2
- data/vendor/v8/test/mjsunit/compiler/global-accessors.js +47 -0
- data/vendor/v8/test/mjsunit/compiler/pic.js +1 -1
- data/vendor/v8/test/mjsunit/compiler/regress-loadfield.js +65 -0
- data/vendor/v8/test/mjsunit/math-sqrt.js +5 -1
- data/vendor/v8/test/mjsunit/mjsunit.js +59 -8
- data/vendor/v8/test/mjsunit/mjsunit.status +0 -12
- data/vendor/v8/test/mjsunit/mul-exhaustive.js +129 -11
- data/vendor/v8/test/mjsunit/negate-zero.js +1 -1
- data/vendor/v8/test/mjsunit/object-freeze.js +5 -13
- data/vendor/v8/test/mjsunit/object-prevent-extensions.js +9 -50
- data/vendor/v8/test/mjsunit/object-seal.js +4 -13
- data/vendor/v8/test/mjsunit/override-eval-with-non-function.js +36 -0
- data/vendor/v8/test/mjsunit/regress/regress-1145.js +54 -0
- data/vendor/v8/test/mjsunit/regress/regress-1172-bis.js +37 -0
- data/vendor/v8/test/mjsunit/regress/regress-1181.js +54 -0
- data/vendor/v8/test/mjsunit/regress/regress-1207.js +35 -0
- data/vendor/v8/test/mjsunit/regress/regress-1209.js +34 -0
- data/vendor/v8/test/mjsunit/regress/regress-1210.js +48 -0
- data/vendor/v8/test/mjsunit/regress/regress-1213.js +43 -0
- data/vendor/v8/test/mjsunit/regress/regress-1218.js +29 -0
- data/vendor/v8/test/mjsunit/regress/regress-1229.js +79 -0
- data/vendor/v8/test/mjsunit/regress/regress-1233.js +47 -0
- data/vendor/v8/test/mjsunit/regress/regress-1236.js +34 -0
- data/vendor/v8/test/mjsunit/regress/regress-1237.js +36 -0
- data/vendor/v8/test/mjsunit/regress/regress-1240.js +39 -0
- data/vendor/v8/test/mjsunit/regress/regress-1257.js +58 -0
- data/vendor/v8/test/mjsunit/regress/regress-1278.js +69 -0
- data/vendor/v8/test/mjsunit/regress/regress-create-exception.js +1 -0
- data/vendor/v8/test/mjsunit/regress/regress-lazy-deopt-reloc.js +52 -0
- data/vendor/v8/test/mjsunit/sin-cos.js +15 -10
- data/vendor/v8/test/mjsunit/smi-negative-zero.js +2 -2
- data/vendor/v8/test/mjsunit/str-to-num.js +1 -1
- data/vendor/v8/test/mjsunit/strict-mode.js +435 -0
- data/vendor/v8/test/mjsunit/testcfg.py +23 -6
- data/vendor/v8/test/mozilla/mozilla.status +0 -2
- data/vendor/v8/test/mozilla/testcfg.py +1 -1
- data/vendor/v8/test/preparser/empty.js +28 -0
- data/vendor/v8/test/preparser/functions-only.js +38 -0
- data/vendor/v8/test/preparser/non-alphanum.js +34 -0
- data/vendor/v8/test/preparser/symbols-only.js +49 -0
- data/vendor/v8/test/preparser/testcfg.py +90 -0
- data/vendor/v8/test/sputnik/testcfg.py +1 -1
- data/vendor/v8/test/test262/README +16 -0
- data/vendor/v8/test/test262/harness-adapt.js +80 -0
- data/vendor/v8/test/test262/test262.status +1506 -0
- data/vendor/v8/test/test262/testcfg.py +123 -0
- data/vendor/v8/tools/freebsd-tick-processor +10 -0
- data/vendor/v8/tools/gyp/v8.gyp +8 -33
- data/vendor/v8/tools/linux-tick-processor +5 -3
- data/vendor/v8/tools/test.py +37 -14
- data/vendor/v8/tools/tickprocessor.js +22 -8
- data/vendor/v8/tools/visual_studio/v8_base.vcproj +13 -1
- data/vendor/v8/tools/visual_studio/v8_base_arm.vcproj +5 -1
- data/vendor/v8/tools/visual_studio/v8_base_x64.vcproj +5 -1
- data/vendor/v8/tools/visual_studio/x64.vsprops +1 -0
- metadata +1495 -1341
- data/ext/extconf.rb +0 -22
- data/ext/mustang.cpp +0 -58
- data/vendor/v8/src/top.h +0 -608
data/vendor/v8/.gitignore
CHANGED
data/vendor/v8/AUTHORS
CHANGED
@@ -24,12 +24,14 @@ Jay Freeman <saurik@saurik.com>
|
|
24
24
|
Joel Stanley <joel.stan@gmail.com>
|
25
25
|
John Jozwiak <jjozwiak@codeaurora.org>
|
26
26
|
Kun Zhang <zhangk@codeaurora.org>
|
27
|
-
Matt Hanselman <mjhanselman@gmail.com>
|
28
27
|
Martyn Capewell <martyn.capewell@arm.com>
|
28
|
+
Matt Hanselman <mjhanselman@gmail.com>
|
29
|
+
Maxim Mossienko <maxim.mossienko@gmail.com>
|
29
30
|
Michael Smith <mike@w3.org>
|
30
31
|
Mike Gilbert <floppymaster@gmail.com>
|
31
32
|
Paolo Giarrusso <p.giarrusso@gmail.com>
|
32
33
|
Patrick Gansterer <paroga@paroga.com>
|
34
|
+
Peter Varga <pvarga@inf.u-szeged.hu>
|
33
35
|
Rafal Krypa <rafal@krypa.net>
|
34
36
|
Rene Rebe <rene@exactcode.de>
|
35
37
|
Rodolph Perfetta <rodolph.perfetta@arm.com>
|
data/vendor/v8/ChangeLog
CHANGED
@@ -1,3 +1,120 @@
|
|
1
|
+
2011-04-04: Version 3.2.7
|
2
|
+
|
3
|
+
Disabled the original 'classic' V8 code generator. Crankshaft is
|
4
|
+
now the default on all platforms.
|
5
|
+
|
6
|
+
Changed the heap profiler to use more descriptive names.
|
7
|
+
|
8
|
+
Performance and stability improvements to isolates on all platforms.
|
9
|
+
|
10
|
+
|
11
|
+
2011-03-30: Version 3.2.6
|
12
|
+
|
13
|
+
Fixed xcode build warning in shell.cc (out of order initialization).
|
14
|
+
|
15
|
+
Fixed null-pointer dereference in the compiler when running without
|
16
|
+
SSE3 support (Chromium issue 77654).
|
17
|
+
|
18
|
+
Fixed x64 compilation error due to some dead code. (Issue 1286)
|
19
|
+
|
20
|
+
Introduced scons target to build the preparser stand-alone example.
|
21
|
+
|
22
|
+
Made FreeBSD build and pass all tests.
|
23
|
+
|
24
|
+
|
25
|
+
2011-03-28: Version 3.2.5
|
26
|
+
|
27
|
+
Fixed build with Irregexp interpreter (issue 1266).
|
28
|
+
|
29
|
+
Added Crankshaft support for external arrays.
|
30
|
+
|
31
|
+
Fixed two potential crash bugs.
|
32
|
+
|
33
|
+
|
34
|
+
2011-03-23: Version 3.2.4
|
35
|
+
|
36
|
+
Added isolates which allows several V8 instances in the same process.
|
37
|
+
This is controlled through the new Isolate class in the API.
|
38
|
+
|
39
|
+
Implemented more of EcmaScript 5 strict mode.
|
40
|
+
|
41
|
+
Reduced the time it takes to make detailed heap snapshot.
|
42
|
+
|
43
|
+
Added a number of commands to the ARM simulator and enhanced the ARM
|
44
|
+
disassembler.
|
45
|
+
|
46
|
+
|
47
|
+
2011-03-17: Version 3.2.3
|
48
|
+
|
49
|
+
Fixed a number of crash bugs.
|
50
|
+
|
51
|
+
Fixed Array::New(length) to return an array with a length (issue 1256).
|
52
|
+
|
53
|
+
Fixed FreeBSD build.
|
54
|
+
|
55
|
+
Changed __defineGetter__ to not throw (matching the behavior of Safari).
|
56
|
+
|
57
|
+
Implemented more of EcmaScript 5 strict mode.
|
58
|
+
|
59
|
+
Improved Crankshaft performance on all platforms.
|
60
|
+
|
61
|
+
|
62
|
+
2011-03-14: Version 3.2.2
|
63
|
+
|
64
|
+
Fixed a number of crash and correctness bugs.
|
65
|
+
|
66
|
+
Improved Crankshaft performance on all platforms.
|
67
|
+
|
68
|
+
Fixed Crankshaft on Solaris/Illumos.
|
69
|
+
|
70
|
+
|
71
|
+
2011-03-10: Version 3.2.1
|
72
|
+
|
73
|
+
Fixed a number of crash bugs.
|
74
|
+
|
75
|
+
Improved Crankshaft for x64 and ARM.
|
76
|
+
|
77
|
+
Implemented more of EcmaScript 5 strict mode.
|
78
|
+
|
79
|
+
|
80
|
+
2011-03-07: Version 3.2.0
|
81
|
+
|
82
|
+
Fixed a number of crash bugs.
|
83
|
+
|
84
|
+
Turned on Crankshaft by default on x64 and ARM.
|
85
|
+
|
86
|
+
Improved Crankshaft for x64 and ARM.
|
87
|
+
|
88
|
+
Implemented more of EcmaScript 5 strict mode.
|
89
|
+
|
90
|
+
|
91
|
+
2011-03-02: Version 3.1.8
|
92
|
+
|
93
|
+
Fixed a number of crash bugs.
|
94
|
+
|
95
|
+
Improved Crankshaft for x64 and ARM.
|
96
|
+
|
97
|
+
Implemented more of EcmaScript 5 strict mode.
|
98
|
+
|
99
|
+
Fixed issue with unaligned reads and writes on ARM.
|
100
|
+
|
101
|
+
Improved heap profiler support.
|
102
|
+
|
103
|
+
|
104
|
+
2011-02-28: Version 3.1.7
|
105
|
+
|
106
|
+
Fixed a number of crash bugs.
|
107
|
+
|
108
|
+
Improved Crankshaft for x64 and ARM.
|
109
|
+
|
110
|
+
Fixed implementation of indexOf/lastIndexOf for sparse
|
111
|
+
arrays (http://crbug.com/73940).
|
112
|
+
|
113
|
+
Fixed bug in map space compaction (http://crbug.com/59688).
|
114
|
+
|
115
|
+
Added support for direct getter accessors calls on ARM.
|
116
|
+
|
117
|
+
|
1
118
|
2011-02-24: Version 3.1.6
|
2
119
|
|
3
120
|
Fixed a number of crash bugs.
|
data/vendor/v8/SConstruct
CHANGED
@@ -27,6 +27,7 @@
|
|
27
27
|
|
28
28
|
import platform
|
29
29
|
import re
|
30
|
+
import subprocess
|
30
31
|
import sys
|
31
32
|
import os
|
32
33
|
from os.path import join, dirname, abspath
|
@@ -128,6 +129,9 @@ LIBRARY_FLAGS = {
|
|
128
129
|
'inspector:on': {
|
129
130
|
'CPPDEFINES': ['INSPECTOR'],
|
130
131
|
},
|
132
|
+
'fasttls:on': {
|
133
|
+
'CPPDEFINES': ['V8_FAST_TLS'],
|
134
|
+
},
|
131
135
|
'liveobjectlist:on': {
|
132
136
|
'CPPDEFINES': ['ENABLE_DEBUGGER_SUPPORT', 'INSPECTOR',
|
133
137
|
'LIVE_OBJECT_LIST', 'OBJECT_PRINT'],
|
@@ -142,6 +146,9 @@ LIBRARY_FLAGS = {
|
|
142
146
|
# Use visibility=default to disable this.
|
143
147
|
'CXXFLAGS': ['-fvisibility=hidden']
|
144
148
|
},
|
149
|
+
'strictaliasing:off': {
|
150
|
+
'CCFLAGS': ['-fno-strict-aliasing']
|
151
|
+
},
|
145
152
|
'mode:debug': {
|
146
153
|
'CCFLAGS': ['-g', '-O0'],
|
147
154
|
'CPPDEFINES': ['ENABLE_DISASSEMBLER', 'DEBUG'],
|
@@ -174,6 +181,7 @@ LIBRARY_FLAGS = {
|
|
174
181
|
'CPPPATH' : ['/usr/local/include'],
|
175
182
|
'LIBPATH' : ['/usr/local/lib'],
|
176
183
|
'CCFLAGS': ['-ansi'],
|
184
|
+
'LIBS': ['execinfo']
|
177
185
|
},
|
178
186
|
'os:openbsd': {
|
179
187
|
'CPPPATH' : ['/usr/local/include'],
|
@@ -220,14 +228,37 @@ LIBRARY_FLAGS = {
|
|
220
228
|
},
|
221
229
|
'arch:mips': {
|
222
230
|
'CPPDEFINES': ['V8_TARGET_ARCH_MIPS'],
|
231
|
+
'mips_arch_variant:mips32r2': {
|
232
|
+
'CPPDEFINES': ['_MIPS_ARCH_MIPS32R2']
|
233
|
+
},
|
223
234
|
'simulator:none': {
|
224
|
-
'CCFLAGS': ['-EL'
|
225
|
-
'
|
235
|
+
'CCFLAGS': ['-EL'],
|
236
|
+
'LINKFLAGS': ['-EL'],
|
237
|
+
'mips_arch_variant:mips32r2': {
|
238
|
+
'CCFLAGS': ['-mips32r2', '-Wa,-mips32r2']
|
239
|
+
},
|
240
|
+
'mips_arch_variant:mips32r1': {
|
241
|
+
'CCFLAGS': ['-mips32', '-Wa,-mips32']
|
242
|
+
},
|
243
|
+
'library:static': {
|
244
|
+
'LINKFLAGS': ['-static', '-static-libgcc']
|
245
|
+
},
|
246
|
+
'mipsabi:softfloat': {
|
247
|
+
'CCFLAGS': ['-msoft-float'],
|
248
|
+
'LINKFLAGS': ['-msoft-float']
|
249
|
+
},
|
250
|
+
'mipsabi:hardfloat': {
|
251
|
+
'CCFLAGS': ['-mhard-float'],
|
252
|
+
'LINKFLAGS': ['-mhard-float']
|
253
|
+
}
|
226
254
|
}
|
227
255
|
},
|
228
256
|
'simulator:mips': {
|
229
257
|
'CCFLAGS': ['-m32'],
|
230
258
|
'LINKFLAGS': ['-m32'],
|
259
|
+
'mipsabi:softfloat': {
|
260
|
+
'CPPDEFINES': ['__mips_soft_float=1'],
|
261
|
+
}
|
231
262
|
},
|
232
263
|
'arch:x64': {
|
233
264
|
'CPPDEFINES': ['V8_TARGET_ARCH_X64'],
|
@@ -341,6 +372,9 @@ V8_EXTRA_FLAGS = {
|
|
341
372
|
},
|
342
373
|
'arch:mips': {
|
343
374
|
'CPPDEFINES': ['V8_TARGET_ARCH_MIPS'],
|
375
|
+
'mips_arch_variant:mips32r2': {
|
376
|
+
'CPPDEFINES': ['_MIPS_ARCH_MIPS32R2']
|
377
|
+
},
|
344
378
|
},
|
345
379
|
'disassembler:on': {
|
346
380
|
'CPPDEFINES': ['ENABLE_DISASSEMBLER']
|
@@ -474,17 +508,17 @@ SAMPLE_FLAGS = {
|
|
474
508
|
'LIBS': ['pthread'],
|
475
509
|
},
|
476
510
|
'os:freebsd': {
|
477
|
-
'LIBPATH' :
|
478
|
-
'LIBS':
|
511
|
+
'LIBPATH' : ['/usr/local/lib'],
|
512
|
+
'LIBS': ['execinfo', 'pthread']
|
479
513
|
},
|
480
514
|
'os:solaris': {
|
481
|
-
'LIBPATH' :
|
482
|
-
'LIBS':
|
483
|
-
'LINKFLAGS':
|
515
|
+
'LIBPATH' : ['/usr/local/lib'],
|
516
|
+
'LIBS': ['m', 'pthread', 'socket', 'nsl', 'rt'],
|
517
|
+
'LINKFLAGS': ['-mt']
|
484
518
|
},
|
485
519
|
'os:openbsd': {
|
486
|
-
'LIBPATH' :
|
487
|
-
'LIBS':
|
520
|
+
'LIBPATH' : ['/usr/local/lib'],
|
521
|
+
'LIBS': ['execinfo', 'pthread']
|
488
522
|
},
|
489
523
|
'os:win32': {
|
490
524
|
'LIBS': ['winmm', 'ws2_32']
|
@@ -577,11 +611,155 @@ SAMPLE_FLAGS = {
|
|
577
611
|
}
|
578
612
|
},
|
579
613
|
'arch:ia32': {
|
580
|
-
'CPPDEFINES': ['V8_TARGET_ARCH_IA32'],
|
614
|
+
'CPPDEFINES': ['V8_TARGET_ARCH_IA32', 'WIN32'],
|
581
615
|
'LINKFLAGS': ['/MACHINE:X86']
|
582
616
|
},
|
583
617
|
'arch:x64': {
|
584
|
-
'CPPDEFINES': ['V8_TARGET_ARCH_X64'],
|
618
|
+
'CPPDEFINES': ['V8_TARGET_ARCH_X64', 'WIN32'],
|
619
|
+
'LINKFLAGS': ['/MACHINE:X64', '/STACK:2091752']
|
620
|
+
},
|
621
|
+
'mode:debug': {
|
622
|
+
'CCFLAGS': ['/Od'],
|
623
|
+
'LINKFLAGS': ['/DEBUG'],
|
624
|
+
'CPPDEFINES': ['DEBUG'],
|
625
|
+
'msvcrt:static': {
|
626
|
+
'CCFLAGS': ['/MTd']
|
627
|
+
},
|
628
|
+
'msvcrt:shared': {
|
629
|
+
'CCFLAGS': ['/MDd']
|
630
|
+
}
|
631
|
+
}
|
632
|
+
}
|
633
|
+
}
|
634
|
+
|
635
|
+
|
636
|
+
PREPARSER_FLAGS = {
|
637
|
+
'all': {
|
638
|
+
'CPPPATH': [join(abspath('.'), 'include'), join(abspath('.'), 'src')]
|
639
|
+
},
|
640
|
+
'gcc': {
|
641
|
+
'all': {
|
642
|
+
'LIBPATH': ['.'],
|
643
|
+
'CCFLAGS': ['-fno-rtti', '-fno-exceptions']
|
644
|
+
},
|
645
|
+
'os:win32': {
|
646
|
+
'LIBS': ['winmm', 'ws2_32']
|
647
|
+
},
|
648
|
+
'os:android': {
|
649
|
+
'CPPDEFINES': ['ANDROID', '__ARM_ARCH_5__', '__ARM_ARCH_5T__',
|
650
|
+
'__ARM_ARCH_5E__', '__ARM_ARCH_5TE__'],
|
651
|
+
'CCFLAGS': ANDROID_FLAGS,
|
652
|
+
'CPPPATH': ANDROID_INCLUDES,
|
653
|
+
'LIBPATH': [ANDROID_TOP + '/out/target/product/generic/obj/lib',
|
654
|
+
ANDROID_TOP + '/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/lib/gcc/arm-eabi/4.4.0/interwork'],
|
655
|
+
'LINKFLAGS': ANDROID_LINKFLAGS,
|
656
|
+
'LIBS': ['log', 'c', 'stdc++', 'm', 'gcc'],
|
657
|
+
'mode:release': {
|
658
|
+
'CPPDEFINES': ['SK_RELEASE', 'NDEBUG']
|
659
|
+
}
|
660
|
+
},
|
661
|
+
'arch:arm': {
|
662
|
+
'LINKFLAGS': ARM_LINK_FLAGS
|
663
|
+
},
|
664
|
+
'arch:ia32': {
|
665
|
+
'CCFLAGS': ['-m32'],
|
666
|
+
'LINKFLAGS': ['-m32']
|
667
|
+
},
|
668
|
+
'arch:x64': {
|
669
|
+
'CCFLAGS': ['-m64'],
|
670
|
+
'LINKFLAGS': ['-m64']
|
671
|
+
},
|
672
|
+
'arch:mips': {
|
673
|
+
'CPPDEFINES': ['V8_TARGET_ARCH_MIPS'],
|
674
|
+
'mips_arch_variant:mips32r2': {
|
675
|
+
'CPPDEFINES': ['_MIPS_ARCH_MIPS32R2']
|
676
|
+
},
|
677
|
+
'simulator:none': {
|
678
|
+
'CCFLAGS': ['-EL'],
|
679
|
+
'LINKFLAGS': ['-EL'],
|
680
|
+
'mips_arch_variant:mips32r2': {
|
681
|
+
'CCFLAGS': ['-mips32r2', '-Wa,-mips32r2']
|
682
|
+
},
|
683
|
+
'mips_arch_variant:mips32r1': {
|
684
|
+
'CCFLAGS': ['-mips32', '-Wa,-mips32']
|
685
|
+
},
|
686
|
+
'library:static': {
|
687
|
+
'LINKFLAGS': ['-static', '-static-libgcc']
|
688
|
+
},
|
689
|
+
'mipsabi:softfloat': {
|
690
|
+
'CCFLAGS': ['-msoft-float'],
|
691
|
+
'LINKFLAGS': ['-msoft-float']
|
692
|
+
},
|
693
|
+
'mipsabi:hardfloat': {
|
694
|
+
'CCFLAGS': ['-mhard-float'],
|
695
|
+
'LINKFLAGS': ['-mhard-float']
|
696
|
+
}
|
697
|
+
}
|
698
|
+
},
|
699
|
+
'simulator:arm': {
|
700
|
+
'CCFLAGS': ['-m32'],
|
701
|
+
'LINKFLAGS': ['-m32']
|
702
|
+
},
|
703
|
+
'simulator:mips': {
|
704
|
+
'CCFLAGS': ['-m32'],
|
705
|
+
'LINKFLAGS': ['-m32'],
|
706
|
+
'mipsabi:softfloat': {
|
707
|
+
'CPPDEFINES': ['__mips_soft_float=1'],
|
708
|
+
}
|
709
|
+
},
|
710
|
+
'mode:release': {
|
711
|
+
'CCFLAGS': ['-O2']
|
712
|
+
},
|
713
|
+
'mode:debug': {
|
714
|
+
'CCFLAGS': ['-g', '-O0'],
|
715
|
+
'CPPDEFINES': ['DEBUG']
|
716
|
+
},
|
717
|
+
},
|
718
|
+
'msvc': {
|
719
|
+
'all': {
|
720
|
+
'LIBS': ['winmm', 'ws2_32']
|
721
|
+
},
|
722
|
+
'verbose:off': {
|
723
|
+
'CCFLAGS': ['/nologo'],
|
724
|
+
'LINKFLAGS': ['/NOLOGO']
|
725
|
+
},
|
726
|
+
'verbose:on': {
|
727
|
+
'LINKFLAGS': ['/VERBOSE']
|
728
|
+
},
|
729
|
+
'library:shared': {
|
730
|
+
'CPPDEFINES': ['USING_V8_SHARED']
|
731
|
+
},
|
732
|
+
'prof:on': {
|
733
|
+
'LINKFLAGS': ['/MAP']
|
734
|
+
},
|
735
|
+
'mode:release': {
|
736
|
+
'CCFLAGS': ['/O2'],
|
737
|
+
'LINKFLAGS': ['/OPT:REF', '/OPT:ICF'],
|
738
|
+
'msvcrt:static': {
|
739
|
+
'CCFLAGS': ['/MT']
|
740
|
+
},
|
741
|
+
'msvcrt:shared': {
|
742
|
+
'CCFLAGS': ['/MD']
|
743
|
+
},
|
744
|
+
'msvcltcg:on': {
|
745
|
+
'CCFLAGS': ['/GL'],
|
746
|
+
'pgo:off': {
|
747
|
+
'LINKFLAGS': ['/LTCG'],
|
748
|
+
},
|
749
|
+
},
|
750
|
+
'pgo:instrument': {
|
751
|
+
'LINKFLAGS': ['/LTCG:PGI']
|
752
|
+
},
|
753
|
+
'pgo:optimize': {
|
754
|
+
'LINKFLAGS': ['/LTCG:PGO']
|
755
|
+
}
|
756
|
+
},
|
757
|
+
'arch:ia32': {
|
758
|
+
'CPPDEFINES': ['V8_TARGET_ARCH_IA32', 'WIN32'],
|
759
|
+
'LINKFLAGS': ['/MACHINE:X86']
|
760
|
+
},
|
761
|
+
'arch:x64': {
|
762
|
+
'CPPDEFINES': ['V8_TARGET_ARCH_X64', 'WIN32'],
|
585
763
|
'LINKFLAGS': ['/MACHINE:X64', '/STACK:2091752']
|
586
764
|
},
|
587
765
|
'mode:debug': {
|
@@ -652,8 +830,16 @@ def Abort(message):
|
|
652
830
|
sys.exit(1)
|
653
831
|
|
654
832
|
|
655
|
-
def
|
656
|
-
|
833
|
+
def GuessOS(env):
|
834
|
+
return utils.GuessOS()
|
835
|
+
|
836
|
+
|
837
|
+
def GuessArch(env):
|
838
|
+
return utils.GuessArchitecture()
|
839
|
+
|
840
|
+
|
841
|
+
def GuessToolchain(env):
|
842
|
+
tools = env['TOOLS']
|
657
843
|
if 'gcc' in tools:
|
658
844
|
return 'gcc'
|
659
845
|
elif 'msvc' in tools:
|
@@ -662,7 +848,9 @@ def GuessToolchain(os):
|
|
662
848
|
return None
|
663
849
|
|
664
850
|
|
665
|
-
def GuessVisibility(
|
851
|
+
def GuessVisibility(env):
|
852
|
+
os = env['os']
|
853
|
+
toolchain = env['toolchain'];
|
666
854
|
if (os == 'win32' or os == 'cygwin') and toolchain == 'gcc':
|
667
855
|
# MinGW / Cygwin can't do it.
|
668
856
|
return 'default'
|
@@ -672,28 +860,41 @@ def GuessVisibility(os, toolchain):
|
|
672
860
|
return 'hidden'
|
673
861
|
|
674
862
|
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
863
|
+
def GuessStrictAliasing(env):
|
864
|
+
# There seems to be a problem with gcc 4.5.x.
|
865
|
+
# See http://code.google.com/p/v8/issues/detail?id=884
|
866
|
+
# It can be worked around by disabling strict aliasing.
|
867
|
+
toolchain = env['toolchain'];
|
868
|
+
if toolchain == 'gcc':
|
869
|
+
env = Environment(tools=['gcc'])
|
870
|
+
# The gcc version should be available in env['CCVERSION'],
|
871
|
+
# but when scons detects msvc this value is not set.
|
872
|
+
version = subprocess.Popen([env['CC'], '-dumpversion'],
|
873
|
+
stdout=subprocess.PIPE).communicate()[0]
|
874
|
+
if version.find('4.5') == 0:
|
875
|
+
return 'off'
|
876
|
+
return 'default'
|
679
877
|
|
680
878
|
|
681
|
-
|
682
|
-
'
|
683
|
-
'values': ['
|
684
|
-
'
|
685
|
-
'help': 'the
|
879
|
+
PLATFORM_OPTIONS = {
|
880
|
+
'arch': {
|
881
|
+
'values': ['arm', 'ia32', 'x64', 'mips'],
|
882
|
+
'guess': GuessArch,
|
883
|
+
'help': 'the architecture to build for'
|
686
884
|
},
|
687
885
|
'os': {
|
688
886
|
'values': ['freebsd', 'linux', 'macos', 'win32', 'android', 'openbsd', 'solaris', 'cygwin'],
|
689
|
-
'
|
690
|
-
'help': 'the os to build for
|
691
|
-
},
|
692
|
-
'arch': {
|
693
|
-
'values':['arm', 'ia32', 'x64', 'mips'],
|
694
|
-
'default': ARCH_GUESS,
|
695
|
-
'help': 'the architecture to build for (%s)' % ARCH_GUESS
|
887
|
+
'guess': GuessOS,
|
888
|
+
'help': 'the os to build for'
|
696
889
|
},
|
890
|
+
'toolchain': {
|
891
|
+
'values': ['gcc', 'msvc'],
|
892
|
+
'guess': GuessToolchain,
|
893
|
+
'help': 'the toolchain to use'
|
894
|
+
}
|
895
|
+
}
|
896
|
+
|
897
|
+
SIMPLE_OPTIONS = {
|
697
898
|
'regexp': {
|
698
899
|
'values': ['native', 'interpreted'],
|
699
900
|
'default': 'native',
|
@@ -784,6 +985,12 @@ SIMPLE_OPTIONS = {
|
|
784
985
|
'default': 'off',
|
785
986
|
'help': 'enable the disassembler to inspect generated code'
|
786
987
|
},
|
988
|
+
'fasttls': {
|
989
|
+
'values': ['on', 'off'],
|
990
|
+
'default': 'on',
|
991
|
+
'help': 'enable fast thread local storage support '
|
992
|
+
'(if available on the current architecture/platform)'
|
993
|
+
},
|
787
994
|
'sourcesignatures': {
|
788
995
|
'values': ['MD5', 'timestamp'],
|
789
996
|
'default': 'MD5',
|
@@ -801,16 +1008,47 @@ SIMPLE_OPTIONS = {
|
|
801
1008
|
},
|
802
1009
|
'visibility': {
|
803
1010
|
'values': ['default', 'hidden'],
|
804
|
-
'
|
805
|
-
'help': 'shared library symbol visibility
|
1011
|
+
'guess': GuessVisibility,
|
1012
|
+
'help': 'shared library symbol visibility'
|
1013
|
+
},
|
1014
|
+
'strictaliasing': {
|
1015
|
+
'values': ['default', 'off'],
|
1016
|
+
'guess': GuessStrictAliasing,
|
1017
|
+
'help': 'assume strict aliasing while optimizing'
|
806
1018
|
},
|
807
1019
|
'pgo': {
|
808
1020
|
'values': ['off', 'instrument', 'optimize'],
|
809
1021
|
'default': 'off',
|
810
1022
|
'help': 'select profile guided optimization variant',
|
1023
|
+
},
|
1024
|
+
'mipsabi': {
|
1025
|
+
'values': ['hardfloat', 'softfloat', 'none'],
|
1026
|
+
'default': 'hardfloat',
|
1027
|
+
'help': 'generate calling conventiont according to selected mips ABI'
|
1028
|
+
},
|
1029
|
+
'mips_arch_variant': {
|
1030
|
+
'values': ['mips32r2', 'mips32r1'],
|
1031
|
+
'default': 'mips32r2',
|
1032
|
+
'help': 'mips variant'
|
811
1033
|
}
|
812
1034
|
}
|
813
1035
|
|
1036
|
+
ALL_OPTIONS = dict(PLATFORM_OPTIONS, **SIMPLE_OPTIONS)
|
1037
|
+
|
1038
|
+
|
1039
|
+
def AddOptions(options, result):
|
1040
|
+
guess_env = Environment(options=result)
|
1041
|
+
for (name, option) in options.iteritems():
|
1042
|
+
if 'guess' in option:
|
1043
|
+
# Option has a guess function
|
1044
|
+
guess = option.get('guess')
|
1045
|
+
default = guess(guess_env)
|
1046
|
+
else:
|
1047
|
+
# Option has a fixed default
|
1048
|
+
default = option.get('default')
|
1049
|
+
help = '%s (%s)' % (option.get('help'), ", ".join(option['values']))
|
1050
|
+
result.Add(name, help, default)
|
1051
|
+
|
814
1052
|
|
815
1053
|
def GetOptions():
|
816
1054
|
result = Options()
|
@@ -819,12 +1057,23 @@ def GetOptions():
|
|
819
1057
|
result.Add('cache', 'directory to use for scons build cache', '')
|
820
1058
|
result.Add('env', 'override environment settings (NAME0:value0,NAME1:value1,...)', '')
|
821
1059
|
result.Add('importenv', 'import environment settings (NAME0,NAME1,...)', '')
|
822
|
-
|
823
|
-
|
824
|
-
result.Add(name, help, option.get('default'))
|
1060
|
+
AddOptions(PLATFORM_OPTIONS, result)
|
1061
|
+
AddOptions(SIMPLE_OPTIONS, result)
|
825
1062
|
return result
|
826
1063
|
|
827
1064
|
|
1065
|
+
def GetTools(opts):
|
1066
|
+
env = Environment(options=opts)
|
1067
|
+
os = env['os']
|
1068
|
+
toolchain = env['toolchain']
|
1069
|
+
if os == 'win32' and toolchain == 'gcc':
|
1070
|
+
return ['mingw']
|
1071
|
+
elif os == 'win32' and toolchain == 'msvc':
|
1072
|
+
return ['msvc', 'mslink', 'mslib', 'msvs']
|
1073
|
+
else:
|
1074
|
+
return ['default']
|
1075
|
+
|
1076
|
+
|
828
1077
|
def GetVersionComponents():
|
829
1078
|
MAJOR_VERSION_PATTERN = re.compile(r"#define\s+MAJOR_VERSION\s+(.*)")
|
830
1079
|
MINOR_VERSION_PATTERN = re.compile(r"#define\s+MINOR_VERSION\s+(.*)")
|
@@ -904,8 +1153,8 @@ def VerifyOptions(env):
|
|
904
1153
|
print env['arch']
|
905
1154
|
print env['simulator']
|
906
1155
|
Abort("Option unalignedaccesses only supported for the ARM architecture.")
|
907
|
-
for (name, option) in
|
908
|
-
if (not
|
1156
|
+
for (name, option) in ALL_OPTIONS.iteritems():
|
1157
|
+
if (not name in env):
|
909
1158
|
message = ("A value for option %s must be specified (%s)." %
|
910
1159
|
(name, ", ".join(option['values'])))
|
911
1160
|
Abort(message)
|
@@ -926,6 +1175,7 @@ class BuildContext(object):
|
|
926
1175
|
self.options = options
|
927
1176
|
self.env_overrides = env_overrides
|
928
1177
|
self.samples = samples
|
1178
|
+
self.preparser_targets = []
|
929
1179
|
self.use_snapshot = (options['snapshot'] != 'off')
|
930
1180
|
self.build_snapshot = (options['snapshot'] == 'on')
|
931
1181
|
self.flags = None
|
@@ -1004,11 +1254,12 @@ def PostprocessOptions(options, os):
|
|
1004
1254
|
if 'msvcltcg' in ARGUMENTS:
|
1005
1255
|
print "Warning: forcing msvcltcg on as it is required for pgo (%s)" % options['pgo']
|
1006
1256
|
options['msvcltcg'] = 'on'
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1011
|
-
options['
|
1257
|
+
if (options['simulator'] == 'mips' and options['mipsabi'] != 'softfloat'):
|
1258
|
+
# Print a warning if soft-float ABI is not selected for mips simulator
|
1259
|
+
print "Warning: forcing soft-float mips ABI when running on simulator"
|
1260
|
+
options['mipsabi'] = 'softfloat'
|
1261
|
+
if (options['mipsabi'] != 'none') and (options['arch'] != 'mips') and (options['simulator'] != 'mips'):
|
1262
|
+
options['mipsabi'] = 'none'
|
1012
1263
|
if options['liveobjectlist'] == 'on':
|
1013
1264
|
if (options['debuggersupport'] != 'on') or (options['mode'] == 'release'):
|
1014
1265
|
# Print a warning that liveobjectlist will implicitly enable the debugger
|
@@ -1033,9 +1284,9 @@ def ParseEnvOverrides(arg, imports):
|
|
1033
1284
|
return overrides
|
1034
1285
|
|
1035
1286
|
|
1036
|
-
def BuildSpecific(env, mode, env_overrides):
|
1287
|
+
def BuildSpecific(env, mode, env_overrides, tools):
|
1037
1288
|
options = {'mode': mode}
|
1038
|
-
for option in
|
1289
|
+
for option in ALL_OPTIONS:
|
1039
1290
|
options[option] = env[option]
|
1040
1291
|
PostprocessOptions(options, env['os'])
|
1041
1292
|
|
@@ -1055,6 +1306,7 @@ def BuildSpecific(env, mode, env_overrides):
|
|
1055
1306
|
dtoa_flags = context.AddRelevantFlags(library_flags, DTOA_EXTRA_FLAGS)
|
1056
1307
|
cctest_flags = context.AddRelevantFlags(v8_flags, CCTEST_EXTRA_FLAGS)
|
1057
1308
|
sample_flags = context.AddRelevantFlags(user_environ, SAMPLE_FLAGS)
|
1309
|
+
preparser_flags = context.AddRelevantFlags(user_environ, PREPARSER_FLAGS)
|
1058
1310
|
d8_flags = context.AddRelevantFlags(library_flags, D8_FLAGS)
|
1059
1311
|
|
1060
1312
|
context.flags = {
|
@@ -1063,13 +1315,15 @@ def BuildSpecific(env, mode, env_overrides):
|
|
1063
1315
|
'dtoa': dtoa_flags,
|
1064
1316
|
'cctest': cctest_flags,
|
1065
1317
|
'sample': sample_flags,
|
1066
|
-
'd8': d8_flags
|
1318
|
+
'd8': d8_flags,
|
1319
|
+
'preparser': preparser_flags
|
1067
1320
|
}
|
1068
1321
|
|
1069
1322
|
# Generate library base name.
|
1070
1323
|
target_id = mode
|
1071
1324
|
suffix = SUFFIXES[target_id]
|
1072
1325
|
library_name = 'v8' + suffix
|
1326
|
+
preparser_library_name = 'v8preparser' + suffix
|
1073
1327
|
version = GetVersion()
|
1074
1328
|
if context.options['soname'] == 'on':
|
1075
1329
|
# When building shared object with SONAME version the library name.
|
@@ -1083,10 +1337,10 @@ def BuildSpecific(env, mode, env_overrides):
|
|
1083
1337
|
env['SONAME'] = soname
|
1084
1338
|
|
1085
1339
|
# Build the object files by invoking SCons recursively.
|
1086
|
-
(object_files, shell_files, mksnapshot) = env.SConscript(
|
1340
|
+
(object_files, shell_files, mksnapshot, preparser_files) = env.SConscript(
|
1087
1341
|
join('src', 'SConscript'),
|
1088
1342
|
build_dir=join('obj', target_id),
|
1089
|
-
exports='context',
|
1343
|
+
exports='context tools',
|
1090
1344
|
duplicate=False
|
1091
1345
|
)
|
1092
1346
|
|
@@ -1098,29 +1352,36 @@ def BuildSpecific(env, mode, env_overrides):
|
|
1098
1352
|
context.ApplyEnvOverrides(env)
|
1099
1353
|
if context.options['library'] == 'static':
|
1100
1354
|
library = env.StaticLibrary(library_name, object_files)
|
1355
|
+
preparser_library = env.StaticLibrary(preparser_library_name,
|
1356
|
+
preparser_files)
|
1101
1357
|
else:
|
1102
1358
|
# There seems to be a glitch in the way scons decides where to put
|
1103
1359
|
# PDB files when compiling using MSVC so we specify it manually.
|
1104
1360
|
# This should not affect any other platforms.
|
1105
1361
|
pdb_name = library_name + '.dll.pdb'
|
1106
1362
|
library = env.SharedLibrary(library_name, object_files, PDB=pdb_name)
|
1363
|
+
preparser_pdb_name = preparser_library_name + '.dll.pdb';
|
1364
|
+
preparser_library = env.SharedLibrary(preparser_library_name,
|
1365
|
+
preparser_files,
|
1366
|
+
PDB=preparser_pdb_name)
|
1107
1367
|
context.library_targets.append(library)
|
1368
|
+
context.library_targets.append(preparser_library)
|
1108
1369
|
|
1109
|
-
d8_env = Environment()
|
1370
|
+
d8_env = Environment(tools=tools)
|
1110
1371
|
d8_env.Replace(**context.flags['d8'])
|
1111
1372
|
context.ApplyEnvOverrides(d8_env)
|
1112
1373
|
shell = d8_env.Program('d8' + suffix, object_files + shell_files)
|
1113
1374
|
context.d8_targets.append(shell)
|
1114
1375
|
|
1115
1376
|
for sample in context.samples:
|
1116
|
-
sample_env = Environment()
|
1377
|
+
sample_env = Environment(tools=tools)
|
1117
1378
|
sample_env.Replace(**context.flags['sample'])
|
1118
1379
|
sample_env.Prepend(LIBS=[library_name])
|
1119
1380
|
context.ApplyEnvOverrides(sample_env)
|
1120
1381
|
sample_object = sample_env.SConscript(
|
1121
1382
|
join('samples', 'SConscript'),
|
1122
1383
|
build_dir=join('obj', 'sample', sample, target_id),
|
1123
|
-
exports='sample context',
|
1384
|
+
exports='sample context tools',
|
1124
1385
|
duplicate=False
|
1125
1386
|
)
|
1126
1387
|
sample_name = sample + suffix
|
@@ -1133,17 +1394,34 @@ def BuildSpecific(env, mode, env_overrides):
|
|
1133
1394
|
cctest_program = cctest_env.SConscript(
|
1134
1395
|
join('test', 'cctest', 'SConscript'),
|
1135
1396
|
build_dir=join('obj', 'test', target_id),
|
1136
|
-
exports='context object_files',
|
1397
|
+
exports='context object_files tools',
|
1137
1398
|
duplicate=False
|
1138
1399
|
)
|
1139
1400
|
context.cctest_targets.append(cctest_program)
|
1140
1401
|
|
1402
|
+
preparser_env = env.Copy()
|
1403
|
+
preparser_env.Replace(**context.flags['preparser'])
|
1404
|
+
preparser_env.Prepend(LIBS=[preparser_library_name])
|
1405
|
+
context.ApplyEnvOverrides(preparser_env)
|
1406
|
+
preparser_object = preparser_env.SConscript(
|
1407
|
+
join('preparser', 'SConscript'),
|
1408
|
+
build_dir=join('obj', 'preparser', target_id),
|
1409
|
+
exports='context',
|
1410
|
+
duplicate=False
|
1411
|
+
)
|
1412
|
+
preparser_name = join('obj', 'preparser', target_id, 'preparser')
|
1413
|
+
preparser_program = preparser_env.Program(preparser_name, preparser_object);
|
1414
|
+
preparser_env.Depends(preparser_program, preparser_library)
|
1415
|
+
context.preparser_targets.append(preparser_program)
|
1416
|
+
|
1141
1417
|
return context
|
1142
1418
|
|
1143
1419
|
|
1144
1420
|
def Build():
|
1145
1421
|
opts = GetOptions()
|
1146
|
-
|
1422
|
+
tools = GetTools(opts)
|
1423
|
+
env = Environment(options=opts, tools=tools)
|
1424
|
+
|
1147
1425
|
Help(opts.GenerateHelpText(env))
|
1148
1426
|
VerifyOptions(env)
|
1149
1427
|
env_overrides = ParseEnvOverrides(env['env'], env['importenv'])
|
@@ -1154,14 +1432,16 @@ def Build():
|
|
1154
1432
|
mksnapshots = []
|
1155
1433
|
cctests = []
|
1156
1434
|
samples = []
|
1435
|
+
preparsers = []
|
1157
1436
|
d8s = []
|
1158
1437
|
modes = SplitList(env['mode'])
|
1159
1438
|
for mode in modes:
|
1160
|
-
context = BuildSpecific(env.Copy(), mode, env_overrides)
|
1439
|
+
context = BuildSpecific(env.Copy(), mode, env_overrides, tools)
|
1161
1440
|
libraries += context.library_targets
|
1162
1441
|
mksnapshots += context.mksnapshot_targets
|
1163
1442
|
cctests += context.cctest_targets
|
1164
1443
|
samples += context.sample_targets
|
1444
|
+
preparsers += context.preparser_targets
|
1165
1445
|
d8s += context.d8_targets
|
1166
1446
|
|
1167
1447
|
env.Alias('library', libraries)
|
@@ -1169,6 +1449,7 @@ def Build():
|
|
1169
1449
|
env.Alias('cctests', cctests)
|
1170
1450
|
env.Alias('sample', samples)
|
1171
1451
|
env.Alias('d8', d8s)
|
1452
|
+
env.Alias('preparser', preparsers)
|
1172
1453
|
|
1173
1454
|
if env['sample']:
|
1174
1455
|
env.Default('sample')
|