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.

Files changed (721) hide show
  1. data/.gitignore +23 -11
  2. data/.travis.yml +10 -0
  3. data/Changelog.md +242 -0
  4. data/Gemfile +16 -0
  5. data/README.md +185 -0
  6. data/Rakefile +42 -51
  7. data/benchmarks.rb +217 -0
  8. data/ext/v8/accessor.cc +181 -0
  9. data/ext/v8/array.cc +26 -0
  10. data/ext/v8/backref.cc +56 -0
  11. data/ext/v8/build.rb +52 -0
  12. data/ext/v8/constants.cc +34 -0
  13. data/ext/v8/constraints.cc +52 -0
  14. data/ext/v8/context.cc +130 -0
  15. data/ext/v8/date.cc +18 -0
  16. data/ext/v8/exception.cc +38 -0
  17. data/ext/v8/extconf.rb +16 -29
  18. data/ext/v8/external.cc +43 -0
  19. data/ext/v8/function.cc +58 -0
  20. data/ext/v8/gc.cc +43 -0
  21. data/ext/v8/handles.cc +34 -0
  22. data/ext/v8/heap.cc +31 -0
  23. data/ext/v8/init.cc +39 -0
  24. data/ext/v8/init.so +0 -0
  25. data/ext/v8/invocation.cc +86 -0
  26. data/ext/v8/locker.cc +77 -0
  27. data/ext/v8/message.cc +51 -0
  28. data/ext/v8/object.cc +334 -0
  29. data/ext/v8/primitive.cc +8 -0
  30. data/ext/v8/rr.cc +83 -0
  31. data/ext/v8/rr.h +883 -0
  32. data/ext/v8/script.cc +80 -0
  33. data/ext/v8/signature.cc +18 -0
  34. data/ext/v8/stack.cc +75 -0
  35. data/ext/v8/string.cc +47 -0
  36. data/ext/v8/template.cc +175 -0
  37. data/ext/v8/trycatch.cc +86 -0
  38. data/ext/v8/v8.cc +87 -0
  39. data/ext/v8/value.cc +239 -0
  40. data/lib/v8.rb +30 -9
  41. data/lib/v8/access.rb +5 -0
  42. data/lib/v8/access/indices.rb +40 -0
  43. data/lib/v8/access/invocation.rb +47 -0
  44. data/lib/v8/access/names.rb +65 -0
  45. data/lib/v8/array.rb +26 -0
  46. data/lib/v8/context.rb +217 -75
  47. data/lib/v8/conversion.rb +35 -0
  48. data/lib/v8/conversion/array.rb +11 -0
  49. data/lib/v8/conversion/class.rb +120 -0
  50. data/lib/v8/conversion/code.rb +38 -0
  51. data/lib/v8/conversion/fundamental.rb +11 -0
  52. data/lib/v8/conversion/hash.rb +11 -0
  53. data/lib/v8/conversion/indentity.rb +31 -0
  54. data/lib/v8/conversion/method.rb +26 -0
  55. data/lib/v8/conversion/object.rb +28 -0
  56. data/lib/v8/conversion/primitive.rb +7 -0
  57. data/lib/v8/conversion/proc.rb +5 -0
  58. data/lib/v8/conversion/reference.rb +16 -0
  59. data/lib/v8/conversion/string.rb +12 -0
  60. data/lib/v8/conversion/symbol.rb +7 -0
  61. data/lib/v8/conversion/time.rb +13 -0
  62. data/lib/v8/error.rb +25 -0
  63. data/lib/v8/error/protect.rb +20 -0
  64. data/lib/v8/error/try.rb +15 -0
  65. data/lib/v8/function.rb +28 -0
  66. data/lib/v8/object.rb +69 -28
  67. data/lib/v8/util/weakcell.rb +29 -0
  68. data/lib/v8/version.rb +3 -0
  69. data/spec/c/array_spec.rb +17 -0
  70. data/spec/c/constants_spec.rb +20 -0
  71. data/spec/c/exception_spec.rb +26 -0
  72. data/spec/c/external_spec.rb +9 -0
  73. data/spec/c/function_spec.rb +46 -0
  74. data/spec/c/handles_spec.rb +35 -0
  75. data/spec/c/locker_spec.rb +38 -0
  76. data/spec/c/object_spec.rb +46 -0
  77. data/spec/c/script_spec.rb +28 -0
  78. data/spec/c/string_spec.rb +16 -0
  79. data/spec/c/template_spec.rb +30 -0
  80. data/spec/c/trycatch_spec.rb +51 -0
  81. data/spec/mem/blunt_spec.rb +42 -0
  82. data/spec/redjs_spec.rb +10 -0
  83. data/spec/spec_helper.rb +43 -12
  84. data/spec/threading_spec.rb +52 -0
  85. data/spec/v8/context_spec.rb +19 -0
  86. data/spec/v8/conversion_spec.rb +9 -0
  87. data/spec/v8/error_spec.rb +21 -0
  88. data/spec/v8/function_spec.rb +9 -0
  89. data/spec/v8/object_spec.rb +15 -0
  90. data/thefrontside.png +0 -0
  91. data/therubyracer.gemspec +15 -676
  92. metadata +146 -680
  93. data/.gitmodules +0 -3
  94. data/Doxyfile +0 -1514
  95. data/History.txt +0 -51
  96. data/README.rdoc +0 -158
  97. data/docs/data_conversion.txt +0 -18
  98. data/ext/v8/callbacks.cpp +0 -160
  99. data/ext/v8/callbacks.h +0 -14
  100. data/ext/v8/convert_ruby.cpp +0 -8
  101. data/ext/v8/convert_ruby.h +0 -99
  102. data/ext/v8/convert_string.cpp +0 -10
  103. data/ext/v8/convert_string.h +0 -73
  104. data/ext/v8/convert_v8.cpp +0 -9
  105. data/ext/v8/convert_v8.h +0 -121
  106. data/ext/v8/converters.cpp +0 -83
  107. data/ext/v8/converters.h +0 -23
  108. data/ext/v8/upstream/2.0.6/.gitignore +0 -26
  109. data/ext/v8/upstream/2.0.6/AUTHORS +0 -23
  110. data/ext/v8/upstream/2.0.6/ChangeLog +0 -1479
  111. data/ext/v8/upstream/2.0.6/LICENSE +0 -55
  112. data/ext/v8/upstream/2.0.6/SConstruct +0 -1028
  113. data/ext/v8/upstream/2.0.6/include/v8-debug.h +0 -275
  114. data/ext/v8/upstream/2.0.6/include/v8.h +0 -3236
  115. data/ext/v8/upstream/2.0.6/src/SConscript +0 -283
  116. data/ext/v8/upstream/2.0.6/src/accessors.cc +0 -695
  117. data/ext/v8/upstream/2.0.6/src/accessors.h +0 -114
  118. data/ext/v8/upstream/2.0.6/src/allocation.cc +0 -198
  119. data/ext/v8/upstream/2.0.6/src/allocation.h +0 -169
  120. data/ext/v8/upstream/2.0.6/src/api.cc +0 -3831
  121. data/ext/v8/upstream/2.0.6/src/api.h +0 -479
  122. data/ext/v8/upstream/2.0.6/src/apinatives.js +0 -110
  123. data/ext/v8/upstream/2.0.6/src/apiutils.h +0 -69
  124. data/ext/v8/upstream/2.0.6/src/arguments.h +0 -97
  125. data/ext/v8/upstream/2.0.6/src/arm/assembler-arm-inl.h +0 -277
  126. data/ext/v8/upstream/2.0.6/src/arm/assembler-arm.cc +0 -1821
  127. data/ext/v8/upstream/2.0.6/src/arm/assembler-arm.h +0 -1027
  128. data/ext/v8/upstream/2.0.6/src/arm/assembler-thumb2-inl.h +0 -267
  129. data/ext/v8/upstream/2.0.6/src/arm/assembler-thumb2.cc +0 -1821
  130. data/ext/v8/upstream/2.0.6/src/arm/assembler-thumb2.h +0 -1027
  131. data/ext/v8/upstream/2.0.6/src/arm/builtins-arm.cc +0 -1271
  132. data/ext/v8/upstream/2.0.6/src/arm/codegen-arm-inl.h +0 -74
  133. data/ext/v8/upstream/2.0.6/src/arm/codegen-arm.cc +0 -6682
  134. data/ext/v8/upstream/2.0.6/src/arm/codegen-arm.h +0 -535
  135. data/ext/v8/upstream/2.0.6/src/arm/constants-arm.cc +0 -112
  136. data/ext/v8/upstream/2.0.6/src/arm/constants-arm.h +0 -347
  137. data/ext/v8/upstream/2.0.6/src/arm/cpu-arm.cc +0 -132
  138. data/ext/v8/upstream/2.0.6/src/arm/debug-arm.cc +0 -213
  139. data/ext/v8/upstream/2.0.6/src/arm/disasm-arm.cc +0 -1166
  140. data/ext/v8/upstream/2.0.6/src/arm/fast-codegen-arm.cc +0 -1698
  141. data/ext/v8/upstream/2.0.6/src/arm/frames-arm.cc +0 -123
  142. data/ext/v8/upstream/2.0.6/src/arm/frames-arm.h +0 -162
  143. data/ext/v8/upstream/2.0.6/src/arm/ic-arm.cc +0 -849
  144. data/ext/v8/upstream/2.0.6/src/arm/jump-target-arm.cc +0 -238
  145. data/ext/v8/upstream/2.0.6/src/arm/macro-assembler-arm.cc +0 -1259
  146. data/ext/v8/upstream/2.0.6/src/arm/macro-assembler-arm.h +0 -423
  147. data/ext/v8/upstream/2.0.6/src/arm/regexp-macro-assembler-arm.cc +0 -1266
  148. data/ext/v8/upstream/2.0.6/src/arm/regexp-macro-assembler-arm.h +0 -282
  149. data/ext/v8/upstream/2.0.6/src/arm/register-allocator-arm-inl.h +0 -103
  150. data/ext/v8/upstream/2.0.6/src/arm/register-allocator-arm.cc +0 -59
  151. data/ext/v8/upstream/2.0.6/src/arm/register-allocator-arm.h +0 -43
  152. data/ext/v8/upstream/2.0.6/src/arm/simulator-arm.cc +0 -2264
  153. data/ext/v8/upstream/2.0.6/src/arm/simulator-arm.h +0 -306
  154. data/ext/v8/upstream/2.0.6/src/arm/stub-cache-arm.cc +0 -1516
  155. data/ext/v8/upstream/2.0.6/src/arm/virtual-frame-arm.cc +0 -412
  156. data/ext/v8/upstream/2.0.6/src/arm/virtual-frame-arm.h +0 -532
  157. data/ext/v8/upstream/2.0.6/src/array.js +0 -1154
  158. data/ext/v8/upstream/2.0.6/src/assembler.cc +0 -772
  159. data/ext/v8/upstream/2.0.6/src/assembler.h +0 -525
  160. data/ext/v8/upstream/2.0.6/src/ast.cc +0 -512
  161. data/ext/v8/upstream/2.0.6/src/ast.h +0 -1820
  162. data/ext/v8/upstream/2.0.6/src/bootstrapper.cc +0 -1680
  163. data/ext/v8/upstream/2.0.6/src/bootstrapper.h +0 -103
  164. data/ext/v8/upstream/2.0.6/src/builtins.cc +0 -851
  165. data/ext/v8/upstream/2.0.6/src/builtins.h +0 -245
  166. data/ext/v8/upstream/2.0.6/src/bytecodes-irregexp.h +0 -104
  167. data/ext/v8/upstream/2.0.6/src/char-predicates-inl.h +0 -86
  168. data/ext/v8/upstream/2.0.6/src/char-predicates.h +0 -65
  169. data/ext/v8/upstream/2.0.6/src/checks.cc +0 -100
  170. data/ext/v8/upstream/2.0.6/src/checks.h +0 -284
  171. data/ext/v8/upstream/2.0.6/src/code-stubs.cc +0 -164
  172. data/ext/v8/upstream/2.0.6/src/code-stubs.h +0 -164
  173. data/ext/v8/upstream/2.0.6/src/code.h +0 -68
  174. data/ext/v8/upstream/2.0.6/src/codegen-inl.h +0 -88
  175. data/ext/v8/upstream/2.0.6/src/codegen.cc +0 -504
  176. data/ext/v8/upstream/2.0.6/src/codegen.h +0 -522
  177. data/ext/v8/upstream/2.0.6/src/compilation-cache.cc +0 -490
  178. data/ext/v8/upstream/2.0.6/src/compilation-cache.h +0 -98
  179. data/ext/v8/upstream/2.0.6/src/compiler.cc +0 -1132
  180. data/ext/v8/upstream/2.0.6/src/compiler.h +0 -107
  181. data/ext/v8/upstream/2.0.6/src/contexts.cc +0 -256
  182. data/ext/v8/upstream/2.0.6/src/contexts.h +0 -345
  183. data/ext/v8/upstream/2.0.6/src/conversions-inl.h +0 -95
  184. data/ext/v8/upstream/2.0.6/src/conversions.cc +0 -709
  185. data/ext/v8/upstream/2.0.6/src/conversions.h +0 -118
  186. data/ext/v8/upstream/2.0.6/src/counters.cc +0 -78
  187. data/ext/v8/upstream/2.0.6/src/counters.h +0 -239
  188. data/ext/v8/upstream/2.0.6/src/cpu.h +0 -65
  189. data/ext/v8/upstream/2.0.6/src/d8-debug.cc +0 -345
  190. data/ext/v8/upstream/2.0.6/src/d8-debug.h +0 -155
  191. data/ext/v8/upstream/2.0.6/src/d8-posix.cc +0 -675
  192. data/ext/v8/upstream/2.0.6/src/d8-readline.cc +0 -128
  193. data/ext/v8/upstream/2.0.6/src/d8-windows.cc +0 -42
  194. data/ext/v8/upstream/2.0.6/src/d8.cc +0 -776
  195. data/ext/v8/upstream/2.0.6/src/d8.h +0 -225
  196. data/ext/v8/upstream/2.0.6/src/d8.js +0 -1625
  197. data/ext/v8/upstream/2.0.6/src/date-delay.js +0 -1138
  198. data/ext/v8/upstream/2.0.6/src/dateparser-inl.h +0 -114
  199. data/ext/v8/upstream/2.0.6/src/dateparser.cc +0 -186
  200. data/ext/v8/upstream/2.0.6/src/dateparser.h +0 -240
  201. data/ext/v8/upstream/2.0.6/src/debug-agent.cc +0 -425
  202. data/ext/v8/upstream/2.0.6/src/debug-agent.h +0 -129
  203. data/ext/v8/upstream/2.0.6/src/debug-delay.js +0 -2073
  204. data/ext/v8/upstream/2.0.6/src/debug.cc +0 -2751
  205. data/ext/v8/upstream/2.0.6/src/debug.h +0 -866
  206. data/ext/v8/upstream/2.0.6/src/disasm.h +0 -77
  207. data/ext/v8/upstream/2.0.6/src/disassembler.cc +0 -318
  208. data/ext/v8/upstream/2.0.6/src/disassembler.h +0 -56
  209. data/ext/v8/upstream/2.0.6/src/dtoa-config.c +0 -91
  210. data/ext/v8/upstream/2.0.6/src/execution.cc +0 -701
  211. data/ext/v8/upstream/2.0.6/src/execution.h +0 -312
  212. data/ext/v8/upstream/2.0.6/src/factory.cc +0 -957
  213. data/ext/v8/upstream/2.0.6/src/factory.h +0 -393
  214. data/ext/v8/upstream/2.0.6/src/fast-codegen.cc +0 -725
  215. data/ext/v8/upstream/2.0.6/src/fast-codegen.h +0 -371
  216. data/ext/v8/upstream/2.0.6/src/flag-definitions.h +0 -426
  217. data/ext/v8/upstream/2.0.6/src/flags.cc +0 -555
  218. data/ext/v8/upstream/2.0.6/src/flags.h +0 -81
  219. data/ext/v8/upstream/2.0.6/src/frame-element.cc +0 -45
  220. data/ext/v8/upstream/2.0.6/src/frame-element.h +0 -235
  221. data/ext/v8/upstream/2.0.6/src/frames-inl.h +0 -215
  222. data/ext/v8/upstream/2.0.6/src/frames.cc +0 -749
  223. data/ext/v8/upstream/2.0.6/src/frames.h +0 -659
  224. data/ext/v8/upstream/2.0.6/src/func-name-inferrer.cc +0 -76
  225. data/ext/v8/upstream/2.0.6/src/func-name-inferrer.h +0 -135
  226. data/ext/v8/upstream/2.0.6/src/global-handles.cc +0 -516
  227. data/ext/v8/upstream/2.0.6/src/global-handles.h +0 -180
  228. data/ext/v8/upstream/2.0.6/src/globals.h +0 -608
  229. data/ext/v8/upstream/2.0.6/src/handles-inl.h +0 -76
  230. data/ext/v8/upstream/2.0.6/src/handles.cc +0 -811
  231. data/ext/v8/upstream/2.0.6/src/handles.h +0 -367
  232. data/ext/v8/upstream/2.0.6/src/hashmap.cc +0 -226
  233. data/ext/v8/upstream/2.0.6/src/hashmap.h +0 -120
  234. data/ext/v8/upstream/2.0.6/src/heap-inl.h +0 -407
  235. data/ext/v8/upstream/2.0.6/src/heap-profiler.cc +0 -695
  236. data/ext/v8/upstream/2.0.6/src/heap-profiler.h +0 -277
  237. data/ext/v8/upstream/2.0.6/src/heap.cc +0 -4204
  238. data/ext/v8/upstream/2.0.6/src/heap.h +0 -1704
  239. data/ext/v8/upstream/2.0.6/src/ia32/assembler-ia32-inl.h +0 -325
  240. data/ext/v8/upstream/2.0.6/src/ia32/assembler-ia32.cc +0 -2375
  241. data/ext/v8/upstream/2.0.6/src/ia32/assembler-ia32.h +0 -914
  242. data/ext/v8/upstream/2.0.6/src/ia32/builtins-ia32.cc +0 -1222
  243. data/ext/v8/upstream/2.0.6/src/ia32/codegen-ia32-inl.h +0 -46
  244. data/ext/v8/upstream/2.0.6/src/ia32/codegen-ia32.cc +0 -9770
  245. data/ext/v8/upstream/2.0.6/src/ia32/codegen-ia32.h +0 -834
  246. data/ext/v8/upstream/2.0.6/src/ia32/cpu-ia32.cc +0 -79
  247. data/ext/v8/upstream/2.0.6/src/ia32/debug-ia32.cc +0 -208
  248. data/ext/v8/upstream/2.0.6/src/ia32/disasm-ia32.cc +0 -1357
  249. data/ext/v8/upstream/2.0.6/src/ia32/fast-codegen-ia32.cc +0 -1813
  250. data/ext/v8/upstream/2.0.6/src/ia32/frames-ia32.cc +0 -111
  251. data/ext/v8/upstream/2.0.6/src/ia32/frames-ia32.h +0 -135
  252. data/ext/v8/upstream/2.0.6/src/ia32/ic-ia32.cc +0 -1490
  253. data/ext/v8/upstream/2.0.6/src/ia32/jump-target-ia32.cc +0 -432
  254. data/ext/v8/upstream/2.0.6/src/ia32/macro-assembler-ia32.cc +0 -1517
  255. data/ext/v8/upstream/2.0.6/src/ia32/macro-assembler-ia32.h +0 -528
  256. data/ext/v8/upstream/2.0.6/src/ia32/regexp-macro-assembler-ia32.cc +0 -1219
  257. data/ext/v8/upstream/2.0.6/src/ia32/regexp-macro-assembler-ia32.h +0 -230
  258. data/ext/v8/upstream/2.0.6/src/ia32/register-allocator-ia32-inl.h +0 -82
  259. data/ext/v8/upstream/2.0.6/src/ia32/register-allocator-ia32.cc +0 -99
  260. data/ext/v8/upstream/2.0.6/src/ia32/register-allocator-ia32.h +0 -43
  261. data/ext/v8/upstream/2.0.6/src/ia32/simulator-ia32.cc +0 -30
  262. data/ext/v8/upstream/2.0.6/src/ia32/simulator-ia32.h +0 -62
  263. data/ext/v8/upstream/2.0.6/src/ia32/stub-cache-ia32.cc +0 -1961
  264. data/ext/v8/upstream/2.0.6/src/ia32/virtual-frame-ia32.cc +0 -1105
  265. data/ext/v8/upstream/2.0.6/src/ia32/virtual-frame-ia32.h +0 -580
  266. data/ext/v8/upstream/2.0.6/src/ic-inl.h +0 -93
  267. data/ext/v8/upstream/2.0.6/src/ic.cc +0 -1426
  268. data/ext/v8/upstream/2.0.6/src/ic.h +0 -443
  269. data/ext/v8/upstream/2.0.6/src/interpreter-irregexp.cc +0 -646
  270. data/ext/v8/upstream/2.0.6/src/interpreter-irregexp.h +0 -48
  271. data/ext/v8/upstream/2.0.6/src/json-delay.js +0 -254
  272. data/ext/v8/upstream/2.0.6/src/jsregexp.cc +0 -5234
  273. data/ext/v8/upstream/2.0.6/src/jsregexp.h +0 -1439
  274. data/ext/v8/upstream/2.0.6/src/jump-target-inl.h +0 -49
  275. data/ext/v8/upstream/2.0.6/src/jump-target.cc +0 -383
  276. data/ext/v8/upstream/2.0.6/src/jump-target.h +0 -280
  277. data/ext/v8/upstream/2.0.6/src/list-inl.h +0 -166
  278. data/ext/v8/upstream/2.0.6/src/list.h +0 -158
  279. data/ext/v8/upstream/2.0.6/src/log-inl.h +0 -126
  280. data/ext/v8/upstream/2.0.6/src/log-utils.cc +0 -503
  281. data/ext/v8/upstream/2.0.6/src/log-utils.h +0 -292
  282. data/ext/v8/upstream/2.0.6/src/log.cc +0 -1457
  283. data/ext/v8/upstream/2.0.6/src/log.h +0 -371
  284. data/ext/v8/upstream/2.0.6/src/macro-assembler.h +0 -93
  285. data/ext/v8/upstream/2.0.6/src/macros.py +0 -137
  286. data/ext/v8/upstream/2.0.6/src/mark-compact.cc +0 -2007
  287. data/ext/v8/upstream/2.0.6/src/mark-compact.h +0 -442
  288. data/ext/v8/upstream/2.0.6/src/math.js +0 -263
  289. data/ext/v8/upstream/2.0.6/src/memory.h +0 -74
  290. data/ext/v8/upstream/2.0.6/src/messages.cc +0 -177
  291. data/ext/v8/upstream/2.0.6/src/messages.h +0 -112
  292. data/ext/v8/upstream/2.0.6/src/messages.js +0 -937
  293. data/ext/v8/upstream/2.0.6/src/mirror-delay.js +0 -2332
  294. data/ext/v8/upstream/2.0.6/src/mksnapshot.cc +0 -169
  295. data/ext/v8/upstream/2.0.6/src/natives.h +0 -63
  296. data/ext/v8/upstream/2.0.6/src/objects-debug.cc +0 -1317
  297. data/ext/v8/upstream/2.0.6/src/objects-inl.h +0 -3044
  298. data/ext/v8/upstream/2.0.6/src/objects.cc +0 -8306
  299. data/ext/v8/upstream/2.0.6/src/objects.h +0 -4960
  300. data/ext/v8/upstream/2.0.6/src/oprofile-agent.cc +0 -116
  301. data/ext/v8/upstream/2.0.6/src/oprofile-agent.h +0 -69
  302. data/ext/v8/upstream/2.0.6/src/parser.cc +0 -4810
  303. data/ext/v8/upstream/2.0.6/src/parser.h +0 -195
  304. data/ext/v8/upstream/2.0.6/src/platform-freebsd.cc +0 -645
  305. data/ext/v8/upstream/2.0.6/src/platform-linux.cc +0 -808
  306. data/ext/v8/upstream/2.0.6/src/platform-macos.cc +0 -643
  307. data/ext/v8/upstream/2.0.6/src/platform-nullos.cc +0 -454
  308. data/ext/v8/upstream/2.0.6/src/platform-openbsd.cc +0 -597
  309. data/ext/v8/upstream/2.0.6/src/platform-posix.cc +0 -380
  310. data/ext/v8/upstream/2.0.6/src/platform-win32.cc +0 -1908
  311. data/ext/v8/upstream/2.0.6/src/platform.h +0 -556
  312. data/ext/v8/upstream/2.0.6/src/prettyprinter.cc +0 -1511
  313. data/ext/v8/upstream/2.0.6/src/prettyprinter.h +0 -219
  314. data/ext/v8/upstream/2.0.6/src/property.cc +0 -96
  315. data/ext/v8/upstream/2.0.6/src/property.h +0 -327
  316. data/ext/v8/upstream/2.0.6/src/regexp-delay.js +0 -406
  317. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-irregexp-inl.h +0 -78
  318. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-irregexp.cc +0 -464
  319. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-irregexp.h +0 -141
  320. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-tracer.cc +0 -356
  321. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-tracer.h +0 -103
  322. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler.cc +0 -240
  323. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler.h +0 -220
  324. data/ext/v8/upstream/2.0.6/src/regexp-stack.cc +0 -103
  325. data/ext/v8/upstream/2.0.6/src/regexp-stack.h +0 -123
  326. data/ext/v8/upstream/2.0.6/src/register-allocator-inl.h +0 -74
  327. data/ext/v8/upstream/2.0.6/src/register-allocator.cc +0 -100
  328. data/ext/v8/upstream/2.0.6/src/register-allocator.h +0 -295
  329. data/ext/v8/upstream/2.0.6/src/rewriter.cc +0 -855
  330. data/ext/v8/upstream/2.0.6/src/rewriter.h +0 -54
  331. data/ext/v8/upstream/2.0.6/src/runtime.cc +0 -8163
  332. data/ext/v8/upstream/2.0.6/src/runtime.h +0 -432
  333. data/ext/v8/upstream/2.0.6/src/runtime.js +0 -626
  334. data/ext/v8/upstream/2.0.6/src/scanner.cc +0 -1098
  335. data/ext/v8/upstream/2.0.6/src/scanner.h +0 -425
  336. data/ext/v8/upstream/2.0.6/src/scopeinfo.cc +0 -649
  337. data/ext/v8/upstream/2.0.6/src/scopeinfo.h +0 -236
  338. data/ext/v8/upstream/2.0.6/src/scopes.cc +0 -963
  339. data/ext/v8/upstream/2.0.6/src/scopes.h +0 -401
  340. data/ext/v8/upstream/2.0.6/src/serialize.cc +0 -1260
  341. data/ext/v8/upstream/2.0.6/src/serialize.h +0 -404
  342. data/ext/v8/upstream/2.0.6/src/shell.h +0 -55
  343. data/ext/v8/upstream/2.0.6/src/simulator.h +0 -41
  344. data/ext/v8/upstream/2.0.6/src/smart-pointer.h +0 -109
  345. data/ext/v8/upstream/2.0.6/src/snapshot-common.cc +0 -97
  346. data/ext/v8/upstream/2.0.6/src/snapshot-empty.cc +0 -40
  347. data/ext/v8/upstream/2.0.6/src/snapshot.h +0 -59
  348. data/ext/v8/upstream/2.0.6/src/spaces-inl.h +0 -372
  349. data/ext/v8/upstream/2.0.6/src/spaces.cc +0 -2864
  350. data/ext/v8/upstream/2.0.6/src/spaces.h +0 -2072
  351. data/ext/v8/upstream/2.0.6/src/string-stream.cc +0 -584
  352. data/ext/v8/upstream/2.0.6/src/string-stream.h +0 -189
  353. data/ext/v8/upstream/2.0.6/src/string.js +0 -901
  354. data/ext/v8/upstream/2.0.6/src/stub-cache.cc +0 -1108
  355. data/ext/v8/upstream/2.0.6/src/stub-cache.h +0 -578
  356. data/ext/v8/upstream/2.0.6/src/third_party/dtoa/COPYING +0 -15
  357. data/ext/v8/upstream/2.0.6/src/third_party/dtoa/dtoa.c +0 -3330
  358. data/ext/v8/upstream/2.0.6/src/third_party/valgrind/valgrind.h +0 -3925
  359. data/ext/v8/upstream/2.0.6/src/token.cc +0 -56
  360. data/ext/v8/upstream/2.0.6/src/token.h +0 -270
  361. data/ext/v8/upstream/2.0.6/src/top.cc +0 -991
  362. data/ext/v8/upstream/2.0.6/src/top.h +0 -459
  363. data/ext/v8/upstream/2.0.6/src/unicode-inl.h +0 -238
  364. data/ext/v8/upstream/2.0.6/src/unicode.cc +0 -749
  365. data/ext/v8/upstream/2.0.6/src/unicode.h +0 -279
  366. data/ext/v8/upstream/2.0.6/src/uri.js +0 -415
  367. data/ext/v8/upstream/2.0.6/src/usage-analyzer.cc +0 -426
  368. data/ext/v8/upstream/2.0.6/src/usage-analyzer.h +0 -40
  369. data/ext/v8/upstream/2.0.6/src/utils.cc +0 -322
  370. data/ext/v8/upstream/2.0.6/src/utils.h +0 -592
  371. data/ext/v8/upstream/2.0.6/src/v8-counters.cc +0 -55
  372. data/ext/v8/upstream/2.0.6/src/v8-counters.h +0 -198
  373. data/ext/v8/upstream/2.0.6/src/v8.cc +0 -193
  374. data/ext/v8/upstream/2.0.6/src/v8.h +0 -119
  375. data/ext/v8/upstream/2.0.6/src/v8natives.js +0 -846
  376. data/ext/v8/upstream/2.0.6/src/v8threads.cc +0 -450
  377. data/ext/v8/upstream/2.0.6/src/v8threads.h +0 -144
  378. data/ext/v8/upstream/2.0.6/src/variables.cc +0 -163
  379. data/ext/v8/upstream/2.0.6/src/variables.h +0 -235
  380. data/ext/v8/upstream/2.0.6/src/version.cc +0 -88
  381. data/ext/v8/upstream/2.0.6/src/version.h +0 -64
  382. data/ext/v8/upstream/2.0.6/src/virtual-frame.cc +0 -381
  383. data/ext/v8/upstream/2.0.6/src/virtual-frame.h +0 -44
  384. data/ext/v8/upstream/2.0.6/src/x64/assembler-x64-inl.h +0 -352
  385. data/ext/v8/upstream/2.0.6/src/x64/assembler-x64.cc +0 -2539
  386. data/ext/v8/upstream/2.0.6/src/x64/assembler-x64.h +0 -1399
  387. data/ext/v8/upstream/2.0.6/src/x64/builtins-x64.cc +0 -1255
  388. data/ext/v8/upstream/2.0.6/src/x64/codegen-x64-inl.h +0 -46
  389. data/ext/v8/upstream/2.0.6/src/x64/codegen-x64.cc +0 -8223
  390. data/ext/v8/upstream/2.0.6/src/x64/codegen-x64.h +0 -785
  391. data/ext/v8/upstream/2.0.6/src/x64/cpu-x64.cc +0 -79
  392. data/ext/v8/upstream/2.0.6/src/x64/debug-x64.cc +0 -202
  393. data/ext/v8/upstream/2.0.6/src/x64/disasm-x64.cc +0 -1596
  394. data/ext/v8/upstream/2.0.6/src/x64/fast-codegen-x64.cc +0 -1820
  395. data/ext/v8/upstream/2.0.6/src/x64/frames-x64.cc +0 -109
  396. data/ext/v8/upstream/2.0.6/src/x64/frames-x64.h +0 -121
  397. data/ext/v8/upstream/2.0.6/src/x64/ic-x64.cc +0 -1392
  398. data/ext/v8/upstream/2.0.6/src/x64/jump-target-x64.cc +0 -432
  399. data/ext/v8/upstream/2.0.6/src/x64/macro-assembler-x64.cc +0 -2409
  400. data/ext/v8/upstream/2.0.6/src/x64/macro-assembler-x64.h +0 -765
  401. data/ext/v8/upstream/2.0.6/src/x64/regexp-macro-assembler-x64.cc +0 -1337
  402. data/ext/v8/upstream/2.0.6/src/x64/regexp-macro-assembler-x64.h +0 -295
  403. data/ext/v8/upstream/2.0.6/src/x64/register-allocator-x64-inl.h +0 -86
  404. data/ext/v8/upstream/2.0.6/src/x64/register-allocator-x64.cc +0 -84
  405. data/ext/v8/upstream/2.0.6/src/x64/register-allocator-x64.h +0 -43
  406. data/ext/v8/upstream/2.0.6/src/x64/simulator-x64.cc +0 -27
  407. data/ext/v8/upstream/2.0.6/src/x64/simulator-x64.h +0 -63
  408. data/ext/v8/upstream/2.0.6/src/x64/stub-cache-x64.cc +0 -1884
  409. data/ext/v8/upstream/2.0.6/src/x64/virtual-frame-x64.cc +0 -1089
  410. data/ext/v8/upstream/2.0.6/src/x64/virtual-frame-x64.h +0 -560
  411. data/ext/v8/upstream/2.0.6/src/zone-inl.h +0 -297
  412. data/ext/v8/upstream/2.0.6/src/zone.cc +0 -193
  413. data/ext/v8/upstream/2.0.6/src/zone.h +0 -305
  414. data/ext/v8/upstream/2.0.6/tools/codemap.js +0 -258
  415. data/ext/v8/upstream/2.0.6/tools/consarray.js +0 -93
  416. data/ext/v8/upstream/2.0.6/tools/csvparser.js +0 -98
  417. data/ext/v8/upstream/2.0.6/tools/gyp/v8.gyp +0 -620
  418. data/ext/v8/upstream/2.0.6/tools/js2c.py +0 -376
  419. data/ext/v8/upstream/2.0.6/tools/jsmin.py +0 -280
  420. data/ext/v8/upstream/2.0.6/tools/linux-tick-processor +0 -24
  421. data/ext/v8/upstream/2.0.6/tools/linux-tick-processor.py +0 -78
  422. data/ext/v8/upstream/2.0.6/tools/logreader.js +0 -320
  423. data/ext/v8/upstream/2.0.6/tools/mac-nm +0 -18
  424. data/ext/v8/upstream/2.0.6/tools/mac-tick-processor +0 -6
  425. data/ext/v8/upstream/2.0.6/tools/oprofile/annotate +0 -7
  426. data/ext/v8/upstream/2.0.6/tools/oprofile/common +0 -19
  427. data/ext/v8/upstream/2.0.6/tools/oprofile/dump +0 -7
  428. data/ext/v8/upstream/2.0.6/tools/oprofile/report +0 -7
  429. data/ext/v8/upstream/2.0.6/tools/oprofile/reset +0 -7
  430. data/ext/v8/upstream/2.0.6/tools/oprofile/run +0 -14
  431. data/ext/v8/upstream/2.0.6/tools/oprofile/shutdown +0 -7
  432. data/ext/v8/upstream/2.0.6/tools/oprofile/start +0 -7
  433. data/ext/v8/upstream/2.0.6/tools/presubmit.py +0 -299
  434. data/ext/v8/upstream/2.0.6/tools/process-heap-prof.py +0 -120
  435. data/ext/v8/upstream/2.0.6/tools/profile.js +0 -621
  436. data/ext/v8/upstream/2.0.6/tools/profile_view.js +0 -224
  437. data/ext/v8/upstream/2.0.6/tools/run-valgrind.py +0 -77
  438. data/ext/v8/upstream/2.0.6/tools/splaytree.js +0 -322
  439. data/ext/v8/upstream/2.0.6/tools/splaytree.py +0 -226
  440. data/ext/v8/upstream/2.0.6/tools/stats-viewer.py +0 -456
  441. data/ext/v8/upstream/2.0.6/tools/test.py +0 -1370
  442. data/ext/v8/upstream/2.0.6/tools/tickprocessor-driver.js +0 -53
  443. data/ext/v8/upstream/2.0.6/tools/tickprocessor.js +0 -731
  444. data/ext/v8/upstream/2.0.6/tools/tickprocessor.py +0 -535
  445. data/ext/v8/upstream/2.0.6/tools/utils.py +0 -82
  446. data/ext/v8/upstream/2.0.6/tools/visual_studio/README.txt +0 -71
  447. data/ext/v8/upstream/2.0.6/tools/visual_studio/arm.vsprops +0 -14
  448. data/ext/v8/upstream/2.0.6/tools/visual_studio/common.vsprops +0 -35
  449. data/ext/v8/upstream/2.0.6/tools/visual_studio/d8.vcproj +0 -199
  450. data/ext/v8/upstream/2.0.6/tools/visual_studio/d8_arm.vcproj +0 -199
  451. data/ext/v8/upstream/2.0.6/tools/visual_studio/d8_x64.vcproj +0 -201
  452. data/ext/v8/upstream/2.0.6/tools/visual_studio/d8js2c.cmd +0 -6
  453. data/ext/v8/upstream/2.0.6/tools/visual_studio/debug.vsprops +0 -17
  454. data/ext/v8/upstream/2.0.6/tools/visual_studio/ia32.vsprops +0 -13
  455. data/ext/v8/upstream/2.0.6/tools/visual_studio/js2c.cmd +0 -6
  456. data/ext/v8/upstream/2.0.6/tools/visual_studio/release.vsprops +0 -24
  457. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8.sln +0 -101
  458. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8.vcproj +0 -223
  459. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_arm.sln +0 -74
  460. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_arm.vcproj +0 -223
  461. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_base.vcproj +0 -971
  462. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_base_arm.vcproj +0 -983
  463. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_base_x64.vcproj +0 -959
  464. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_cctest.vcproj +0 -255
  465. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_cctest_arm.vcproj +0 -243
  466. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_cctest_x64.vcproj +0 -257
  467. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_mksnapshot.vcproj +0 -151
  468. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -151
  469. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_process_sample.vcproj +0 -151
  470. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_process_sample_arm.vcproj +0 -151
  471. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_process_sample_x64.vcproj +0 -151
  472. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_shell_sample.vcproj +0 -151
  473. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_shell_sample_arm.vcproj +0 -151
  474. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_shell_sample_x64.vcproj +0 -153
  475. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot.vcproj +0 -142
  476. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot_cc.vcproj +0 -92
  477. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -92
  478. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot_x64.vcproj +0 -142
  479. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_x64.sln +0 -101
  480. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_x64.vcproj +0 -223
  481. data/ext/v8/upstream/2.0.6/tools/visual_studio/x64.vsprops +0 -13
  482. data/ext/v8/upstream/2.0.6/tools/windows-tick-processor.bat +0 -5
  483. data/ext/v8/upstream/2.0.6/tools/windows-tick-processor.py +0 -137
  484. data/ext/v8/upstream/Makefile +0 -32
  485. data/ext/v8/upstream/fpic-on-linux-amd64.patch +0 -13
  486. data/ext/v8/upstream/no-strict-aliasing.patch +0 -13
  487. data/ext/v8/upstream/scons/CHANGES.txt +0 -5183
  488. data/ext/v8/upstream/scons/LICENSE.txt +0 -20
  489. data/ext/v8/upstream/scons/MANIFEST +0 -202
  490. data/ext/v8/upstream/scons/PKG-INFO +0 -13
  491. data/ext/v8/upstream/scons/README.txt +0 -273
  492. data/ext/v8/upstream/scons/RELEASE.txt +0 -1040
  493. data/ext/v8/upstream/scons/engine/SCons/Action.py +0 -1256
  494. data/ext/v8/upstream/scons/engine/SCons/Builder.py +0 -868
  495. data/ext/v8/upstream/scons/engine/SCons/CacheDir.py +0 -217
  496. data/ext/v8/upstream/scons/engine/SCons/Conftest.py +0 -794
  497. data/ext/v8/upstream/scons/engine/SCons/Debug.py +0 -237
  498. data/ext/v8/upstream/scons/engine/SCons/Defaults.py +0 -485
  499. data/ext/v8/upstream/scons/engine/SCons/Environment.py +0 -2327
  500. data/ext/v8/upstream/scons/engine/SCons/Errors.py +0 -207
  501. data/ext/v8/upstream/scons/engine/SCons/Executor.py +0 -636
  502. data/ext/v8/upstream/scons/engine/SCons/Job.py +0 -435
  503. data/ext/v8/upstream/scons/engine/SCons/Memoize.py +0 -292
  504. data/ext/v8/upstream/scons/engine/SCons/Node/Alias.py +0 -153
  505. data/ext/v8/upstream/scons/engine/SCons/Node/FS.py +0 -3220
  506. data/ext/v8/upstream/scons/engine/SCons/Node/Python.py +0 -128
  507. data/ext/v8/upstream/scons/engine/SCons/Node/__init__.py +0 -1341
  508. data/ext/v8/upstream/scons/engine/SCons/Options/BoolOption.py +0 -50
  509. data/ext/v8/upstream/scons/engine/SCons/Options/EnumOption.py +0 -50
  510. data/ext/v8/upstream/scons/engine/SCons/Options/ListOption.py +0 -50
  511. data/ext/v8/upstream/scons/engine/SCons/Options/PackageOption.py +0 -50
  512. data/ext/v8/upstream/scons/engine/SCons/Options/PathOption.py +0 -76
  513. data/ext/v8/upstream/scons/engine/SCons/Options/__init__.py +0 -74
  514. data/ext/v8/upstream/scons/engine/SCons/PathList.py +0 -232
  515. data/ext/v8/upstream/scons/engine/SCons/Platform/__init__.py +0 -236
  516. data/ext/v8/upstream/scons/engine/SCons/Platform/aix.py +0 -70
  517. data/ext/v8/upstream/scons/engine/SCons/Platform/cygwin.py +0 -55
  518. data/ext/v8/upstream/scons/engine/SCons/Platform/darwin.py +0 -46
  519. data/ext/v8/upstream/scons/engine/SCons/Platform/hpux.py +0 -46
  520. data/ext/v8/upstream/scons/engine/SCons/Platform/irix.py +0 -44
  521. data/ext/v8/upstream/scons/engine/SCons/Platform/os2.py +0 -58
  522. data/ext/v8/upstream/scons/engine/SCons/Platform/posix.py +0 -264
  523. data/ext/v8/upstream/scons/engine/SCons/Platform/sunos.py +0 -50
  524. data/ext/v8/upstream/scons/engine/SCons/Platform/win32.py +0 -386
  525. data/ext/v8/upstream/scons/engine/SCons/SConf.py +0 -1038
  526. data/ext/v8/upstream/scons/engine/SCons/SConsign.py +0 -381
  527. data/ext/v8/upstream/scons/engine/SCons/Scanner/C.py +0 -132
  528. data/ext/v8/upstream/scons/engine/SCons/Scanner/D.py +0 -74
  529. data/ext/v8/upstream/scons/engine/SCons/Scanner/Dir.py +0 -111
  530. data/ext/v8/upstream/scons/engine/SCons/Scanner/Fortran.py +0 -320
  531. data/ext/v8/upstream/scons/engine/SCons/Scanner/IDL.py +0 -48
  532. data/ext/v8/upstream/scons/engine/SCons/Scanner/LaTeX.py +0 -378
  533. data/ext/v8/upstream/scons/engine/SCons/Scanner/Prog.py +0 -103
  534. data/ext/v8/upstream/scons/engine/SCons/Scanner/RC.py +0 -55
  535. data/ext/v8/upstream/scons/engine/SCons/Scanner/__init__.py +0 -415
  536. data/ext/v8/upstream/scons/engine/SCons/Script/Interactive.py +0 -386
  537. data/ext/v8/upstream/scons/engine/SCons/Script/Main.py +0 -1360
  538. data/ext/v8/upstream/scons/engine/SCons/Script/SConsOptions.py +0 -944
  539. data/ext/v8/upstream/scons/engine/SCons/Script/SConscript.py +0 -642
  540. data/ext/v8/upstream/scons/engine/SCons/Script/__init__.py +0 -414
  541. data/ext/v8/upstream/scons/engine/SCons/Sig.py +0 -63
  542. data/ext/v8/upstream/scons/engine/SCons/Subst.py +0 -911
  543. data/ext/v8/upstream/scons/engine/SCons/Taskmaster.py +0 -1030
  544. data/ext/v8/upstream/scons/engine/SCons/Tool/386asm.py +0 -61
  545. data/ext/v8/upstream/scons/engine/SCons/Tool/BitKeeper.py +0 -65
  546. data/ext/v8/upstream/scons/engine/SCons/Tool/CVS.py +0 -73
  547. data/ext/v8/upstream/scons/engine/SCons/Tool/FortranCommon.py +0 -247
  548. data/ext/v8/upstream/scons/engine/SCons/Tool/JavaCommon.py +0 -324
  549. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/__init__.py +0 -56
  550. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/arch.py +0 -61
  551. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/common.py +0 -210
  552. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/netframework.py +0 -84
  553. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/sdk.py +0 -321
  554. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vc.py +0 -367
  555. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vs.py +0 -497
  556. data/ext/v8/upstream/scons/engine/SCons/Tool/Perforce.py +0 -104
  557. data/ext/v8/upstream/scons/engine/SCons/Tool/PharLapCommon.py +0 -138
  558. data/ext/v8/upstream/scons/engine/SCons/Tool/RCS.py +0 -64
  559. data/ext/v8/upstream/scons/engine/SCons/Tool/SCCS.py +0 -64
  560. data/ext/v8/upstream/scons/engine/SCons/Tool/Subversion.py +0 -71
  561. data/ext/v8/upstream/scons/engine/SCons/Tool/__init__.py +0 -675
  562. data/ext/v8/upstream/scons/engine/SCons/Tool/aixc++.py +0 -82
  563. data/ext/v8/upstream/scons/engine/SCons/Tool/aixcc.py +0 -74
  564. data/ext/v8/upstream/scons/engine/SCons/Tool/aixf77.py +0 -80
  565. data/ext/v8/upstream/scons/engine/SCons/Tool/aixlink.py +0 -76
  566. data/ext/v8/upstream/scons/engine/SCons/Tool/applelink.py +0 -71
  567. data/ext/v8/upstream/scons/engine/SCons/Tool/ar.py +0 -63
  568. data/ext/v8/upstream/scons/engine/SCons/Tool/as.py +0 -78
  569. data/ext/v8/upstream/scons/engine/SCons/Tool/bcc32.py +0 -82
  570. data/ext/v8/upstream/scons/engine/SCons/Tool/c++.py +0 -99
  571. data/ext/v8/upstream/scons/engine/SCons/Tool/cc.py +0 -114
  572. data/ext/v8/upstream/scons/engine/SCons/Tool/cvf.py +0 -58
  573. data/ext/v8/upstream/scons/engine/SCons/Tool/default.py +0 -50
  574. data/ext/v8/upstream/scons/engine/SCons/Tool/dmd.py +0 -224
  575. data/ext/v8/upstream/scons/engine/SCons/Tool/dvi.py +0 -64
  576. data/ext/v8/upstream/scons/engine/SCons/Tool/dvipdf.py +0 -125
  577. data/ext/v8/upstream/scons/engine/SCons/Tool/dvips.py +0 -94
  578. data/ext/v8/upstream/scons/engine/SCons/Tool/f77.py +0 -62
  579. data/ext/v8/upstream/scons/engine/SCons/Tool/f90.py +0 -62
  580. data/ext/v8/upstream/scons/engine/SCons/Tool/f95.py +0 -63
  581. data/ext/v8/upstream/scons/engine/SCons/Tool/filesystem.py +0 -98
  582. data/ext/v8/upstream/scons/engine/SCons/Tool/fortran.py +0 -63
  583. data/ext/v8/upstream/scons/engine/SCons/Tool/g++.py +0 -90
  584. data/ext/v8/upstream/scons/engine/SCons/Tool/g77.py +0 -73
  585. data/ext/v8/upstream/scons/engine/SCons/Tool/gas.py +0 -53
  586. data/ext/v8/upstream/scons/engine/SCons/Tool/gcc.py +0 -80
  587. data/ext/v8/upstream/scons/engine/SCons/Tool/gfortran.py +0 -64
  588. data/ext/v8/upstream/scons/engine/SCons/Tool/gnulink.py +0 -63
  589. data/ext/v8/upstream/scons/engine/SCons/Tool/gs.py +0 -81
  590. data/ext/v8/upstream/scons/engine/SCons/Tool/hpc++.py +0 -85
  591. data/ext/v8/upstream/scons/engine/SCons/Tool/hpcc.py +0 -53
  592. data/ext/v8/upstream/scons/engine/SCons/Tool/hplink.py +0 -77
  593. data/ext/v8/upstream/scons/engine/SCons/Tool/icc.py +0 -59
  594. data/ext/v8/upstream/scons/engine/SCons/Tool/icl.py +0 -52
  595. data/ext/v8/upstream/scons/engine/SCons/Tool/ifl.py +0 -72
  596. data/ext/v8/upstream/scons/engine/SCons/Tool/ifort.py +0 -90
  597. data/ext/v8/upstream/scons/engine/SCons/Tool/ilink.py +0 -59
  598. data/ext/v8/upstream/scons/engine/SCons/Tool/ilink32.py +0 -60
  599. data/ext/v8/upstream/scons/engine/SCons/Tool/install.py +0 -229
  600. data/ext/v8/upstream/scons/engine/SCons/Tool/intelc.py +0 -490
  601. data/ext/v8/upstream/scons/engine/SCons/Tool/ipkg.py +0 -71
  602. data/ext/v8/upstream/scons/engine/SCons/Tool/jar.py +0 -110
  603. data/ext/v8/upstream/scons/engine/SCons/Tool/javac.py +0 -234
  604. data/ext/v8/upstream/scons/engine/SCons/Tool/javah.py +0 -138
  605. data/ext/v8/upstream/scons/engine/SCons/Tool/latex.py +0 -79
  606. data/ext/v8/upstream/scons/engine/SCons/Tool/lex.py +0 -99
  607. data/ext/v8/upstream/scons/engine/SCons/Tool/link.py +0 -121
  608. data/ext/v8/upstream/scons/engine/SCons/Tool/linkloc.py +0 -112
  609. data/ext/v8/upstream/scons/engine/SCons/Tool/m4.py +0 -63
  610. data/ext/v8/upstream/scons/engine/SCons/Tool/masm.py +0 -77
  611. data/ext/v8/upstream/scons/engine/SCons/Tool/midl.py +0 -90
  612. data/ext/v8/upstream/scons/engine/SCons/Tool/mingw.py +0 -159
  613. data/ext/v8/upstream/scons/engine/SCons/Tool/mslib.py +0 -64
  614. data/ext/v8/upstream/scons/engine/SCons/Tool/mslink.py +0 -266
  615. data/ext/v8/upstream/scons/engine/SCons/Tool/mssdk.py +0 -50
  616. data/ext/v8/upstream/scons/engine/SCons/Tool/msvc.py +0 -269
  617. data/ext/v8/upstream/scons/engine/SCons/Tool/msvs.py +0 -1439
  618. data/ext/v8/upstream/scons/engine/SCons/Tool/mwcc.py +0 -208
  619. data/ext/v8/upstream/scons/engine/SCons/Tool/mwld.py +0 -107
  620. data/ext/v8/upstream/scons/engine/SCons/Tool/nasm.py +0 -72
  621. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/__init__.py +0 -314
  622. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/ipk.py +0 -185
  623. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/msi.py +0 -526
  624. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/rpm.py +0 -367
  625. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_tarbz2.py +0 -43
  626. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_targz.py +0 -43
  627. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_zip.py +0 -43
  628. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/tarbz2.py +0 -44
  629. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/targz.py +0 -44
  630. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/zip.py +0 -44
  631. data/ext/v8/upstream/scons/engine/SCons/Tool/pdf.py +0 -78
  632. data/ext/v8/upstream/scons/engine/SCons/Tool/pdflatex.py +0 -83
  633. data/ext/v8/upstream/scons/engine/SCons/Tool/pdftex.py +0 -108
  634. data/ext/v8/upstream/scons/engine/SCons/Tool/qt.py +0 -336
  635. data/ext/v8/upstream/scons/engine/SCons/Tool/rmic.py +0 -121
  636. data/ext/v8/upstream/scons/engine/SCons/Tool/rpcgen.py +0 -70
  637. data/ext/v8/upstream/scons/engine/SCons/Tool/rpm.py +0 -132
  638. data/ext/v8/upstream/scons/engine/SCons/Tool/sgiar.py +0 -68
  639. data/ext/v8/upstream/scons/engine/SCons/Tool/sgic++.py +0 -58
  640. data/ext/v8/upstream/scons/engine/SCons/Tool/sgicc.py +0 -53
  641. data/ext/v8/upstream/scons/engine/SCons/Tool/sgilink.py +0 -63
  642. data/ext/v8/upstream/scons/engine/SCons/Tool/sunar.py +0 -67
  643. data/ext/v8/upstream/scons/engine/SCons/Tool/sunc++.py +0 -142
  644. data/ext/v8/upstream/scons/engine/SCons/Tool/suncc.py +0 -58
  645. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf77.py +0 -63
  646. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf90.py +0 -64
  647. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf95.py +0 -64
  648. data/ext/v8/upstream/scons/engine/SCons/Tool/sunlink.py +0 -77
  649. data/ext/v8/upstream/scons/engine/SCons/Tool/swig.py +0 -186
  650. data/ext/v8/upstream/scons/engine/SCons/Tool/tar.py +0 -73
  651. data/ext/v8/upstream/scons/engine/SCons/Tool/tex.py +0 -805
  652. data/ext/v8/upstream/scons/engine/SCons/Tool/textfile.py +0 -175
  653. data/ext/v8/upstream/scons/engine/SCons/Tool/tlib.py +0 -53
  654. data/ext/v8/upstream/scons/engine/SCons/Tool/wix.py +0 -100
  655. data/ext/v8/upstream/scons/engine/SCons/Tool/yacc.py +0 -131
  656. data/ext/v8/upstream/scons/engine/SCons/Tool/zip.py +0 -100
  657. data/ext/v8/upstream/scons/engine/SCons/Util.py +0 -1645
  658. data/ext/v8/upstream/scons/engine/SCons/Variables/BoolVariable.py +0 -91
  659. data/ext/v8/upstream/scons/engine/SCons/Variables/EnumVariable.py +0 -107
  660. data/ext/v8/upstream/scons/engine/SCons/Variables/ListVariable.py +0 -139
  661. data/ext/v8/upstream/scons/engine/SCons/Variables/PackageVariable.py +0 -109
  662. data/ext/v8/upstream/scons/engine/SCons/Variables/PathVariable.py +0 -147
  663. data/ext/v8/upstream/scons/engine/SCons/Variables/__init__.py +0 -317
  664. data/ext/v8/upstream/scons/engine/SCons/Warnings.py +0 -228
  665. data/ext/v8/upstream/scons/engine/SCons/__init__.py +0 -49
  666. data/ext/v8/upstream/scons/engine/SCons/compat/__init__.py +0 -302
  667. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_UserString.py +0 -98
  668. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_hashlib.py +0 -91
  669. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_itertools.py +0 -124
  670. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_optparse.py +0 -1725
  671. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets.py +0 -583
  672. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets15.py +0 -176
  673. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_shlex.py +0 -325
  674. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_subprocess.py +0 -1296
  675. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_textwrap.py +0 -382
  676. data/ext/v8/upstream/scons/engine/SCons/compat/builtins.py +0 -187
  677. data/ext/v8/upstream/scons/engine/SCons/cpp.py +0 -598
  678. data/ext/v8/upstream/scons/engine/SCons/dblite.py +0 -248
  679. data/ext/v8/upstream/scons/engine/SCons/exitfuncs.py +0 -77
  680. data/ext/v8/upstream/scons/os_spawnv_fix.diff +0 -83
  681. data/ext/v8/upstream/scons/scons-time.1 +0 -1017
  682. data/ext/v8/upstream/scons/scons.1 +0 -15179
  683. data/ext/v8/upstream/scons/sconsign.1 +0 -208
  684. data/ext/v8/upstream/scons/script/scons +0 -184
  685. data/ext/v8/upstream/scons/script/scons-time +0 -1529
  686. data/ext/v8/upstream/scons/script/scons.bat +0 -31
  687. data/ext/v8/upstream/scons/script/sconsign +0 -508
  688. data/ext/v8/upstream/scons/setup.cfg +0 -6
  689. data/ext/v8/upstream/scons/setup.py +0 -427
  690. data/ext/v8/v8.cpp +0 -89
  691. data/ext/v8/v8_cxt.cpp +0 -92
  692. data/ext/v8/v8_cxt.h +0 -20
  693. data/ext/v8/v8_func.cpp +0 -10
  694. data/ext/v8/v8_func.h +0 -11
  695. data/ext/v8/v8_msg.cpp +0 -54
  696. data/ext/v8/v8_msg.h +0 -18
  697. data/ext/v8/v8_obj.cpp +0 -52
  698. data/ext/v8/v8_obj.h +0 -13
  699. data/ext/v8/v8_ref.cpp +0 -26
  700. data/ext/v8/v8_ref.h +0 -31
  701. data/ext/v8/v8_script.cpp +0 -20
  702. data/ext/v8/v8_script.h +0 -8
  703. data/ext/v8/v8_standalone.cpp +0 -69
  704. data/ext/v8/v8_standalone.h +0 -31
  705. data/ext/v8/v8_str.cpp +0 -17
  706. data/ext/v8/v8_str.h +0 -9
  707. data/ext/v8/v8_template.cpp +0 -53
  708. data/ext/v8/v8_template.h +0 -13
  709. data/lib/v8/to.rb +0 -33
  710. data/lib/v8/v8.so +0 -0
  711. data/script/console +0 -10
  712. data/script/destroy +0 -14
  713. data/script/generate +0 -14
  714. data/spec/ext/cxt_spec.rb +0 -25
  715. data/spec/ext/obj_spec.rb +0 -13
  716. data/spec/redjs/jsapi_spec.rb +0 -405
  717. data/spec/redjs/tap.rb +0 -8
  718. data/spec/redjs_helper.rb +0 -3
  719. data/spec/spec.opts +0 -1
  720. data/spec/v8/to_spec.rb +0 -15
  721. data/tasks/rspec.rake +0 -21
@@ -1,911 +0,0 @@
1
- """SCons.Subst
2
-
3
- SCons string substitution.
4
-
5
- """
6
-
7
- #
8
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
9
- #
10
- # Permission is hereby granted, free of charge, to any person obtaining
11
- # a copy of this software and associated documentation files (the
12
- # "Software"), to deal in the Software without restriction, including
13
- # without limitation the rights to use, copy, modify, merge, publish,
14
- # distribute, sublicense, and/or sell copies of the Software, and to
15
- # permit persons to whom the Software is furnished to do so, subject to
16
- # the following conditions:
17
- #
18
- # The above copyright notice and this permission notice shall be included
19
- # in all copies or substantial portions of the Software.
20
- #
21
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
22
- # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
23
- # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
- #
29
-
30
- __revision__ = "src/engine/SCons/Subst.py 4629 2010/01/17 22:23:21 scons"
31
-
32
- import re
33
- import string
34
- import types
35
- import UserList
36
- import UserString
37
-
38
- import SCons.Errors
39
-
40
- from SCons.Util import is_String, is_Sequence
41
-
42
- # Indexed by the SUBST_* constants below.
43
- _strconv = [SCons.Util.to_String_for_subst,
44
- SCons.Util.to_String_for_subst,
45
- SCons.Util.to_String_for_signature]
46
-
47
-
48
-
49
- AllowableExceptions = (IndexError, NameError)
50
-
51
- def SetAllowableExceptions(*excepts):
52
- global AllowableExceptions
53
- AllowableExceptions = filter(None, excepts)
54
-
55
- def raise_exception(exception, target, s):
56
- name = exception.__class__.__name__
57
- msg = "%s `%s' trying to evaluate `%s'" % (name, exception, s)
58
- if target:
59
- raise SCons.Errors.BuildError, (target[0], msg)
60
- else:
61
- raise SCons.Errors.UserError, msg
62
-
63
-
64
-
65
- class Literal:
66
- """A wrapper for a string. If you use this object wrapped
67
- around a string, then it will be interpreted as literal.
68
- When passed to the command interpreter, all special
69
- characters will be escaped."""
70
- def __init__(self, lstr):
71
- self.lstr = lstr
72
-
73
- def __str__(self):
74
- return self.lstr
75
-
76
- def escape(self, escape_func):
77
- return escape_func(self.lstr)
78
-
79
- def for_signature(self):
80
- return self.lstr
81
-
82
- def is_literal(self):
83
- return 1
84
-
85
- class SpecialAttrWrapper:
86
- """This is a wrapper for what we call a 'Node special attribute.'
87
- This is any of the attributes of a Node that we can reference from
88
- Environment variable substitution, such as $TARGET.abspath or
89
- $SOURCES[1].filebase. We implement the same methods as Literal
90
- so we can handle special characters, plus a for_signature method,
91
- such that we can return some canonical string during signature
92
- calculation to avoid unnecessary rebuilds."""
93
-
94
- def __init__(self, lstr, for_signature=None):
95
- """The for_signature parameter, if supplied, will be the
96
- canonical string we return from for_signature(). Else
97
- we will simply return lstr."""
98
- self.lstr = lstr
99
- if for_signature:
100
- self.forsig = for_signature
101
- else:
102
- self.forsig = lstr
103
-
104
- def __str__(self):
105
- return self.lstr
106
-
107
- def escape(self, escape_func):
108
- return escape_func(self.lstr)
109
-
110
- def for_signature(self):
111
- return self.forsig
112
-
113
- def is_literal(self):
114
- return 1
115
-
116
- def quote_spaces(arg):
117
- """Generic function for putting double quotes around any string that
118
- has white space in it."""
119
- if ' ' in arg or '\t' in arg:
120
- return '"%s"' % arg
121
- else:
122
- return str(arg)
123
-
124
- class CmdStringHolder(UserString.UserString):
125
- """This is a special class used to hold strings generated by
126
- scons_subst() and scons_subst_list(). It defines a special method
127
- escape(). When passed a function with an escape algorithm for a
128
- particular platform, it will return the contained string with the
129
- proper escape sequences inserted.
130
- """
131
- def __init__(self, cmd, literal=None):
132
- UserString.UserString.__init__(self, cmd)
133
- self.literal = literal
134
-
135
- def is_literal(self):
136
- return self.literal
137
-
138
- def escape(self, escape_func, quote_func=quote_spaces):
139
- """Escape the string with the supplied function. The
140
- function is expected to take an arbitrary string, then
141
- return it with all special characters escaped and ready
142
- for passing to the command interpreter.
143
-
144
- After calling this function, the next call to str() will
145
- return the escaped string.
146
- """
147
-
148
- if self.is_literal():
149
- return escape_func(self.data)
150
- elif ' ' in self.data or '\t' in self.data:
151
- return quote_func(self.data)
152
- else:
153
- return self.data
154
-
155
- def escape_list(list, escape_func):
156
- """Escape a list of arguments by running the specified escape_func
157
- on every object in the list that has an escape() method."""
158
- def escape(obj, escape_func=escape_func):
159
- try:
160
- e = obj.escape
161
- except AttributeError:
162
- return obj
163
- else:
164
- return e(escape_func)
165
- return map(escape, list)
166
-
167
- class NLWrapper:
168
- """A wrapper class that delays turning a list of sources or targets
169
- into a NodeList until it's needed. The specified function supplied
170
- when the object is initialized is responsible for turning raw nodes
171
- into proxies that implement the special attributes like .abspath,
172
- .source, etc. This way, we avoid creating those proxies just
173
- "in case" someone is going to use $TARGET or the like, and only
174
- go through the trouble if we really have to.
175
-
176
- In practice, this might be a wash performance-wise, but it's a little
177
- cleaner conceptually...
178
- """
179
-
180
- def __init__(self, list, func):
181
- self.list = list
182
- self.func = func
183
- def _return_nodelist(self):
184
- return self.nodelist
185
- def _gen_nodelist(self):
186
- list = self.list
187
- if list is None:
188
- list = []
189
- elif not is_Sequence(list):
190
- list = [list]
191
- # The map(self.func) call is what actually turns
192
- # a list into appropriate proxies.
193
- self.nodelist = SCons.Util.NodeList(map(self.func, list))
194
- self._create_nodelist = self._return_nodelist
195
- return self.nodelist
196
- _create_nodelist = _gen_nodelist
197
-
198
-
199
- class Targets_or_Sources(UserList.UserList):
200
- """A class that implements $TARGETS or $SOURCES expansions by in turn
201
- wrapping a NLWrapper. This class handles the different methods used
202
- to access the list, calling the NLWrapper to create proxies on demand.
203
-
204
- Note that we subclass UserList.UserList purely so that the
205
- is_Sequence() function will identify an object of this class as
206
- a list during variable expansion. We're not really using any
207
- UserList.UserList methods in practice.
208
- """
209
- def __init__(self, nl):
210
- self.nl = nl
211
- def __getattr__(self, attr):
212
- nl = self.nl._create_nodelist()
213
- return getattr(nl, attr)
214
- def __getitem__(self, i):
215
- nl = self.nl._create_nodelist()
216
- return nl[i]
217
- def __getslice__(self, i, j):
218
- nl = self.nl._create_nodelist()
219
- i = max(i, 0); j = max(j, 0)
220
- return nl[i:j]
221
- def __str__(self):
222
- nl = self.nl._create_nodelist()
223
- return str(nl)
224
- def __repr__(self):
225
- nl = self.nl._create_nodelist()
226
- return repr(nl)
227
-
228
- class Target_or_Source:
229
- """A class that implements $TARGET or $SOURCE expansions by in turn
230
- wrapping a NLWrapper. This class handles the different methods used
231
- to access an individual proxy Node, calling the NLWrapper to create
232
- a proxy on demand.
233
- """
234
- def __init__(self, nl):
235
- self.nl = nl
236
- def __getattr__(self, attr):
237
- nl = self.nl._create_nodelist()
238
- try:
239
- nl0 = nl[0]
240
- except IndexError:
241
- # If there is nothing in the list, then we have no attributes to
242
- # pass through, so raise AttributeError for everything.
243
- raise AttributeError, "NodeList has no attribute: %s" % attr
244
- return getattr(nl0, attr)
245
- def __str__(self):
246
- nl = self.nl._create_nodelist()
247
- if nl:
248
- return str(nl[0])
249
- return ''
250
- def __repr__(self):
251
- nl = self.nl._create_nodelist()
252
- if nl:
253
- return repr(nl[0])
254
- return ''
255
-
256
- class NullNodeList(SCons.Util.NullSeq):
257
- def __call__(self, *args, **kwargs): return ''
258
- def __str__(self): return ''
259
- # TODO(1.5): unneeded after new-style classes introduce iterators
260
- def __getitem__(self, i):
261
- raise IndexError
262
-
263
- NullNodesList = NullNodeList()
264
-
265
- def subst_dict(target, source):
266
- """Create a dictionary for substitution of special
267
- construction variables.
268
-
269
- This translates the following special arguments:
270
-
271
- target - the target (object or array of objects),
272
- used to generate the TARGET and TARGETS
273
- construction variables
274
-
275
- source - the source (object or array of objects),
276
- used to generate the SOURCES and SOURCE
277
- construction variables
278
- """
279
- dict = {}
280
-
281
- if target:
282
- def get_tgt_subst_proxy(thing):
283
- try:
284
- subst_proxy = thing.get_subst_proxy()
285
- except AttributeError:
286
- subst_proxy = thing # probably a string, just return it
287
- return subst_proxy
288
- tnl = NLWrapper(target, get_tgt_subst_proxy)
289
- dict['TARGETS'] = Targets_or_Sources(tnl)
290
- dict['TARGET'] = Target_or_Source(tnl)
291
-
292
- # This is a total cheat, but hopefully this dictionary goes
293
- # away soon anyway. We just let these expand to $TARGETS
294
- # because that's "good enough" for the use of ToolSurrogates
295
- # (see test/ToolSurrogate.py) to generate documentation.
296
- dict['CHANGED_TARGETS'] = '$TARGETS'
297
- dict['UNCHANGED_TARGETS'] = '$TARGETS'
298
- else:
299
- dict['TARGETS'] = NullNodesList
300
- dict['TARGET'] = NullNodesList
301
-
302
- if source:
303
- def get_src_subst_proxy(node):
304
- try:
305
- rfile = node.rfile
306
- except AttributeError:
307
- pass
308
- else:
309
- node = rfile()
310
- try:
311
- return node.get_subst_proxy()
312
- except AttributeError:
313
- return node # probably a String, just return it
314
- snl = NLWrapper(source, get_src_subst_proxy)
315
- dict['SOURCES'] = Targets_or_Sources(snl)
316
- dict['SOURCE'] = Target_or_Source(snl)
317
-
318
- # This is a total cheat, but hopefully this dictionary goes
319
- # away soon anyway. We just let these expand to $TARGETS
320
- # because that's "good enough" for the use of ToolSurrogates
321
- # (see test/ToolSurrogate.py) to generate documentation.
322
- dict['CHANGED_SOURCES'] = '$SOURCES'
323
- dict['UNCHANGED_SOURCES'] = '$SOURCES'
324
- else:
325
- dict['SOURCES'] = NullNodesList
326
- dict['SOURCE'] = NullNodesList
327
-
328
- return dict
329
-
330
- # Constants for the "mode" parameter to scons_subst_list() and
331
- # scons_subst(). SUBST_RAW gives the raw command line. SUBST_CMD
332
- # gives a command line suitable for passing to a shell. SUBST_SIG
333
- # gives a command line appropriate for calculating the signature
334
- # of a command line...if this changes, we should rebuild.
335
- SUBST_CMD = 0
336
- SUBST_RAW = 1
337
- SUBST_SIG = 2
338
-
339
- _rm = re.compile(r'\$[()]')
340
- _remove = re.compile(r'\$\([^\$]*(\$[^\)][^\$]*)*\$\)')
341
-
342
- # Indexed by the SUBST_* constants above.
343
- _regex_remove = [ _rm, None, _remove ]
344
-
345
- def _rm_list(list):
346
- #return [ l for l in list if not l in ('$(', '$)') ]
347
- return filter(lambda l: not l in ('$(', '$)'), list)
348
-
349
- def _remove_list(list):
350
- result = []
351
- do_append = result.append
352
- for l in list:
353
- if l == '$(':
354
- do_append = lambda x: None
355
- elif l == '$)':
356
- do_append = result.append
357
- else:
358
- do_append(l)
359
- return result
360
-
361
- # Indexed by the SUBST_* constants above.
362
- _list_remove = [ _rm_list, None, _remove_list ]
363
-
364
- # Regular expressions for splitting strings and handling substitutions,
365
- # for use by the scons_subst() and scons_subst_list() functions:
366
- #
367
- # The first expression compiled matches all of the $-introduced tokens
368
- # that we need to process in some way, and is used for substitutions.
369
- # The expressions it matches are:
370
- #
371
- # "$$"
372
- # "$("
373
- # "$)"
374
- # "$variable" [must begin with alphabetic or underscore]
375
- # "${any stuff}"
376
- #
377
- # The second expression compiled is used for splitting strings into tokens
378
- # to be processed, and it matches all of the tokens listed above, plus
379
- # the following that affect how arguments do or don't get joined together:
380
- #
381
- # " " [white space]
382
- # "non-white-space" [without any dollar signs]
383
- # "$" [single dollar sign]
384
- #
385
- _dollar_exps_str = r'\$[\$\(\)]|\$[_a-zA-Z][\.\w]*|\${[^}]*}'
386
- _dollar_exps = re.compile(r'(%s)' % _dollar_exps_str)
387
- _separate_args = re.compile(r'(%s|\s+|[^\s\$]+|\$)' % _dollar_exps_str)
388
-
389
- # This regular expression is used to replace strings of multiple white
390
- # space characters in the string result from the scons_subst() function.
391
- _space_sep = re.compile(r'[\t ]+(?![^{]*})')
392
-
393
- def scons_subst(strSubst, env, mode=SUBST_RAW, target=None, source=None, gvars={}, lvars={}, conv=None):
394
- """Expand a string or list containing construction variable
395
- substitutions.
396
-
397
- This is the work-horse function for substitutions in file names
398
- and the like. The companion scons_subst_list() function (below)
399
- handles separating command lines into lists of arguments, so see
400
- that function if that's what you're looking for.
401
- """
402
- if type(strSubst) == types.StringType and string.find(strSubst, '$') < 0:
403
- return strSubst
404
-
405
- class StringSubber:
406
- """A class to construct the results of a scons_subst() call.
407
-
408
- This binds a specific construction environment, mode, target and
409
- source with two methods (substitute() and expand()) that handle
410
- the expansion.
411
- """
412
- def __init__(self, env, mode, conv, gvars):
413
- self.env = env
414
- self.mode = mode
415
- self.conv = conv
416
- self.gvars = gvars
417
-
418
- def expand(self, s, lvars):
419
- """Expand a single "token" as necessary, returning an
420
- appropriate string containing the expansion.
421
-
422
- This handles expanding different types of things (strings,
423
- lists, callables) appropriately. It calls the wrapper
424
- substitute() method to re-expand things as necessary, so that
425
- the results of expansions of side-by-side strings still get
426
- re-evaluated separately, not smushed together.
427
- """
428
- if is_String(s):
429
- try:
430
- s0, s1 = s[:2]
431
- except (IndexError, ValueError):
432
- return s
433
- if s0 != '$':
434
- return s
435
- if s1 == '$':
436
- return '$'
437
- elif s1 in '()':
438
- return s
439
- else:
440
- key = s[1:]
441
- if key[0] == '{' or string.find(key, '.') >= 0:
442
- if key[0] == '{':
443
- key = key[1:-1]
444
- try:
445
- s = eval(key, self.gvars, lvars)
446
- except KeyboardInterrupt:
447
- raise
448
- except Exception, e:
449
- if e.__class__ in AllowableExceptions:
450
- return ''
451
- raise_exception(e, lvars['TARGETS'], s)
452
- else:
453
- if lvars.has_key(key):
454
- s = lvars[key]
455
- elif self.gvars.has_key(key):
456
- s = self.gvars[key]
457
- elif not NameError in AllowableExceptions:
458
- raise_exception(NameError(key), lvars['TARGETS'], s)
459
- else:
460
- return ''
461
-
462
- # Before re-expanding the result, handle
463
- # recursive expansion by copying the local
464
- # variable dictionary and overwriting a null
465
- # string for the value of the variable name
466
- # we just expanded.
467
- #
468
- # This could potentially be optimized by only
469
- # copying lvars when s contains more expansions,
470
- # but lvars is usually supposed to be pretty
471
- # small, and deeply nested variable expansions
472
- # are probably more the exception than the norm,
473
- # so it should be tolerable for now.
474
- lv = lvars.copy()
475
- var = string.split(key, '.')[0]
476
- lv[var] = ''
477
- return self.substitute(s, lv)
478
- elif is_Sequence(s):
479
- def func(l, conv=self.conv, substitute=self.substitute, lvars=lvars):
480
- return conv(substitute(l, lvars))
481
- return map(func, s)
482
- elif callable(s):
483
- try:
484
- s = s(target=lvars['TARGETS'],
485
- source=lvars['SOURCES'],
486
- env=self.env,
487
- for_signature=(self.mode != SUBST_CMD))
488
- except TypeError:
489
- # This probably indicates that it's a callable
490
- # object that doesn't match our calling arguments
491
- # (like an Action).
492
- if self.mode == SUBST_RAW:
493
- return s
494
- s = self.conv(s)
495
- return self.substitute(s, lvars)
496
- elif s is None:
497
- return ''
498
- else:
499
- return s
500
-
501
- def substitute(self, args, lvars):
502
- """Substitute expansions in an argument or list of arguments.
503
-
504
- This serves as a wrapper for splitting up a string into
505
- separate tokens.
506
- """
507
- if is_String(args) and not isinstance(args, CmdStringHolder):
508
- args = str(args) # In case it's a UserString.
509
- try:
510
- def sub_match(match, conv=self.conv, expand=self.expand, lvars=lvars):
511
- return conv(expand(match.group(1), lvars))
512
- result = _dollar_exps.sub(sub_match, args)
513
- except TypeError:
514
- # If the internal conversion routine doesn't return
515
- # strings (it could be overridden to return Nodes, for
516
- # example), then the 1.5.2 re module will throw this
517
- # exception. Back off to a slower, general-purpose
518
- # algorithm that works for all data types.
519
- args = _separate_args.findall(args)
520
- result = []
521
- for a in args:
522
- result.append(self.conv(self.expand(a, lvars)))
523
- if len(result) == 1:
524
- result = result[0]
525
- else:
526
- result = string.join(map(str, result), '')
527
- return result
528
- else:
529
- return self.expand(args, lvars)
530
-
531
- if conv is None:
532
- conv = _strconv[mode]
533
-
534
- # Doing this every time is a bit of a waste, since the Executor
535
- # has typically already populated the OverrideEnvironment with
536
- # $TARGET/$SOURCE variables. We're keeping this (for now), though,
537
- # because it supports existing behavior that allows us to call
538
- # an Action directly with an arbitrary target+source pair, which
539
- # we use in Tool/tex.py to handle calling $BIBTEX when necessary.
540
- # If we dropped that behavior (or found another way to cover it),
541
- # we could get rid of this call completely and just rely on the
542
- # Executor setting the variables.
543
- if not lvars.has_key('TARGET'):
544
- d = subst_dict(target, source)
545
- if d:
546
- lvars = lvars.copy()
547
- lvars.update(d)
548
-
549
- # We're (most likely) going to eval() things. If Python doesn't
550
- # find a __builtins__ value in the global dictionary used for eval(),
551
- # it copies the current global values for you. Avoid this by
552
- # setting it explicitly and then deleting, so we don't pollute the
553
- # construction environment Dictionary(ies) that are typically used
554
- # for expansion.
555
- gvars['__builtins__'] = __builtins__
556
-
557
- ss = StringSubber(env, mode, conv, gvars)
558
- result = ss.substitute(strSubst, lvars)
559
-
560
- try:
561
- del gvars['__builtins__']
562
- except KeyError:
563
- pass
564
-
565
- if is_String(result):
566
- # Remove $(-$) pairs and any stuff in between,
567
- # if that's appropriate.
568
- remove = _regex_remove[mode]
569
- if remove:
570
- result = remove.sub('', result)
571
- if mode != SUBST_RAW:
572
- # Compress strings of white space characters into
573
- # a single space.
574
- result = string.strip(_space_sep.sub(' ', result))
575
- elif is_Sequence(result):
576
- remove = _list_remove[mode]
577
- if remove:
578
- result = remove(result)
579
-
580
- return result
581
-
582
- #Subst_List_Strings = {}
583
-
584
- def scons_subst_list(strSubst, env, mode=SUBST_RAW, target=None, source=None, gvars={}, lvars={}, conv=None):
585
- """Substitute construction variables in a string (or list or other
586
- object) and separate the arguments into a command list.
587
-
588
- The companion scons_subst() function (above) handles basic
589
- substitutions within strings, so see that function instead
590
- if that's what you're looking for.
591
- """
592
- # try:
593
- # Subst_List_Strings[strSubst] = Subst_List_Strings[strSubst] + 1
594
- # except KeyError:
595
- # Subst_List_Strings[strSubst] = 1
596
- # import SCons.Debug
597
- # SCons.Debug.caller_trace(1)
598
- class ListSubber(UserList.UserList):
599
- """A class to construct the results of a scons_subst_list() call.
600
-
601
- Like StringSubber, this class binds a specific construction
602
- environment, mode, target and source with two methods
603
- (substitute() and expand()) that handle the expansion.
604
-
605
- In addition, however, this class is used to track the state of
606
- the result(s) we're gathering so we can do the appropriate thing
607
- whenever we have to append another word to the result--start a new
608
- line, start a new word, append to the current word, etc. We do
609
- this by setting the "append" attribute to the right method so
610
- that our wrapper methods only need ever call ListSubber.append(),
611
- and the rest of the object takes care of doing the right thing
612
- internally.
613
- """
614
- def __init__(self, env, mode, conv, gvars):
615
- UserList.UserList.__init__(self, [])
616
- self.env = env
617
- self.mode = mode
618
- self.conv = conv
619
- self.gvars = gvars
620
-
621
- if self.mode == SUBST_RAW:
622
- self.add_strip = lambda x, s=self: s.append(x)
623
- else:
624
- self.add_strip = lambda x, s=self: None
625
- self.in_strip = None
626
- self.next_line()
627
-
628
- def expand(self, s, lvars, within_list):
629
- """Expand a single "token" as necessary, appending the
630
- expansion to the current result.
631
-
632
- This handles expanding different types of things (strings,
633
- lists, callables) appropriately. It calls the wrapper
634
- substitute() method to re-expand things as necessary, so that
635
- the results of expansions of side-by-side strings still get
636
- re-evaluated separately, not smushed together.
637
- """
638
-
639
- if is_String(s):
640
- try:
641
- s0, s1 = s[:2]
642
- except (IndexError, ValueError):
643
- self.append(s)
644
- return
645
- if s0 != '$':
646
- self.append(s)
647
- return
648
- if s1 == '$':
649
- self.append('$')
650
- elif s1 == '(':
651
- self.open_strip('$(')
652
- elif s1 == ')':
653
- self.close_strip('$)')
654
- else:
655
- key = s[1:]
656
- if key[0] == '{' or string.find(key, '.') >= 0:
657
- if key[0] == '{':
658
- key = key[1:-1]
659
- try:
660
- s = eval(key, self.gvars, lvars)
661
- except KeyboardInterrupt:
662
- raise
663
- except Exception, e:
664
- if e.__class__ in AllowableExceptions:
665
- return
666
- raise_exception(e, lvars['TARGETS'], s)
667
- else:
668
- if lvars.has_key(key):
669
- s = lvars[key]
670
- elif self.gvars.has_key(key):
671
- s = self.gvars[key]
672
- elif not NameError in AllowableExceptions:
673
- raise_exception(NameError(), lvars['TARGETS'], s)
674
- else:
675
- return
676
-
677
- # Before re-expanding the result, handle
678
- # recursive expansion by copying the local
679
- # variable dictionary and overwriting a null
680
- # string for the value of the variable name
681
- # we just expanded.
682
- lv = lvars.copy()
683
- var = string.split(key, '.')[0]
684
- lv[var] = ''
685
- self.substitute(s, lv, 0)
686
- self.this_word()
687
- elif is_Sequence(s):
688
- for a in s:
689
- self.substitute(a, lvars, 1)
690
- self.next_word()
691
- elif callable(s):
692
- try:
693
- s = s(target=lvars['TARGETS'],
694
- source=lvars['SOURCES'],
695
- env=self.env,
696
- for_signature=(self.mode != SUBST_CMD))
697
- except TypeError:
698
- # This probably indicates that it's a callable
699
- # object that doesn't match our calling arguments
700
- # (like an Action).
701
- if self.mode == SUBST_RAW:
702
- self.append(s)
703
- return
704
- s = self.conv(s)
705
- self.substitute(s, lvars, within_list)
706
- elif s is None:
707
- self.this_word()
708
- else:
709
- self.append(s)
710
-
711
- def substitute(self, args, lvars, within_list):
712
- """Substitute expansions in an argument or list of arguments.
713
-
714
- This serves as a wrapper for splitting up a string into
715
- separate tokens.
716
- """
717
-
718
- if is_String(args) and not isinstance(args, CmdStringHolder):
719
- args = str(args) # In case it's a UserString.
720
- args = _separate_args.findall(args)
721
- for a in args:
722
- if a[0] in ' \t\n\r\f\v':
723
- if '\n' in a:
724
- self.next_line()
725
- elif within_list:
726
- self.append(a)
727
- else:
728
- self.next_word()
729
- else:
730
- self.expand(a, lvars, within_list)
731
- else:
732
- self.expand(args, lvars, within_list)
733
-
734
- def next_line(self):
735
- """Arrange for the next word to start a new line. This
736
- is like starting a new word, except that we have to append
737
- another line to the result."""
738
- UserList.UserList.append(self, [])
739
- self.next_word()
740
-
741
- def this_word(self):
742
- """Arrange for the next word to append to the end of the
743
- current last word in the result."""
744
- self.append = self.add_to_current_word
745
-
746
- def next_word(self):
747
- """Arrange for the next word to start a new word."""
748
- self.append = self.add_new_word
749
-
750
- def add_to_current_word(self, x):
751
- """Append the string x to the end of the current last word
752
- in the result. If that is not possible, then just add
753
- it as a new word. Make sure the entire concatenated string
754
- inherits the object attributes of x (in particular, the
755
- escape function) by wrapping it as CmdStringHolder."""
756
-
757
- if not self.in_strip or self.mode != SUBST_SIG:
758
- try:
759
- current_word = self[-1][-1]
760
- except IndexError:
761
- self.add_new_word(x)
762
- else:
763
- # All right, this is a hack and it should probably
764
- # be refactored out of existence in the future.
765
- # The issue is that we want to smoosh words together
766
- # and make one file name that gets escaped if
767
- # we're expanding something like foo$EXTENSION,
768
- # but we don't want to smoosh them together if
769
- # it's something like >$TARGET, because then we'll
770
- # treat the '>' like it's part of the file name.
771
- # So for now, just hard-code looking for the special
772
- # command-line redirection characters...
773
- try:
774
- last_char = str(current_word)[-1]
775
- except IndexError:
776
- last_char = '\0'
777
- if last_char in '<>|':
778
- self.add_new_word(x)
779
- else:
780
- y = current_word + x
781
-
782
- # We used to treat a word appended to a literal
783
- # as a literal itself, but this caused problems
784
- # with interpreting quotes around space-separated
785
- # targets on command lines. Removing this makes
786
- # none of the "substantive" end-to-end tests fail,
787
- # so we'll take this out but leave it commented
788
- # for now in case there's a problem not covered
789
- # by the test cases and we need to resurrect this.
790
- #literal1 = self.literal(self[-1][-1])
791
- #literal2 = self.literal(x)
792
- y = self.conv(y)
793
- if is_String(y):
794
- #y = CmdStringHolder(y, literal1 or literal2)
795
- y = CmdStringHolder(y, None)
796
- self[-1][-1] = y
797
-
798
- def add_new_word(self, x):
799
- if not self.in_strip or self.mode != SUBST_SIG:
800
- literal = self.literal(x)
801
- x = self.conv(x)
802
- if is_String(x):
803
- x = CmdStringHolder(x, literal)
804
- self[-1].append(x)
805
- self.append = self.add_to_current_word
806
-
807
- def literal(self, x):
808
- try:
809
- l = x.is_literal
810
- except AttributeError:
811
- return None
812
- else:
813
- return l()
814
-
815
- def open_strip(self, x):
816
- """Handle the "open strip" $( token."""
817
- self.add_strip(x)
818
- self.in_strip = 1
819
-
820
- def close_strip(self, x):
821
- """Handle the "close strip" $) token."""
822
- self.add_strip(x)
823
- self.in_strip = None
824
-
825
- if conv is None:
826
- conv = _strconv[mode]
827
-
828
- # Doing this every time is a bit of a waste, since the Executor
829
- # has typically already populated the OverrideEnvironment with
830
- # $TARGET/$SOURCE variables. We're keeping this (for now), though,
831
- # because it supports existing behavior that allows us to call
832
- # an Action directly with an arbitrary target+source pair, which
833
- # we use in Tool/tex.py to handle calling $BIBTEX when necessary.
834
- # If we dropped that behavior (or found another way to cover it),
835
- # we could get rid of this call completely and just rely on the
836
- # Executor setting the variables.
837
- if not lvars.has_key('TARGET'):
838
- d = subst_dict(target, source)
839
- if d:
840
- lvars = lvars.copy()
841
- lvars.update(d)
842
-
843
- # We're (most likely) going to eval() things. If Python doesn't
844
- # find a __builtins__ value in the global dictionary used for eval(),
845
- # it copies the current global values for you. Avoid this by
846
- # setting it explicitly and then deleting, so we don't pollute the
847
- # construction environment Dictionary(ies) that are typically used
848
- # for expansion.
849
- gvars['__builtins__'] = __builtins__
850
-
851
- ls = ListSubber(env, mode, conv, gvars)
852
- ls.substitute(strSubst, lvars, 0)
853
-
854
- try:
855
- del gvars['__builtins__']
856
- except KeyError:
857
- pass
858
-
859
- return ls.data
860
-
861
- def scons_subst_once(strSubst, env, key):
862
- """Perform single (non-recursive) substitution of a single
863
- construction variable keyword.
864
-
865
- This is used when setting a variable when copying or overriding values
866
- in an Environment. We want to capture (expand) the old value before
867
- we override it, so people can do things like:
868
-
869
- env2 = env.Clone(CCFLAGS = '$CCFLAGS -g')
870
-
871
- We do this with some straightforward, brute-force code here...
872
- """
873
- if type(strSubst) == types.StringType and string.find(strSubst, '$') < 0:
874
- return strSubst
875
-
876
- matchlist = ['$' + key, '${' + key + '}']
877
- val = env.get(key, '')
878
- def sub_match(match, val=val, matchlist=matchlist):
879
- a = match.group(1)
880
- if a in matchlist:
881
- a = val
882
- if is_Sequence(a):
883
- return string.join(map(str, a))
884
- else:
885
- return str(a)
886
-
887
- if is_Sequence(strSubst):
888
- result = []
889
- for arg in strSubst:
890
- if is_String(arg):
891
- if arg in matchlist:
892
- arg = val
893
- if is_Sequence(arg):
894
- result.extend(arg)
895
- else:
896
- result.append(arg)
897
- else:
898
- result.append(_dollar_exps.sub(sub_match, arg))
899
- else:
900
- result.append(arg)
901
- return result
902
- elif is_String(strSubst):
903
- return _dollar_exps.sub(sub_match, strSubst)
904
- else:
905
- return strSubst
906
-
907
- # Local Variables:
908
- # tab-width:4
909
- # indent-tabs-mode:nil
910
- # End:
911
- # vim: set expandtab tabstop=4 shiftwidth=4: