libv8-sgonyea 3.3.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (500) hide show
  1. data/.gitignore +8 -0
  2. data/.gitmodules +3 -0
  3. data/Gemfile +4 -0
  4. data/README.md +76 -0
  5. data/Rakefile +113 -0
  6. data/ext/libv8/extconf.rb +28 -0
  7. data/lib/libv8.rb +15 -0
  8. data/lib/libv8/Makefile +30 -0
  9. data/lib/libv8/detect_cpu.rb +27 -0
  10. data/lib/libv8/fpic-on-linux-amd64.patch +13 -0
  11. data/lib/libv8/v8/.gitignore +35 -0
  12. data/lib/libv8/v8/AUTHORS +44 -0
  13. data/lib/libv8/v8/ChangeLog +2839 -0
  14. data/lib/libv8/v8/LICENSE +52 -0
  15. data/lib/libv8/v8/LICENSE.strongtalk +29 -0
  16. data/lib/libv8/v8/LICENSE.v8 +26 -0
  17. data/lib/libv8/v8/LICENSE.valgrind +45 -0
  18. data/lib/libv8/v8/SConstruct +1478 -0
  19. data/lib/libv8/v8/build/README.txt +49 -0
  20. data/lib/libv8/v8/build/all.gyp +18 -0
  21. data/lib/libv8/v8/build/armu.gypi +32 -0
  22. data/lib/libv8/v8/build/common.gypi +144 -0
  23. data/lib/libv8/v8/build/gyp_v8 +145 -0
  24. data/lib/libv8/v8/include/v8-debug.h +395 -0
  25. data/lib/libv8/v8/include/v8-preparser.h +117 -0
  26. data/lib/libv8/v8/include/v8-profiler.h +505 -0
  27. data/lib/libv8/v8/include/v8-testing.h +104 -0
  28. data/lib/libv8/v8/include/v8.h +4124 -0
  29. data/lib/libv8/v8/include/v8stdint.h +53 -0
  30. data/lib/libv8/v8/preparser/SConscript +38 -0
  31. data/lib/libv8/v8/preparser/preparser-process.cc +379 -0
  32. data/lib/libv8/v8/src/SConscript +368 -0
  33. data/lib/libv8/v8/src/accessors.cc +767 -0
  34. data/lib/libv8/v8/src/accessors.h +123 -0
  35. data/lib/libv8/v8/src/allocation-inl.h +49 -0
  36. data/lib/libv8/v8/src/allocation.cc +122 -0
  37. data/lib/libv8/v8/src/allocation.h +143 -0
  38. data/lib/libv8/v8/src/api.cc +5845 -0
  39. data/lib/libv8/v8/src/api.h +574 -0
  40. data/lib/libv8/v8/src/apinatives.js +110 -0
  41. data/lib/libv8/v8/src/apiutils.h +73 -0
  42. data/lib/libv8/v8/src/arguments.h +118 -0
  43. data/lib/libv8/v8/src/arm/assembler-arm-inl.h +353 -0
  44. data/lib/libv8/v8/src/arm/assembler-arm.cc +2661 -0
  45. data/lib/libv8/v8/src/arm/assembler-arm.h +1375 -0
  46. data/lib/libv8/v8/src/arm/builtins-arm.cc +1658 -0
  47. data/lib/libv8/v8/src/arm/code-stubs-arm.cc +6398 -0
  48. data/lib/libv8/v8/src/arm/code-stubs-arm.h +673 -0
  49. data/lib/libv8/v8/src/arm/codegen-arm.cc +52 -0
  50. data/lib/libv8/v8/src/arm/codegen-arm.h +91 -0
  51. data/lib/libv8/v8/src/arm/constants-arm.cc +152 -0
  52. data/lib/libv8/v8/src/arm/constants-arm.h +775 -0
  53. data/lib/libv8/v8/src/arm/cpu-arm.cc +120 -0
  54. data/lib/libv8/v8/src/arm/debug-arm.cc +317 -0
  55. data/lib/libv8/v8/src/arm/deoptimizer-arm.cc +754 -0
  56. data/lib/libv8/v8/src/arm/disasm-arm.cc +1506 -0
  57. data/lib/libv8/v8/src/arm/frames-arm.cc +45 -0
  58. data/lib/libv8/v8/src/arm/frames-arm.h +168 -0
  59. data/lib/libv8/v8/src/arm/full-codegen-arm.cc +4375 -0
  60. data/lib/libv8/v8/src/arm/ic-arm.cc +1562 -0
  61. data/lib/libv8/v8/src/arm/lithium-arm.cc +2206 -0
  62. data/lib/libv8/v8/src/arm/lithium-arm.h +2348 -0
  63. data/lib/libv8/v8/src/arm/lithium-codegen-arm.cc +4526 -0
  64. data/lib/libv8/v8/src/arm/lithium-codegen-arm.h +403 -0
  65. data/lib/libv8/v8/src/arm/lithium-gap-resolver-arm.cc +305 -0
  66. data/lib/libv8/v8/src/arm/lithium-gap-resolver-arm.h +84 -0
  67. data/lib/libv8/v8/src/arm/macro-assembler-arm.cc +3163 -0
  68. data/lib/libv8/v8/src/arm/macro-assembler-arm.h +1126 -0
  69. data/lib/libv8/v8/src/arm/regexp-macro-assembler-arm.cc +1287 -0
  70. data/lib/libv8/v8/src/arm/regexp-macro-assembler-arm.h +253 -0
  71. data/lib/libv8/v8/src/arm/simulator-arm.cc +3424 -0
  72. data/lib/libv8/v8/src/arm/simulator-arm.h +431 -0
  73. data/lib/libv8/v8/src/arm/stub-cache-arm.cc +4243 -0
  74. data/lib/libv8/v8/src/array.js +1366 -0
  75. data/lib/libv8/v8/src/assembler.cc +1207 -0
  76. data/lib/libv8/v8/src/assembler.h +858 -0
  77. data/lib/libv8/v8/src/ast-inl.h +112 -0
  78. data/lib/libv8/v8/src/ast.cc +1146 -0
  79. data/lib/libv8/v8/src/ast.h +2188 -0
  80. data/lib/libv8/v8/src/atomicops.h +167 -0
  81. data/lib/libv8/v8/src/atomicops_internals_arm_gcc.h +145 -0
  82. data/lib/libv8/v8/src/atomicops_internals_mips_gcc.h +169 -0
  83. data/lib/libv8/v8/src/atomicops_internals_x86_gcc.cc +133 -0
  84. data/lib/libv8/v8/src/atomicops_internals_x86_gcc.h +287 -0
  85. data/lib/libv8/v8/src/atomicops_internals_x86_macosx.h +301 -0
  86. data/lib/libv8/v8/src/atomicops_internals_x86_msvc.h +203 -0
  87. data/lib/libv8/v8/src/bignum-dtoa.cc +655 -0
  88. data/lib/libv8/v8/src/bignum-dtoa.h +81 -0
  89. data/lib/libv8/v8/src/bignum.cc +768 -0
  90. data/lib/libv8/v8/src/bignum.h +140 -0
  91. data/lib/libv8/v8/src/bootstrapper.cc +2184 -0
  92. data/lib/libv8/v8/src/bootstrapper.h +188 -0
  93. data/lib/libv8/v8/src/builtins.cc +1707 -0
  94. data/lib/libv8/v8/src/builtins.h +371 -0
  95. data/lib/libv8/v8/src/bytecodes-irregexp.h +105 -0
  96. data/lib/libv8/v8/src/cached-powers.cc +177 -0
  97. data/lib/libv8/v8/src/cached-powers.h +65 -0
  98. data/lib/libv8/v8/src/char-predicates-inl.h +94 -0
  99. data/lib/libv8/v8/src/char-predicates.h +67 -0
  100. data/lib/libv8/v8/src/checks.cc +110 -0
  101. data/lib/libv8/v8/src/checks.h +296 -0
  102. data/lib/libv8/v8/src/circular-queue-inl.h +53 -0
  103. data/lib/libv8/v8/src/circular-queue.cc +122 -0
  104. data/lib/libv8/v8/src/circular-queue.h +103 -0
  105. data/lib/libv8/v8/src/code-stubs.cc +267 -0
  106. data/lib/libv8/v8/src/code-stubs.h +1011 -0
  107. data/lib/libv8/v8/src/code.h +70 -0
  108. data/lib/libv8/v8/src/codegen.cc +231 -0
  109. data/lib/libv8/v8/src/codegen.h +84 -0
  110. data/lib/libv8/v8/src/compilation-cache.cc +540 -0
  111. data/lib/libv8/v8/src/compilation-cache.h +287 -0
  112. data/lib/libv8/v8/src/compiler.cc +786 -0
  113. data/lib/libv8/v8/src/compiler.h +312 -0
  114. data/lib/libv8/v8/src/contexts.cc +347 -0
  115. data/lib/libv8/v8/src/contexts.h +391 -0
  116. data/lib/libv8/v8/src/conversions-inl.h +106 -0
  117. data/lib/libv8/v8/src/conversions.cc +1131 -0
  118. data/lib/libv8/v8/src/conversions.h +135 -0
  119. data/lib/libv8/v8/src/counters.cc +93 -0
  120. data/lib/libv8/v8/src/counters.h +254 -0
  121. data/lib/libv8/v8/src/cpu-profiler-inl.h +101 -0
  122. data/lib/libv8/v8/src/cpu-profiler.cc +609 -0
  123. data/lib/libv8/v8/src/cpu-profiler.h +302 -0
  124. data/lib/libv8/v8/src/cpu.h +69 -0
  125. data/lib/libv8/v8/src/d8-debug.cc +367 -0
  126. data/lib/libv8/v8/src/d8-debug.h +158 -0
  127. data/lib/libv8/v8/src/d8-posix.cc +695 -0
  128. data/lib/libv8/v8/src/d8-readline.cc +130 -0
  129. data/lib/libv8/v8/src/d8-windows.cc +42 -0
  130. data/lib/libv8/v8/src/d8.cc +803 -0
  131. data/lib/libv8/v8/src/d8.gyp +91 -0
  132. data/lib/libv8/v8/src/d8.h +235 -0
  133. data/lib/libv8/v8/src/d8.js +2798 -0
  134. data/lib/libv8/v8/src/data-flow.cc +66 -0
  135. data/lib/libv8/v8/src/data-flow.h +205 -0
  136. data/lib/libv8/v8/src/date.js +1103 -0
  137. data/lib/libv8/v8/src/dateparser-inl.h +127 -0
  138. data/lib/libv8/v8/src/dateparser.cc +178 -0
  139. data/lib/libv8/v8/src/dateparser.h +266 -0
  140. data/lib/libv8/v8/src/debug-agent.cc +447 -0
  141. data/lib/libv8/v8/src/debug-agent.h +129 -0
  142. data/lib/libv8/v8/src/debug-debugger.js +2569 -0
  143. data/lib/libv8/v8/src/debug.cc +3165 -0
  144. data/lib/libv8/v8/src/debug.h +1057 -0
  145. data/lib/libv8/v8/src/deoptimizer.cc +1256 -0
  146. data/lib/libv8/v8/src/deoptimizer.h +602 -0
  147. data/lib/libv8/v8/src/disasm.h +80 -0
  148. data/lib/libv8/v8/src/disassembler.cc +343 -0
  149. data/lib/libv8/v8/src/disassembler.h +58 -0
  150. data/lib/libv8/v8/src/diy-fp.cc +58 -0
  151. data/lib/libv8/v8/src/diy-fp.h +117 -0
  152. data/lib/libv8/v8/src/double.h +238 -0
  153. data/lib/libv8/v8/src/dtoa.cc +103 -0
  154. data/lib/libv8/v8/src/dtoa.h +85 -0
  155. data/lib/libv8/v8/src/execution.cc +849 -0
  156. data/lib/libv8/v8/src/execution.h +297 -0
  157. data/lib/libv8/v8/src/extensions/experimental/break-iterator.cc +250 -0
  158. data/lib/libv8/v8/src/extensions/experimental/break-iterator.h +89 -0
  159. data/lib/libv8/v8/src/extensions/experimental/collator.cc +218 -0
  160. data/lib/libv8/v8/src/extensions/experimental/collator.h +69 -0
  161. data/lib/libv8/v8/src/extensions/experimental/experimental.gyp +94 -0
  162. data/lib/libv8/v8/src/extensions/experimental/i18n-extension.cc +78 -0
  163. data/lib/libv8/v8/src/extensions/experimental/i18n-extension.h +54 -0
  164. data/lib/libv8/v8/src/extensions/experimental/i18n-locale.cc +112 -0
  165. data/lib/libv8/v8/src/extensions/experimental/i18n-locale.h +60 -0
  166. data/lib/libv8/v8/src/extensions/experimental/i18n-utils.cc +43 -0
  167. data/lib/libv8/v8/src/extensions/experimental/i18n-utils.h +49 -0
  168. data/lib/libv8/v8/src/extensions/experimental/i18n.js +180 -0
  169. data/lib/libv8/v8/src/extensions/experimental/language-matcher.cc +251 -0
  170. data/lib/libv8/v8/src/extensions/experimental/language-matcher.h +95 -0
  171. data/lib/libv8/v8/src/extensions/externalize-string-extension.cc +141 -0
  172. data/lib/libv8/v8/src/extensions/externalize-string-extension.h +50 -0
  173. data/lib/libv8/v8/src/extensions/gc-extension.cc +58 -0
  174. data/lib/libv8/v8/src/extensions/gc-extension.h +49 -0
  175. data/lib/libv8/v8/src/factory.cc +1222 -0
  176. data/lib/libv8/v8/src/factory.h +442 -0
  177. data/lib/libv8/v8/src/fast-dtoa.cc +736 -0
  178. data/lib/libv8/v8/src/fast-dtoa.h +83 -0
  179. data/lib/libv8/v8/src/fixed-dtoa.cc +405 -0
  180. data/lib/libv8/v8/src/fixed-dtoa.h +55 -0
  181. data/lib/libv8/v8/src/flag-definitions.h +560 -0
  182. data/lib/libv8/v8/src/flags.cc +551 -0
  183. data/lib/libv8/v8/src/flags.h +79 -0
  184. data/lib/libv8/v8/src/frames-inl.h +247 -0
  185. data/lib/libv8/v8/src/frames.cc +1243 -0
  186. data/lib/libv8/v8/src/frames.h +870 -0
  187. data/lib/libv8/v8/src/full-codegen.cc +1374 -0
  188. data/lib/libv8/v8/src/full-codegen.h +771 -0
  189. data/lib/libv8/v8/src/func-name-inferrer.cc +92 -0
  190. data/lib/libv8/v8/src/func-name-inferrer.h +111 -0
  191. data/lib/libv8/v8/src/gdb-jit.cc +1555 -0
  192. data/lib/libv8/v8/src/gdb-jit.h +143 -0
  193. data/lib/libv8/v8/src/global-handles.cc +665 -0
  194. data/lib/libv8/v8/src/global-handles.h +284 -0
  195. data/lib/libv8/v8/src/globals.h +325 -0
  196. data/lib/libv8/v8/src/handles-inl.h +177 -0
  197. data/lib/libv8/v8/src/handles.cc +987 -0
  198. data/lib/libv8/v8/src/handles.h +382 -0
  199. data/lib/libv8/v8/src/hashmap.cc +230 -0
  200. data/lib/libv8/v8/src/hashmap.h +123 -0
  201. data/lib/libv8/v8/src/heap-inl.h +704 -0
  202. data/lib/libv8/v8/src/heap-profiler.cc +1173 -0
  203. data/lib/libv8/v8/src/heap-profiler.h +397 -0
  204. data/lib/libv8/v8/src/heap.cc +5930 -0
  205. data/lib/libv8/v8/src/heap.h +2268 -0
  206. data/lib/libv8/v8/src/hydrogen-instructions.cc +1769 -0
  207. data/lib/libv8/v8/src/hydrogen-instructions.h +3971 -0
  208. data/lib/libv8/v8/src/hydrogen.cc +6239 -0
  209. data/lib/libv8/v8/src/hydrogen.h +1202 -0
  210. data/lib/libv8/v8/src/ia32/assembler-ia32-inl.h +446 -0
  211. data/lib/libv8/v8/src/ia32/assembler-ia32.cc +2487 -0
  212. data/lib/libv8/v8/src/ia32/assembler-ia32.h +1144 -0
  213. data/lib/libv8/v8/src/ia32/builtins-ia32.cc +1621 -0
  214. data/lib/libv8/v8/src/ia32/code-stubs-ia32.cc +6198 -0
  215. data/lib/libv8/v8/src/ia32/code-stubs-ia32.h +517 -0
  216. data/lib/libv8/v8/src/ia32/codegen-ia32.cc +265 -0
  217. data/lib/libv8/v8/src/ia32/codegen-ia32.h +79 -0
  218. data/lib/libv8/v8/src/ia32/cpu-ia32.cc +88 -0
  219. data/lib/libv8/v8/src/ia32/debug-ia32.cc +312 -0
  220. data/lib/libv8/v8/src/ia32/deoptimizer-ia32.cc +774 -0
  221. data/lib/libv8/v8/src/ia32/disasm-ia32.cc +1628 -0
  222. data/lib/libv8/v8/src/ia32/frames-ia32.cc +45 -0
  223. data/lib/libv8/v8/src/ia32/frames-ia32.h +142 -0
  224. data/lib/libv8/v8/src/ia32/full-codegen-ia32.cc +4338 -0
  225. data/lib/libv8/v8/src/ia32/ic-ia32.cc +1597 -0
  226. data/lib/libv8/v8/src/ia32/lithium-codegen-ia32.cc +4461 -0
  227. data/lib/libv8/v8/src/ia32/lithium-codegen-ia32.h +375 -0
  228. data/lib/libv8/v8/src/ia32/lithium-gap-resolver-ia32.cc +475 -0
  229. data/lib/libv8/v8/src/ia32/lithium-gap-resolver-ia32.h +110 -0
  230. data/lib/libv8/v8/src/ia32/lithium-ia32.cc +2261 -0
  231. data/lib/libv8/v8/src/ia32/lithium-ia32.h +2396 -0
  232. data/lib/libv8/v8/src/ia32/macro-assembler-ia32.cc +2136 -0
  233. data/lib/libv8/v8/src/ia32/macro-assembler-ia32.h +775 -0
  234. data/lib/libv8/v8/src/ia32/regexp-macro-assembler-ia32.cc +1263 -0
  235. data/lib/libv8/v8/src/ia32/regexp-macro-assembler-ia32.h +216 -0
  236. data/lib/libv8/v8/src/ia32/simulator-ia32.cc +30 -0
  237. data/lib/libv8/v8/src/ia32/simulator-ia32.h +74 -0
  238. data/lib/libv8/v8/src/ia32/stub-cache-ia32.cc +3847 -0
  239. data/lib/libv8/v8/src/ic-inl.h +130 -0
  240. data/lib/libv8/v8/src/ic.cc +2577 -0
  241. data/lib/libv8/v8/src/ic.h +736 -0
  242. data/lib/libv8/v8/src/inspector.cc +63 -0
  243. data/lib/libv8/v8/src/inspector.h +62 -0
  244. data/lib/libv8/v8/src/interpreter-irregexp.cc +659 -0
  245. data/lib/libv8/v8/src/interpreter-irregexp.h +49 -0
  246. data/lib/libv8/v8/src/isolate-inl.h +50 -0
  247. data/lib/libv8/v8/src/isolate.cc +1869 -0
  248. data/lib/libv8/v8/src/isolate.h +1382 -0
  249. data/lib/libv8/v8/src/json-parser.cc +504 -0
  250. data/lib/libv8/v8/src/json-parser.h +161 -0
  251. data/lib/libv8/v8/src/json.js +342 -0
  252. data/lib/libv8/v8/src/jsregexp.cc +5385 -0
  253. data/lib/libv8/v8/src/jsregexp.h +1492 -0
  254. data/lib/libv8/v8/src/list-inl.h +212 -0
  255. data/lib/libv8/v8/src/list.h +174 -0
  256. data/lib/libv8/v8/src/lithium-allocator-inl.h +142 -0
  257. data/lib/libv8/v8/src/lithium-allocator.cc +2123 -0
  258. data/lib/libv8/v8/src/lithium-allocator.h +630 -0
  259. data/lib/libv8/v8/src/lithium.cc +190 -0
  260. data/lib/libv8/v8/src/lithium.h +597 -0
  261. data/lib/libv8/v8/src/liveedit-debugger.js +1082 -0
  262. data/lib/libv8/v8/src/liveedit.cc +1691 -0
  263. data/lib/libv8/v8/src/liveedit.h +180 -0
  264. data/lib/libv8/v8/src/liveobjectlist-inl.h +126 -0
  265. data/lib/libv8/v8/src/liveobjectlist.cc +2589 -0
  266. data/lib/libv8/v8/src/liveobjectlist.h +322 -0
  267. data/lib/libv8/v8/src/log-inl.h +59 -0
  268. data/lib/libv8/v8/src/log-utils.cc +428 -0
  269. data/lib/libv8/v8/src/log-utils.h +231 -0
  270. data/lib/libv8/v8/src/log.cc +1993 -0
  271. data/lib/libv8/v8/src/log.h +476 -0
  272. data/lib/libv8/v8/src/macro-assembler.h +120 -0
  273. data/lib/libv8/v8/src/macros.py +178 -0
  274. data/lib/libv8/v8/src/mark-compact.cc +3143 -0
  275. data/lib/libv8/v8/src/mark-compact.h +506 -0
  276. data/lib/libv8/v8/src/math.js +264 -0
  277. data/lib/libv8/v8/src/messages.cc +179 -0
  278. data/lib/libv8/v8/src/messages.h +113 -0
  279. data/lib/libv8/v8/src/messages.js +1096 -0
  280. data/lib/libv8/v8/src/mips/assembler-mips-inl.h +312 -0
  281. data/lib/libv8/v8/src/mips/assembler-mips.cc +1960 -0
  282. data/lib/libv8/v8/src/mips/assembler-mips.h +1138 -0
  283. data/lib/libv8/v8/src/mips/builtins-mips.cc +1628 -0
  284. data/lib/libv8/v8/src/mips/code-stubs-mips.cc +6656 -0
  285. data/lib/libv8/v8/src/mips/code-stubs-mips.h +682 -0
  286. data/lib/libv8/v8/src/mips/codegen-mips.cc +52 -0
  287. data/lib/libv8/v8/src/mips/codegen-mips.h +98 -0
  288. data/lib/libv8/v8/src/mips/constants-mips.cc +352 -0
  289. data/lib/libv8/v8/src/mips/constants-mips.h +739 -0
  290. data/lib/libv8/v8/src/mips/cpu-mips.cc +96 -0
  291. data/lib/libv8/v8/src/mips/debug-mips.cc +308 -0
  292. data/lib/libv8/v8/src/mips/deoptimizer-mips.cc +91 -0
  293. data/lib/libv8/v8/src/mips/disasm-mips.cc +1050 -0
  294. data/lib/libv8/v8/src/mips/frames-mips.cc +47 -0
  295. data/lib/libv8/v8/src/mips/frames-mips.h +219 -0
  296. data/lib/libv8/v8/src/mips/full-codegen-mips.cc +4388 -0
  297. data/lib/libv8/v8/src/mips/ic-mips.cc +1580 -0
  298. data/lib/libv8/v8/src/mips/lithium-codegen-mips.h +65 -0
  299. data/lib/libv8/v8/src/mips/lithium-mips.h +307 -0
  300. data/lib/libv8/v8/src/mips/macro-assembler-mips.cc +4056 -0
  301. data/lib/libv8/v8/src/mips/macro-assembler-mips.h +1214 -0
  302. data/lib/libv8/v8/src/mips/regexp-macro-assembler-mips.cc +1251 -0
  303. data/lib/libv8/v8/src/mips/regexp-macro-assembler-mips.h +252 -0
  304. data/lib/libv8/v8/src/mips/simulator-mips.cc +2621 -0
  305. data/lib/libv8/v8/src/mips/simulator-mips.h +401 -0
  306. data/lib/libv8/v8/src/mips/stub-cache-mips.cc +4285 -0
  307. data/lib/libv8/v8/src/mirror-debugger.js +2382 -0
  308. data/lib/libv8/v8/src/mksnapshot.cc +328 -0
  309. data/lib/libv8/v8/src/natives.h +64 -0
  310. data/lib/libv8/v8/src/objects-debug.cc +738 -0
  311. data/lib/libv8/v8/src/objects-inl.h +4323 -0
  312. data/lib/libv8/v8/src/objects-printer.cc +829 -0
  313. data/lib/libv8/v8/src/objects-visiting.cc +148 -0
  314. data/lib/libv8/v8/src/objects-visiting.h +424 -0
  315. data/lib/libv8/v8/src/objects.cc +10585 -0
  316. data/lib/libv8/v8/src/objects.h +6838 -0
  317. data/lib/libv8/v8/src/parser.cc +4997 -0
  318. data/lib/libv8/v8/src/parser.h +765 -0
  319. data/lib/libv8/v8/src/platform-cygwin.cc +779 -0
  320. data/lib/libv8/v8/src/platform-freebsd.cc +826 -0
  321. data/lib/libv8/v8/src/platform-linux.cc +1149 -0
  322. data/lib/libv8/v8/src/platform-macos.cc +830 -0
  323. data/lib/libv8/v8/src/platform-nullos.cc +479 -0
  324. data/lib/libv8/v8/src/platform-openbsd.cc +640 -0
  325. data/lib/libv8/v8/src/platform-posix.cc +424 -0
  326. data/lib/libv8/v8/src/platform-solaris.cc +762 -0
  327. data/lib/libv8/v8/src/platform-tls-mac.h +62 -0
  328. data/lib/libv8/v8/src/platform-tls-win32.h +62 -0
  329. data/lib/libv8/v8/src/platform-tls.h +50 -0
  330. data/lib/libv8/v8/src/platform-win32.cc +2021 -0
  331. data/lib/libv8/v8/src/platform.h +667 -0
  332. data/lib/libv8/v8/src/preparse-data-format.h +62 -0
  333. data/lib/libv8/v8/src/preparse-data.cc +183 -0
  334. data/lib/libv8/v8/src/preparse-data.h +225 -0
  335. data/lib/libv8/v8/src/preparser-api.cc +220 -0
  336. data/lib/libv8/v8/src/preparser.cc +1450 -0
  337. data/lib/libv8/v8/src/preparser.h +493 -0
  338. data/lib/libv8/v8/src/prettyprinter.cc +1493 -0
  339. data/lib/libv8/v8/src/prettyprinter.h +223 -0
  340. data/lib/libv8/v8/src/profile-generator-inl.h +128 -0
  341. data/lib/libv8/v8/src/profile-generator.cc +3098 -0
  342. data/lib/libv8/v8/src/profile-generator.h +1126 -0
  343. data/lib/libv8/v8/src/property.cc +105 -0
  344. data/lib/libv8/v8/src/property.h +365 -0
  345. data/lib/libv8/v8/src/proxy.js +83 -0
  346. data/lib/libv8/v8/src/regexp-macro-assembler-irregexp-inl.h +78 -0
  347. data/lib/libv8/v8/src/regexp-macro-assembler-irregexp.cc +471 -0
  348. data/lib/libv8/v8/src/regexp-macro-assembler-irregexp.h +142 -0
  349. data/lib/libv8/v8/src/regexp-macro-assembler-tracer.cc +373 -0
  350. data/lib/libv8/v8/src/regexp-macro-assembler-tracer.h +104 -0
  351. data/lib/libv8/v8/src/regexp-macro-assembler.cc +267 -0
  352. data/lib/libv8/v8/src/regexp-macro-assembler.h +243 -0
  353. data/lib/libv8/v8/src/regexp-stack.cc +111 -0
  354. data/lib/libv8/v8/src/regexp-stack.h +147 -0
  355. data/lib/libv8/v8/src/regexp.js +483 -0
  356. data/lib/libv8/v8/src/rewriter.cc +360 -0
  357. data/lib/libv8/v8/src/rewriter.h +50 -0
  358. data/lib/libv8/v8/src/runtime-profiler.cc +489 -0
  359. data/lib/libv8/v8/src/runtime-profiler.h +201 -0
  360. data/lib/libv8/v8/src/runtime.cc +12227 -0
  361. data/lib/libv8/v8/src/runtime.h +652 -0
  362. data/lib/libv8/v8/src/runtime.js +649 -0
  363. data/lib/libv8/v8/src/safepoint-table.cc +256 -0
  364. data/lib/libv8/v8/src/safepoint-table.h +270 -0
  365. data/lib/libv8/v8/src/scanner-base.cc +952 -0
  366. data/lib/libv8/v8/src/scanner-base.h +670 -0
  367. data/lib/libv8/v8/src/scanner.cc +345 -0
  368. data/lib/libv8/v8/src/scanner.h +146 -0
  369. data/lib/libv8/v8/src/scopeinfo.cc +646 -0
  370. data/lib/libv8/v8/src/scopeinfo.h +254 -0
  371. data/lib/libv8/v8/src/scopes.cc +1150 -0
  372. data/lib/libv8/v8/src/scopes.h +507 -0
  373. data/lib/libv8/v8/src/serialize.cc +1574 -0
  374. data/lib/libv8/v8/src/serialize.h +589 -0
  375. data/lib/libv8/v8/src/shell.h +55 -0
  376. data/lib/libv8/v8/src/simulator.h +43 -0
  377. data/lib/libv8/v8/src/small-pointer-list.h +163 -0
  378. data/lib/libv8/v8/src/smart-pointer.h +109 -0
  379. data/lib/libv8/v8/src/snapshot-common.cc +83 -0
  380. data/lib/libv8/v8/src/snapshot-empty.cc +54 -0
  381. data/lib/libv8/v8/src/snapshot.h +91 -0
  382. data/lib/libv8/v8/src/spaces-inl.h +529 -0
  383. data/lib/libv8/v8/src/spaces.cc +3145 -0
  384. data/lib/libv8/v8/src/spaces.h +2369 -0
  385. data/lib/libv8/v8/src/splay-tree-inl.h +310 -0
  386. data/lib/libv8/v8/src/splay-tree.h +205 -0
  387. data/lib/libv8/v8/src/string-search.cc +41 -0
  388. data/lib/libv8/v8/src/string-search.h +568 -0
  389. data/lib/libv8/v8/src/string-stream.cc +592 -0
  390. data/lib/libv8/v8/src/string-stream.h +191 -0
  391. data/lib/libv8/v8/src/string.js +994 -0
  392. data/lib/libv8/v8/src/strtod.cc +440 -0
  393. data/lib/libv8/v8/src/strtod.h +40 -0
  394. data/lib/libv8/v8/src/stub-cache.cc +1965 -0
  395. data/lib/libv8/v8/src/stub-cache.h +924 -0
  396. data/lib/libv8/v8/src/third_party/valgrind/valgrind.h +3925 -0
  397. data/lib/libv8/v8/src/token.cc +63 -0
  398. data/lib/libv8/v8/src/token.h +288 -0
  399. data/lib/libv8/v8/src/type-info.cc +507 -0
  400. data/lib/libv8/v8/src/type-info.h +272 -0
  401. data/lib/libv8/v8/src/unbound-queue-inl.h +95 -0
  402. data/lib/libv8/v8/src/unbound-queue.h +69 -0
  403. data/lib/libv8/v8/src/unicode-inl.h +238 -0
  404. data/lib/libv8/v8/src/unicode.cc +1624 -0
  405. data/lib/libv8/v8/src/unicode.h +280 -0
  406. data/lib/libv8/v8/src/uri.js +408 -0
  407. data/lib/libv8/v8/src/utils-inl.h +48 -0
  408. data/lib/libv8/v8/src/utils.cc +371 -0
  409. data/lib/libv8/v8/src/utils.h +800 -0
  410. data/lib/libv8/v8/src/v8-counters.cc +62 -0
  411. data/lib/libv8/v8/src/v8-counters.h +314 -0
  412. data/lib/libv8/v8/src/v8.cc +213 -0
  413. data/lib/libv8/v8/src/v8.h +131 -0
  414. data/lib/libv8/v8/src/v8checks.h +64 -0
  415. data/lib/libv8/v8/src/v8dll-main.cc +44 -0
  416. data/lib/libv8/v8/src/v8globals.h +512 -0
  417. data/lib/libv8/v8/src/v8memory.h +82 -0
  418. data/lib/libv8/v8/src/v8natives.js +1310 -0
  419. data/lib/libv8/v8/src/v8preparserdll-main.cc +39 -0
  420. data/lib/libv8/v8/src/v8threads.cc +464 -0
  421. data/lib/libv8/v8/src/v8threads.h +165 -0
  422. data/lib/libv8/v8/src/v8utils.h +319 -0
  423. data/lib/libv8/v8/src/variables.cc +114 -0
  424. data/lib/libv8/v8/src/variables.h +167 -0
  425. data/lib/libv8/v8/src/version.cc +116 -0
  426. data/lib/libv8/v8/src/version.h +68 -0
  427. data/lib/libv8/v8/src/vm-state-inl.h +138 -0
  428. data/lib/libv8/v8/src/vm-state.h +71 -0
  429. data/lib/libv8/v8/src/win32-headers.h +96 -0
  430. data/lib/libv8/v8/src/x64/assembler-x64-inl.h +462 -0
  431. data/lib/libv8/v8/src/x64/assembler-x64.cc +3027 -0
  432. data/lib/libv8/v8/src/x64/assembler-x64.h +1633 -0
  433. data/lib/libv8/v8/src/x64/builtins-x64.cc +1520 -0
  434. data/lib/libv8/v8/src/x64/code-stubs-x64.cc +5132 -0
  435. data/lib/libv8/v8/src/x64/code-stubs-x64.h +514 -0
  436. data/lib/libv8/v8/src/x64/codegen-x64.cc +146 -0
  437. data/lib/libv8/v8/src/x64/codegen-x64.h +76 -0
  438. data/lib/libv8/v8/src/x64/cpu-x64.cc +88 -0
  439. data/lib/libv8/v8/src/x64/debug-x64.cc +319 -0
  440. data/lib/libv8/v8/src/x64/deoptimizer-x64.cc +815 -0
  441. data/lib/libv8/v8/src/x64/disasm-x64.cc +1832 -0
  442. data/lib/libv8/v8/src/x64/frames-x64.cc +45 -0
  443. data/lib/libv8/v8/src/x64/frames-x64.h +130 -0
  444. data/lib/libv8/v8/src/x64/full-codegen-x64.cc +4318 -0
  445. data/lib/libv8/v8/src/x64/ic-x64.cc +1608 -0
  446. data/lib/libv8/v8/src/x64/lithium-codegen-x64.cc +4267 -0
  447. data/lib/libv8/v8/src/x64/lithium-codegen-x64.h +367 -0
  448. data/lib/libv8/v8/src/x64/lithium-gap-resolver-x64.cc +320 -0
  449. data/lib/libv8/v8/src/x64/lithium-gap-resolver-x64.h +74 -0
  450. data/lib/libv8/v8/src/x64/lithium-x64.cc +2202 -0
  451. data/lib/libv8/v8/src/x64/lithium-x64.h +2333 -0
  452. data/lib/libv8/v8/src/x64/macro-assembler-x64.cc +3745 -0
  453. data/lib/libv8/v8/src/x64/macro-assembler-x64.h +1290 -0
  454. data/lib/libv8/v8/src/x64/regexp-macro-assembler-x64.cc +1398 -0
  455. data/lib/libv8/v8/src/x64/regexp-macro-assembler-x64.h +282 -0
  456. data/lib/libv8/v8/src/x64/simulator-x64.cc +27 -0
  457. data/lib/libv8/v8/src/x64/simulator-x64.h +72 -0
  458. data/lib/libv8/v8/src/x64/stub-cache-x64.cc +3610 -0
  459. data/lib/libv8/v8/src/zone-inl.h +140 -0
  460. data/lib/libv8/v8/src/zone.cc +196 -0
  461. data/lib/libv8/v8/src/zone.h +240 -0
  462. data/lib/libv8/v8/tools/codemap.js +265 -0
  463. data/lib/libv8/v8/tools/consarray.js +93 -0
  464. data/lib/libv8/v8/tools/csvparser.js +78 -0
  465. data/lib/libv8/v8/tools/disasm.py +92 -0
  466. data/lib/libv8/v8/tools/freebsd-tick-processor +10 -0
  467. data/lib/libv8/v8/tools/gc-nvp-trace-processor.py +342 -0
  468. data/lib/libv8/v8/tools/gcmole/README +62 -0
  469. data/lib/libv8/v8/tools/gcmole/gccause.lua +60 -0
  470. data/lib/libv8/v8/tools/gcmole/gcmole.cc +1261 -0
  471. data/lib/libv8/v8/tools/gcmole/gcmole.lua +378 -0
  472. data/lib/libv8/v8/tools/generate-ten-powers.scm +286 -0
  473. data/lib/libv8/v8/tools/grokdump.py +841 -0
  474. data/lib/libv8/v8/tools/gyp/v8.gyp +995 -0
  475. data/lib/libv8/v8/tools/js2c.py +364 -0
  476. data/lib/libv8/v8/tools/jsmin.py +280 -0
  477. data/lib/libv8/v8/tools/linux-tick-processor +35 -0
  478. data/lib/libv8/v8/tools/ll_prof.py +942 -0
  479. data/lib/libv8/v8/tools/logreader.js +185 -0
  480. data/lib/libv8/v8/tools/mac-nm +18 -0
  481. data/lib/libv8/v8/tools/mac-tick-processor +6 -0
  482. data/lib/libv8/v8/tools/oom_dump/README +31 -0
  483. data/lib/libv8/v8/tools/oom_dump/SConstruct +42 -0
  484. data/lib/libv8/v8/tools/oom_dump/oom_dump.cc +288 -0
  485. data/lib/libv8/v8/tools/presubmit.py +305 -0
  486. data/lib/libv8/v8/tools/process-heap-prof.py +120 -0
  487. data/lib/libv8/v8/tools/profile.js +751 -0
  488. data/lib/libv8/v8/tools/profile_view.js +219 -0
  489. data/lib/libv8/v8/tools/run-valgrind.py +77 -0
  490. data/lib/libv8/v8/tools/splaytree.js +316 -0
  491. data/lib/libv8/v8/tools/stats-viewer.py +468 -0
  492. data/lib/libv8/v8/tools/test.py +1510 -0
  493. data/lib/libv8/v8/tools/tickprocessor-driver.js +59 -0
  494. data/lib/libv8/v8/tools/tickprocessor.js +877 -0
  495. data/lib/libv8/v8/tools/utils.py +96 -0
  496. data/lib/libv8/v8/tools/visual_studio/README.txt +12 -0
  497. data/lib/libv8/v8/tools/windows-tick-processor.bat +30 -0
  498. data/lib/libv8/version.rb +5 -0
  499. data/libv8.gemspec +36 -0
  500. metadata +578 -0
@@ -0,0 +1,8 @@
1
+ *.gem
2
+ *.bundle
3
+ *.so
4
+ *.a
5
+ Gemfile.lock
6
+ pkg/*
7
+ tmp/*
8
+ lib/libv8/build/*
@@ -0,0 +1,3 @@
1
+ [submodule "ext/libv8/v8"]
2
+ path = lib/libv8/v8
3
+ url = https://github.com/v8/v8.git
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in libv8.gemspec
4
+ gemspec
@@ -0,0 +1,76 @@
1
+ # Installation
2
+
3
+ This does not include a copy of scons. Rather, it expects you to install scons on your own. On a Mac (and maybe Linux?), this is:
4
+
5
+ sudo /usr/bin/easy_install-2.5 scons
6
+
7
+ ##libv8
8
+
9
+ A gem for distributing the v8 runtime libraries and headers in both source and binary form.
10
+
11
+ ### Why?
12
+
13
+ The goal of libv8 is two fold: provide a binary gem containing the a pre-compiled libv8.a for as many
14
+ platforms as possible while at the same time supporting for an automated compilation for all others.
15
+
16
+ Not only does this drastically reduce gem install times, but it also reduces dependencies on the local
17
+ machine receiving the gem. It also opens the door for supporting Windows.
18
+
19
+ ### Do I Get a Binary?
20
+
21
+ That depends on your platform. Right now, we support the following platforms.
22
+
23
+ * x86_64-darwin10.7.0
24
+ * x86_64-linux
25
+ * x86-linux
26
+
27
+ If you don't see your platform on this list, first, make sure that it installs from source, and second
28
+ talk to us about setting up a binary distro for you.
29
+
30
+
31
+ ### What if I can't install from source?
32
+
33
+
34
+ If you can fix the [Makefile](https://github.com/fractaloop/libv8/blob/master/lib/libv8/Makefile) so that it correctly compiles for your platform, we'll pull it right in!
35
+
36
+ To get the source, these commands will get you started:
37
+
38
+ git clone git@github.com:fractaloop/libv8
39
+ cd libv8
40
+ git submodule update --init
41
+ bundle install
42
+ bundle exec rake compile
43
+
44
+
45
+ ### About
46
+
47
+ This project spun off of [therubyracer](http://github.com/cowboyd/therubyracer) which depends on having
48
+ a specific version of v8 to compile and run against. However, actually delivering that version
49
+ reliably to all the different platforms proved to be a challenge to say the least.
50
+
51
+ We got tired of waiting 5 minutes for v8 to compile every time we installed that gem.
52
+
53
+ ### License
54
+
55
+ (The MIT License)
56
+
57
+ Copyright (c) 2009,2010 Logan Lowell
58
+
59
+ Permission is hereby granted, free of charge, to any person obtaining
60
+ a copy of this software and associated documentation files (the
61
+ 'Software'), to deal in the Software without restriction, including
62
+ without limitation the rights to use, copy, modify, merge, publish,
63
+ distribute, sublicense, and/or sell copies of the Software, and to
64
+ permit persons to whom the Software is furnished to do so, subject to
65
+ the following conditions:
66
+
67
+ The above copyright notice and this permission notice shall be
68
+ included in all copies or substantial portions of the Software.
69
+
70
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
71
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
72
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
73
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
74
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
75
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
76
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,113 @@
1
+ # This is a sanity check to enforce that the v8 submodule is initialized
2
+ # before we try to run any rake tasks.
3
+ if !File.exist? File.join('lib', 'libv8', 'v8', 'SConstruct') then
4
+ puts "V8 source appears to be missing. Updating..."
5
+ `git submodule update --init`
6
+ end
7
+
8
+ # Now we include the bundler stuff...
9
+ # We had to do the fetch first since our version code requires that we have
10
+ # the V8 source
11
+
12
+ require 'bundler'
13
+ require 'bundler/setup'
14
+
15
+ Bundler::GemHelper.install_tasks
16
+
17
+ # desc "remove all generated artifacts except built v8 objects"
18
+ # task :clean do
19
+ # sh "rm -rf pkg"
20
+ # sh "rm -rf ext/v8/Makefile"
21
+ # sh "rm -rf ext/v8/*.bundle ext/v8/*.so"
22
+ # sh "rm -rf lib/v8/*.bundle lib/v8/*.so"
23
+ # end
24
+ #
25
+ # desc "build v8 with debugging symbols (much slower)"
26
+ # task "v8:debug" do
27
+ # sh "cd ext/v8/upstream && make debug"
28
+ # end
29
+
30
+ # Rake::ExtensionTask.new("libv8", eval(File.read("libv8.gemspec"))) do |ext|
31
+ # ext.lib_dir = "lib/libv8"
32
+ # end
33
+
34
+ latest_v8 = nil
35
+ Dir.chdir(File.join('lib', 'libv8', 'v8')) do
36
+ latest_v8 = `git tag`.split.map{|v| Gem::Version.new(v)}.sort.last.to_s
37
+ end
38
+
39
+ desc "Check out a version of V8"
40
+ task :checkout, :version do |t, options|
41
+ options.with_defaults(:version => latest_v8)
42
+ Dir.chdir(File.join('lib', 'libv8', 'v8')) do
43
+ `git fetch`
44
+ # We're checking out the latest tag. Sorted using Gem::Version
45
+ versions = `git tag`.split.map{|v| Gem::Version.new(v)}.sort
46
+ fail "Version #{options.version} does not exist! Aborting..." if !versions.member?(Gem::Version.new(options.version))
47
+ puts "Checking out version #{options.version}"
48
+ `git checkout -f tags/#{options.version}`
49
+ end
50
+ end
51
+
52
+ desc "Compile the V8 JavaScript engine"
53
+ task :compile, [:version] do |t, options|
54
+ options.with_defaults(:version => latest_v8)
55
+
56
+ begin
57
+ def crash(str)
58
+ printf("Unable to build libv8: %s\n", str)
59
+ exit 1
60
+ end
61
+
62
+ print "Checking for Python..."
63
+ version = `python --version 2>&1`
64
+ version_number = version.split.last.match("[0-9.]+")[0]
65
+ crash "Python not found!" if version.split.first != "Python"
66
+ crash "Python 3.x is unsupported by V8!" if
67
+ Gem::Version.new(version_number) >=
68
+ Gem::Version.new(3)
69
+ crash "Python 2.4+ is required by V8!" if Gem::Version.new(version_number) < Gem::Version.new("2.4")
70
+ puts version_number
71
+ end
72
+
73
+ puts "Compiling V8 (#{options.version})..."
74
+ Rake::Task[:checkout].invoke(options.version)
75
+ Dir.chdir(File.join('lib', 'libv8')) do
76
+ `make`
77
+ end
78
+ end
79
+
80
+ desc "Clean up from the build"
81
+ task :clean do |t, options|
82
+ Dir.chdir(File.join('lib', 'libv8')) do
83
+ `make clean`
84
+ end
85
+ end
86
+
87
+ desc "List all versions of V8"
88
+ task :list do
89
+ Dir.chdir(File.join('lib', 'libv8', 'v8')) do
90
+ puts `git tag`.split.map{|v| Gem::Version.new(v)}.sort
91
+ end
92
+ end
93
+
94
+ desc "Create a binary gem for this current platform"
95
+ task :binary, [:version] => [:compile] do |t, options|
96
+ gemspec = eval(File.read('libv8.gemspec'))
97
+ gemspec.extensions.clear
98
+ gemspec.platform = Gem::Platform.new(RUBY_PLATFORM)
99
+
100
+ # We don't need most things for the binary
101
+ gemspec.files = []
102
+ # Lib
103
+ gemspec.files << 'lib/libv8.rb'
104
+ gemspec.files << 'lib/libv8/version.rb'
105
+ # V8
106
+ Dir.glob('lib/libv8/v8/include/*').each { |f| gemspec.files << f }
107
+ gemspec.files << "lib/libv8/build/v8/libv8.a"
108
+ gemspec.files << "lib/libv8/build/v8/libv8preparser.a"
109
+ FileUtils.mkdir_p 'pkg'
110
+ FileUtils.mv(Gem::Builder.new(gemspec).build, 'pkg')
111
+ end
112
+
113
+ task :default => :binary
@@ -0,0 +1,28 @@
1
+ require 'mkmf'
2
+ require 'pathname'
3
+
4
+ begin
5
+ def crash(str)
6
+ printf("Unable to build libv8: %s\n", str)
7
+ exit 1
8
+ end
9
+
10
+ print "Checking for Python..."
11
+ version = `python --version 2>&1`
12
+ crash "Python not found!" if version.split.first != "Python"
13
+ crash "Python 3.x is unsupported by V8!" if Gem::Version.new(version.split.last) >= Gem::Version.new(3)
14
+ crash "Python 2.4+ is required by V8!" if Gem::Version.new(version.split.last) < Gem::Version.new("2.4")
15
+ puts version.split.last
16
+
17
+ print "Checking for SCons..."
18
+ scons = `which scons`
19
+ crash "SCons not found! You should can use Python's easy_install to install scons. Note that, as of this writing, Python 2.5 is ideal for scons."
20
+ end
21
+
22
+
23
+ Dir.chdir(Pathname(__FILE__).dirname.join('..', '..', 'lib', 'libv8')) do
24
+ puts "Compiling V8..."
25
+ `make`
26
+ end
27
+
28
+ create_makefile('libv8')
@@ -0,0 +1,15 @@
1
+ require 'pathname'
2
+
3
+ require 'libv8/version'
4
+
5
+ module Libv8
6
+ LIBRARY_PATH = Pathname(__FILE__).dirname.join('libv8', 'build', 'v8').to_s
7
+ def self.library_path
8
+ LIBRARY_PATH
9
+ end
10
+
11
+ INCLUDE_PATH = Pathname(__FILE__).dirname.join('libv8', 'v8', 'include').to_s
12
+ def self.include_path
13
+ INCLUDE_PATH
14
+ end
15
+ end
@@ -0,0 +1,30 @@
1
+
2
+ SCONS=scons
3
+ V8SRC=build/v8
4
+ LIBV8=build/v8/libv8.a
5
+ LIBV8_G=build/v8/libv8_g.a
6
+ GCC_VERSION=$(shell ruby -e 'puts %x{gcc --version} =~ /(\d)\.(\d)\.\d/ ? $$1 + $$2 : "UNKNOWN"')
7
+ ARCH=$(shell ruby detect_cpu.rb)
8
+
9
+ all: $(LIBV8)
10
+
11
+ debug: $(LIBV8_G)
12
+ cp $(LIBV8_G) $(LIBV8)
13
+
14
+ $(LIBV8): $(SCONS) $(V8SRC)
15
+ cd build/v8 && GCC_VERSION=$(GCC_VERSION) $(SCONS) arch=$(ARCH)
16
+
17
+ $(LIBV8_G): $(SCONS) $(V8SRC)
18
+ cd build/v8 && GCC_VERSION=$(GCC_VERSION) $(SCONS) arch=$(ARCH) mode=debug
19
+
20
+ $(V8SRC): build
21
+ cp -r v8 build
22
+ patch -td build/v8 -i ../../fpic-on-linux-amd64.patch
23
+
24
+ build:
25
+ mkdir -p build
26
+
27
+ scons: $(SCONS)
28
+
29
+ clean:
30
+ rm -rf build
@@ -0,0 +1,27 @@
1
+ require 'rbconfig'
2
+
3
+ def x86_64_from_build_cpu
4
+ RbConfig::MAKEFILE_CONFIG['build_cpu'] == 'x86_64'
5
+ end
6
+
7
+ def x86_64_from_byte_length
8
+ ['foo'].pack('p').size == 8
9
+ end
10
+
11
+ def x86_64_from_arch_flag
12
+ RbConfig::MAKEFILE_CONFIG['ARCH_FLAG'] =~ /x86_64/
13
+ end
14
+
15
+ def rubinius?
16
+ Object.const_defined?(:RUBY_ENGINE) && RUBY_ENGINE == "rbx"
17
+ end
18
+
19
+ def x64?
20
+ if rubinius?
21
+ x86_64_from_build_cpu || x86_64_from_arch_flag
22
+ else
23
+ x86_64_from_byte_length
24
+ end
25
+ end
26
+
27
+ puts x64? ? "x64" : "ia32"
@@ -0,0 +1,13 @@
1
+ --- SConstruct
2
+ +++ SConstruct
3
+ @@ -139,6 +139,10 @@ LIBRARY_FLAGS = {
4
+ 'library:shared': {
5
+ 'CPPDEFINES': ['V8_SHARED'],
6
+ 'LIBS': ['pthread']
7
+ + },
8
+ + 'arch:x64': {
9
+ + 'CCFLAGS': ['-fPIC'],
10
+ + 'CXXFLAGS': ['-fPIC']
11
+ }
12
+ },
13
+ 'os:macos': {
@@ -0,0 +1,35 @@
1
+ *.a
2
+ *.exe
3
+ *.lib
4
+ *.log
5
+ *.map
6
+ *.mk
7
+ *.ncb
8
+ *.pyc
9
+ *.scons*
10
+ *.suo
11
+ *.user
12
+ *.xcodeproj
13
+ *.idb
14
+ *.pdb
15
+ #*#
16
+ *~
17
+ .cpplint-cache
18
+ d8
19
+ d8_g
20
+ shell
21
+ shell_g
22
+ /build/gyp
23
+ /obj/
24
+ /test/es5conform/data/
25
+ /test/mozilla/data/
26
+ /test/sputnik/sputniktests/
27
+ /test/test262/data/
28
+ /tools/oom_dump/oom_dump
29
+ /tools/oom_dump/oom_dump.o
30
+ /tools/visual_studio/Debug
31
+ /tools/visual_studio/Release
32
+ /xcodebuild/
33
+ TAGS
34
+ Makefile
35
+ *.Makefile
@@ -0,0 +1,44 @@
1
+ # Below is a list of people and organizations that have contributed
2
+ # to the V8 project. Names should be added to the list like so:
3
+ #
4
+ # Name/Organization <email address>
5
+
6
+ Google Inc.
7
+ Sigma Designs Inc.
8
+ ARM Ltd.
9
+ Hewlett-Packard Development Company, LP
10
+
11
+ Akinori MUSHA <knu@FreeBSD.org>
12
+ Alexander Botero-Lowry <alexbl@FreeBSD.org>
13
+ Alexander Karpinsky <homm86@gmail.com>
14
+ Alexandre Vassalotti <avassalotti@gmail.com>
15
+ Andreas Anyuru <andreas.anyuru@gmail.com>
16
+ Bert Belder <bertbelder@gmail.com>
17
+ Burcu Dogan <burcujdogan@gmail.com>
18
+ Craig Schlenter <craig.schlenter@gmail.com>
19
+ Daniel Andersson <kodandersson@gmail.com>
20
+ Daniel James <dnljms@gmail.com>
21
+ Dineel D Sule <dsule@codeaurora.org>
22
+ Erich Ocean <erich.ocean@me.com>
23
+ Jan de Mooij <jandemooij@gmail.com>
24
+ Jay Freeman <saurik@saurik.com>
25
+ Joel Stanley <joel.stan@gmail.com>
26
+ John Jozwiak <jjozwiak@codeaurora.org>
27
+ Kun Zhang <zhangk@codeaurora.org>
28
+ Martyn Capewell <martyn.capewell@arm.com>
29
+ Matt Hanselman <mjhanselman@gmail.com>
30
+ Maxim Mossienko <maxim.mossienko@gmail.com>
31
+ Michael Smith <mike@w3.org>
32
+ Mike Gilbert <floppymaster@gmail.com>
33
+ Paolo Giarrusso <p.giarrusso@gmail.com>
34
+ Patrick Gansterer <paroga@paroga.com>
35
+ Peter Varga <pvarga@inf.u-szeged.hu>
36
+ Rafal Krypa <rafal@krypa.net>
37
+ Rene Rebe <rene@exactcode.de>
38
+ Rodolph Perfetta <rodolph.perfetta@arm.com>
39
+ Ryan Dahl <coldredlemur@gmail.com>
40
+ Sanjoy Das <sanjoy@playingwithpointers.com>
41
+ Subrato K De <subratokde@codeaurora.org>
42
+ Vlad Burlik <vladbph@gmail.com>
43
+ Yuqiang Xian <yuqiang.xian@intel.com>
44
+ Zaheer Ahmad <zahmad@codeaurora.org>
@@ -0,0 +1,2839 @@
1
+ 2011-05-25: Version 3.3.10
2
+
3
+ Fixed calls of strict mode function with an implicit receiver.
4
+
5
+ Fixed fast handling of arrays to properly deal with changes to the
6
+ Object prototype (issue 1403).
7
+
8
+ Changed strict mode poison pill to be the same type error function
9
+ (issue 1387).
10
+
11
+ Fixed a debug crash in arguments object handling (issue 1227).
12
+
13
+ Fixed a bug in deoptimization on x64 (issue 1404).
14
+
15
+ Performance improvements and bug fixes on all platforms.
16
+
17
+
18
+ 2011-05-23: Version 3.3.9
19
+
20
+ Added DateTimeFormat class to experimental i18n API.
21
+
22
+ Extended preparser to give early errors for some strict mode
23
+ restrictions.
24
+
25
+ Removed legacy execScript function from V8.
26
+
27
+ Extended isolate API with the ability to add embedder-specific
28
+ data to an isolate.
29
+
30
+ Added basic support for polymorphic loads from JS and external
31
+ arrays.
32
+
33
+ Fixed bug in handling of switch statements in the optimizing
34
+ compiler.
35
+
36
+
37
+ 2011-05-18: Version 3.3.8
38
+
39
+ Added MarkIndependent to the persistent handle API. Independent
40
+ handles are independent of all other persistent handles and can be
41
+ garbage collected more frequently.
42
+
43
+ Implemented the get trap for Harmony proxies. Proxies are enabled
44
+ with the --harmony-proxies flag.
45
+
46
+ Performance improvements and bug fixes on all platforms.
47
+
48
+
49
+ 2011-05-16: Version 3.3.7
50
+
51
+ Updated MIPS infrastructure files.
52
+
53
+ Performance improvements and bug fixes on all platforms.
54
+
55
+
56
+ 2011-05-11: Version 3.3.6
57
+
58
+ Updated MIPS infrastructure files.
59
+
60
+ Added method IsCallable for Object to the API.
61
+ Patch by Peter Varga.
62
+
63
+
64
+ 2011-05-09: Version 3.3.5
65
+
66
+ Fixed build on FreeBSD. Patch by Akinori MUSHA.
67
+
68
+ Added check that receiver is JSObject on API calls.
69
+
70
+ Implemented CallAsConstructor method for Object in the API (Issue 1348).
71
+ Patch by Peter Varga.
72
+
73
+ Added CallAsFunction method to the Object class in the API (Issue 1336).
74
+ Patch by Peter Varga.
75
+
76
+ Added per-isolate locking and unlocking.
77
+
78
+ Fixed bug in x64 >>> operator (Issue 1359).
79
+
80
+
81
+ 2011-05-04: Version 3.3.4
82
+
83
+ Implemented API to disallow code generation from strings for a context
84
+ (issue 1258).
85
+
86
+ Fixed bug with whitespaces in parseInt (issue 955).
87
+
88
+ Fixed bug with == comparison of Date objects (issue 1356).
89
+
90
+ Added GYP variables for ARM code generation:
91
+ v8_can_use_vfp_instructions, v8_can_use_unaligned_accesses
92
+ and v8_use_arm_eabi_hardfloat.
93
+
94
+
95
+ 2011-05-02: Version 3.3.3
96
+
97
+ Added support for generating Visual Studio solution and project files
98
+ using GYP.
99
+
100
+ Implemented support for ARM EABI calling convention variation where
101
+ floating-point arguments are passed in registers (hardfloat).
102
+
103
+ Added Object::HasOwnProperty() to the API.
104
+
105
+ Added support for compressing startup data to reduce binary size. This
106
+ includes build time support and an API for the embedder to decompress
107
+ the startup data before initializing V8.
108
+
109
+ Reduced the profiling hooks overhead from >400% to 25% when using
110
+ ll_prof.
111
+
112
+ Performance improvements and bug fixes on all platforms.
113
+
114
+
115
+ 2011-04-27: Version 3.3.2
116
+
117
+ Fixed crash bug on ARM with no VFP3 hardware.
118
+
119
+ Fixed compilation of V8 without debugger support.
120
+
121
+ Improved performance on JSLint.
122
+
123
+ Added support Float64 WebGL arrays.
124
+
125
+ Fixed crash bug in regexp replace.
126
+
127
+
128
+ 2011-04-20: Version 3.3.1
129
+
130
+ Reduced V8 binary size by removing virtual functions from hydrogen.
131
+
132
+ Fixed crash bug on x64.
133
+
134
+ Performance improvements on ARM and IA32.
135
+
136
+
137
+ 2011-04-18: Version 3.3.0
138
+
139
+ Fixed bug in floating point rounding in Crankshaft on ARM
140
+ (issue 958)
141
+
142
+ Fixed a number of issues with running without VFPv3 support on ARM
143
+ (issue 1315)
144
+
145
+ Introduced v8Locale.Collator, a partial implementation of Collator
146
+ per last ECMAScript meeting + mailing list.
147
+
148
+ Minor performance improvements and bug fixes.
149
+
150
+
151
+ 2011-04-13: Version 3.2.10
152
+
153
+ Fixed bug in external float arrays on ARM (issue 1323).
154
+
155
+ Minor performance improvements and bug fixes.
156
+
157
+
158
+ 2011-04-11: Version 3.2.9
159
+
160
+ Removed support for ABI prior to EABI on ARM.
161
+
162
+ Fixed multiple crash bugs.
163
+
164
+ Added GCMole to the repository, a simple static analysis tool that
165
+ searches for GC-unsafe evaluation order dependent callsites.
166
+
167
+ Made preparser API be exported in shared libraries.
168
+
169
+ Fixed multiple issues in EcmaScript 5 strict mode implementation.
170
+
171
+ Fixed mutable __proto__ property if object is not extensible
172
+ (Issue 1309).
173
+
174
+ Fixed auto suspension of the sampler thread.
175
+
176
+
177
+ 2011-04-06: Version 3.2.8
178
+
179
+ Exposed WebGL typed array constructors in the shell sample.
180
+
181
+ Performance improvements on all platforms.
182
+
183
+
184
+ 2011-04-04: Version 3.2.7
185
+
186
+ Disabled the original 'classic' V8 code generator. Crankshaft is
187
+ now the default on all platforms.
188
+
189
+ Changed the heap profiler to use more descriptive names.
190
+
191
+ Performance and stability improvements to isolates on all platforms.
192
+
193
+
194
+ 2011-03-30: Version 3.2.6
195
+
196
+ Fixed xcode build warning in shell.cc (out of order initialization).
197
+
198
+ Fixed null-pointer dereference in the compiler when running without
199
+ SSE3 support (Chromium issue 77654).
200
+
201
+ Fixed x64 compilation error due to some dead code. (Issue 1286)
202
+
203
+ Introduced scons target to build the preparser stand-alone example.
204
+
205
+ Made FreeBSD build and pass all tests.
206
+
207
+
208
+ 2011-03-28: Version 3.2.5
209
+
210
+ Fixed build with Irregexp interpreter (issue 1266).
211
+
212
+ Added Crankshaft support for external arrays.
213
+
214
+ Fixed two potential crash bugs.
215
+
216
+
217
+ 2011-03-23: Version 3.2.4
218
+
219
+ Added isolates which allows several V8 instances in the same process.
220
+ This is controlled through the new Isolate class in the API.
221
+
222
+ Implemented more of EcmaScript 5 strict mode.
223
+
224
+ Reduced the time it takes to make detailed heap snapshot.
225
+
226
+ Added a number of commands to the ARM simulator and enhanced the ARM
227
+ disassembler.
228
+
229
+
230
+ 2011-03-17: Version 3.2.3
231
+
232
+ Fixed a number of crash bugs.
233
+
234
+ Fixed Array::New(length) to return an array with a length (issue 1256).
235
+
236
+ Fixed FreeBSD build.
237
+
238
+ Changed __defineGetter__ to not throw (matching the behavior of Safari).
239
+
240
+ Implemented more of EcmaScript 5 strict mode.
241
+
242
+ Improved Crankshaft performance on all platforms.
243
+
244
+
245
+ 2011-03-14: Version 3.2.2
246
+
247
+ Fixed a number of crash and correctness bugs.
248
+
249
+ Improved Crankshaft performance on all platforms.
250
+
251
+ Fixed Crankshaft on Solaris/Illumos.
252
+
253
+
254
+ 2011-03-10: Version 3.2.1
255
+
256
+ Fixed a number of crash bugs.
257
+
258
+ Improved Crankshaft for x64 and ARM.
259
+
260
+ Implemented more of EcmaScript 5 strict mode.
261
+
262
+
263
+ 2011-03-07: Version 3.2.0
264
+
265
+ Fixed a number of crash bugs.
266
+
267
+ Turned on Crankshaft by default on x64 and ARM.
268
+
269
+ Improved Crankshaft for x64 and ARM.
270
+
271
+ Implemented more of EcmaScript 5 strict mode.
272
+
273
+
274
+ 2011-03-02: Version 3.1.8
275
+
276
+ Fixed a number of crash bugs.
277
+
278
+ Improved Crankshaft for x64 and ARM.
279
+
280
+ Implemented more of EcmaScript 5 strict mode.
281
+
282
+ Fixed issue with unaligned reads and writes on ARM.
283
+
284
+ Improved heap profiler support.
285
+
286
+
287
+ 2011-02-28: Version 3.1.7
288
+
289
+ Fixed a number of crash bugs.
290
+
291
+ Improved Crankshaft for x64 and ARM.
292
+
293
+ Fixed implementation of indexOf/lastIndexOf for sparse
294
+ arrays (http://crbug.com/73940).
295
+
296
+ Fixed bug in map space compaction (http://crbug.com/59688).
297
+
298
+ Added support for direct getter accessors calls on ARM.
299
+
300
+
301
+ 2011-02-24: Version 3.1.6
302
+
303
+ Fixed a number of crash bugs.
304
+
305
+ Added support for Cygwin (issue 64).
306
+
307
+ Improved Crankshaft for x64 and ARM.
308
+
309
+ Added Crankshaft support for stores to pixel arrays.
310
+
311
+ Fixed issue in CPU profiler with Crankshaft.
312
+
313
+
314
+ 2011-02-16: Version 3.1.5
315
+
316
+ Change RegExp parsing to disallow /(*)/.
317
+
318
+ Added GDB JIT support for ARM.
319
+
320
+ Fixed several crash bugs.
321
+
322
+ Performance improvements on the IA32 platform.
323
+
324
+
325
+ 2011-02-14: Version 3.1.4
326
+
327
+ Fixed incorrect compare of prototypes of the global object (issue
328
+ 1082).
329
+
330
+ Fixed a bug in optimizing calls to global functions (issue 1106).
331
+
332
+ Made optimized Function.prototype.apply safe for non-JSObject first
333
+ arguments (issue 1128).
334
+
335
+ Fixed an error related to element accessors on Object.prototype and
336
+ parser errors (issue 1130).
337
+
338
+ Fixed a bug in sorting an array with large array indices (issue 1131).
339
+
340
+ Properly treat exceptions thrown while compiling (issue 1132).
341
+
342
+ Fixed bug in register requirements for function.apply (issue 1133).
343
+
344
+ Fixed a representation change bug in the Hydrogen graph construction
345
+ (issue 1134).
346
+
347
+ Fixed the semantics of delete on parameters (issue 1136).
348
+
349
+ Fixed a optimizer bug related to moving instructions with side effects
350
+ (issue 1138).
351
+
352
+ Added support for the global object in Object.keys (issue 1150).
353
+
354
+ Fixed incorrect value for Math.LOG10E
355
+ (issue http://code.google.com/p/chromium/issues/detail?id=72555)
356
+
357
+ Performance improvements on the IA32 platform.
358
+
359
+ Implement assignment to undefined reference in ES5 Strict Mode.
360
+
361
+
362
+ 2011-02-09: Version 3.1.3
363
+
364
+ Fixed a bug triggered by functions with huge numbers of declared
365
+ arguments.
366
+
367
+ Fixed zap value aliasing a real object - debug mode only (issue 866).
368
+
369
+ Fixed issue where Array.prototype.__proto__ had been set to null
370
+ (issue 1121).
371
+
372
+ Fixed stability bugs in Crankshaft for x86.
373
+
374
+
375
+ 2011-02-07: Version 3.1.2
376
+
377
+ Added better security checks when accessing properties via
378
+ Object.getOwnPropertyDescriptor.
379
+
380
+ Fixed bug in Object.defineProperty and related access bugs (issues
381
+ 992, 1083 and 1092).
382
+
383
+ Added LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to ease
384
+ copyright notice generation for embedders.
385
+
386
+
387
+ 2011-02-02: Version 3.1.1
388
+
389
+ Perform security checks before fetching the value in
390
+ Object.getOwnPropertyDescriptor.
391
+
392
+ Fixed a bug in Array.prototype.splice triggered by passing no
393
+ arguments.
394
+
395
+ Fixed bugs in -0 in arithmetic and in Math.pow.
396
+
397
+ Fixed bugs in the register allocator and in switching from optimized
398
+ to unoptimized code.
399
+
400
+
401
+ 2011-01-31: Version 3.1.0
402
+
403
+ Performance improvements on all platforms.
404
+
405
+
406
+ 2011-01-28: Version 3.0.12
407
+
408
+ Added support for strict mode parameter and object property
409
+ validation.
410
+
411
+ Fixed a couple of crash bugs.
412
+
413
+
414
+ 2011-01-25: Version 3.0.11
415
+
416
+ Fixed a bug in deletion of lookup slots that could cause global
417
+ variables to be accidentally deleted (http://crbug.com/70066).
418
+
419
+ Added support for strict mode octal literal verification.
420
+
421
+ Fixed a couple of crash bugs (issues 1070 and 1071).
422
+
423
+
424
+ 2011-01-24: Version 3.0.10
425
+
426
+ Fixed External::Wrap for 64-bit addresses (issue 1037).
427
+
428
+ Fixed incorrect .arguments variable proxy handling in the full
429
+ code generator (issue 1060).
430
+
431
+ Introduced partial strict mode support.
432
+
433
+ Changed formatting of recursive error messages to match Firefox and
434
+ Safari (issue http://crbug.com/70334).
435
+
436
+ Fixed incorrect rounding for float-to-integer conversions for external
437
+ array types, which implement the Typed Array spec
438
+ (issue http://crbug.com/50972).
439
+
440
+ Performance improvements on the IA32 platform.
441
+
442
+
443
+ 2011-01-19: Version 3.0.9
444
+
445
+ Added basic GDB JIT Interface integration.
446
+
447
+ Make invalid break/continue statements a syntax error instead of a
448
+ runtime error.
449
+
450
+
451
+ 2011-01-17: Version 3.0.8
452
+
453
+ Exposed heap size limit to the heap statistics gathered by
454
+ the GetHeapStatistics API.
455
+
456
+ Wrapped external pointers more carefully (issue 1037).
457
+
458
+ Hardened the implementation of error objects to avoid setters
459
+ intercepting the properties set then throwing an error.
460
+
461
+ Avoided trashing the FPSCR when calculating Math.floor on ARM.
462
+
463
+ Performance improvements on the IA32 platform.
464
+
465
+
466
+ 2011-01-10: Version 3.0.7
467
+
468
+ Stopped calling inherited setters when creating object literals
469
+ (issue 1015).
470
+
471
+ Changed interpretation of malformed \c? escapes in RegExp to match
472
+ JSC.
473
+
474
+ Enhanced the command-line debugger interface and fixed some minor
475
+ bugs in the debugger.
476
+
477
+ Performance improvements on the IA32 platform.
478
+
479
+
480
+ 2011-01-05: Version 3.0.6
481
+
482
+ Allowed getters and setters on JSArray elements (issue 900).
483
+
484
+ Stopped JSON objects from hitting inherited setters (part of
485
+ issue 1015).
486
+
487
+ Allowed numbers and strings as names of getters/setters in object
488
+ initializer (issue 820).
489
+
490
+ Added use_system_v8 option to gyp (off by default), to make it easier
491
+ for Linux distributions to ship with system-provided V8 library.
492
+
493
+ Exported external array data accessors (issue 1016).
494
+
495
+ Added labelled thread names to help with debugging (on Linux).
496
+
497
+
498
+ 2011-01-03: Version 3.0.5
499
+
500
+ Fixed a couple of cast errors for gcc-3.4.3.
501
+
502
+ Performance improvements in GC and IA32 code generator.
503
+
504
+
505
+ 2010-12-21: Version 3.0.4
506
+
507
+ Added Date::ResetCache() to the API so that the cached values in the
508
+ Date object can be reset to allow live DST / timezone changes.
509
+
510
+ Extended existing support for printing (while debugging) the contents
511
+ of objects. Added support for printing objects from release builds.
512
+
513
+ Fixed V8 issues 989, 1006, and 1007.
514
+
515
+
516
+ 2010-12-17: Version 3.0.3
517
+
518
+ Reapplied all changes for version 3.0.1.
519
+
520
+ Improved debugger protocol for remote debugging.
521
+
522
+ Added experimental support for using gyp to generate build files
523
+ for V8.
524
+
525
+ Fixed implementation of String::Write in the API (issue 975).
526
+
527
+
528
+ 2010-12-15: Version 3.0.2
529
+
530
+ Revert version 3.0.1 and patch 3.0.1.1.
531
+
532
+
533
+ 2010-12-13: Version 3.0.1
534
+
535
+ Added support for an experimental internationalization API as an
536
+ extension. This extension is disabled by default but can be enabled
537
+ when building V8. The ECMAScript internationalization strawman is
538
+ at http://wiki.ecmascript.org/doku.php?id=strawman:i18n_api.
539
+
540
+ Made RegExp character class parsing stricter. This mirrors a change
541
+ to RegExp parsing in WebKit.
542
+
543
+ Fixed a bug in Object.defineProperty when used to change attributes
544
+ of an existing property. It incorrectly set the property value to
545
+ undefined (issue 965).
546
+
547
+ Fixed several different compilation failures on various platforms
548
+ caused by the 3.0.0 release.
549
+
550
+ Optimized Math.pow so it can work on unboxed doubles.
551
+
552
+ Sped up quoting of JSON strings by removing one traversal of the
553
+ string.
554
+
555
+
556
+ 2010-12-07: Version 3.0.0
557
+
558
+ Improved performance by (partially) addressing issue 957 on
559
+ IA-32. Still needs more work for the other architectures.
560
+
561
+
562
+ 2010-11-29: Version 2.5.9
563
+
564
+ Fixed crashes during GC caused by partially initialize heap
565
+ objects.
566
+
567
+ Fixed bug in process sample that caused memory leaks.
568
+
569
+ Improved performance on ARM by implementing missing stubs and
570
+ inlining.
571
+
572
+ Improved heap profiler support.
573
+
574
+ Added separate seeding on Windows of the random number generator
575
+ used internally by the compiler (issue 936).
576
+
577
+ Exposed API for getting the name of the function used to construct
578
+ an object.
579
+
580
+ Fixed date parser to handle one and two digit millisecond
581
+ values (issue 944).
582
+
583
+ Fixed number parsing to disallow space between sign and
584
+ digits (issue 946).
585
+
586
+
587
+ 2010-11-23: Version 2.5.8
588
+
589
+ Removed dependency on Gay's dtoa.
590
+
591
+ Improved heap profiler precision and speed.
592
+
593
+ Reduced overhead of callback invocations on ARM.
594
+
595
+
596
+ 2010-11-18: Version 2.5.7
597
+
598
+ Fixed obscure evaluation order bug (issue 931).
599
+
600
+ Split the random number state between JavaScript and the private API.
601
+
602
+ Fixed performance bug causing GCs when generating stack traces on
603
+ code from very large scripts.
604
+
605
+ Fixed bug in parser that allowed (foo):42 as a labelled statement
606
+ (issue 918).
607
+
608
+ Provide more accurate results about used heap size via
609
+ GetHeapStatistics.
610
+
611
+ Allow build-time customization of the max semispace size.
612
+
613
+ Made String.prototype.split honor limit when separator is empty
614
+ (issue 929).
615
+
616
+ Added missing failure check after expecting an identifier in
617
+ preparser (Chromium issue 62639).
618
+
619
+
620
+ 2010-11-10: Version 2.5.6
621
+
622
+ Added support for VFP rounding modes to the ARM simulator.
623
+
624
+ Fixed multiplication overflow bug (issue 927).
625
+
626
+ Added a limit for the amount of executable memory (issue 925).
627
+
628
+
629
+ 2010-11-08: Version 2.5.5
630
+
631
+ Added more aggressive GC of external objects in near out-of-memory
632
+ situations.
633
+
634
+ Fixed a bug that gave the incorrect result for String.split called
635
+ on the empty string (issue 924).
636
+
637
+
638
+ 2010-11-03: Version 2.5.4
639
+
640
+ Improved V8 VFPv3 runtime detection to address issue 914.
641
+
642
+
643
+ 2010-11-01: Version 2.5.3
644
+
645
+ Fixed a bug that prevents constants from overwriting function values
646
+ in object literals (issue 907).
647
+
648
+ Fixed a bug with reporting of impossible nested calls of DOM functions
649
+ (issue http://crbug.com/60753).
650
+
651
+
652
+ 2010-10-27: Version 2.5.2
653
+
654
+ Improved sampler resolution on Linux.
655
+
656
+ Allowed forcing the use of a simulator from the build script
657
+ independently of the host architecture.
658
+
659
+ Fixed FreeBSD port (issue 912).
660
+
661
+ Made windows-tick-processor respect D8_PATH.
662
+
663
+ Implemented --noinline-new flag fully on IA32, X64 and ARM platforms.
664
+
665
+
666
+ 2010-10-20: Version 2.5.1
667
+
668
+ Fixed bug causing spurious out of memory exceptions
669
+ (issue http://crbug.com/54580).
670
+
671
+ Fixed compilation error on Solaris platform (issue 901).
672
+
673
+ Fixed error in strtod (string to floating point number conversion)
674
+ due to glibc's use of 80-bit floats in the FPU on 32-bit linux.
675
+
676
+ Adjusted randomized allocations of executable memory to have 64k
677
+ granularity (issue http://crbug.com/56036).
678
+
679
+ Supported profiling using kernel perf_events on linux. Added ll_prof
680
+ script to tools and --ll-prof flag to V8.
681
+
682
+
683
+ 2010-10-18: Version 2.5.0
684
+
685
+ Fixed bug in cache handling of lastIndex on global regexps
686
+ (issue http://crbug.com/58740).
687
+
688
+ Added USE_SIMULATOR macro that explicitly indicates that we wish to use
689
+ the simulator as the execution engine (by Mark Lam <mark.lam@palm.com>
690
+ from Hewlett-Packard Development Company, LP).
691
+
692
+ Fixed compilation error on ARM with gcc 4.4 (issue 894).
693
+
694
+
695
+ 2010-10-13: Version 2.4.9
696
+
697
+ Fixed a bug in the handling of conditional expressions in test
698
+ contexts in compiler for top-level code.
699
+
700
+ Added "//@ sourceURL" information to the StackTrace API.
701
+
702
+ Exposed RegExp construction through the API.
703
+
704
+
705
+ 2010-10-04: Version 2.4.8
706
+
707
+ Fixed a bug in ResumeProfilerEx causing it to not always write out the
708
+ whole snapshot (issue 868).
709
+
710
+ Performance improvements on all platforms.
711
+
712
+
713
+ 2010-09-30: Version 2.4.7
714
+
715
+ Changed the command-line flag --max-new-space-size to be in kB and the
716
+ flag --max-old-space-size to be in MB (previously they were in bytes).
717
+
718
+ Added Debug::CancelDebugBreak to the debugger API.
719
+
720
+ Fixed a bug in getters for negative numeric property names
721
+ (https://bugs.webkit.org/show_bug.cgi?id=46689).
722
+
723
+ Performance improvements on all platforms.
724
+
725
+
726
+ 2010-09-27: Version 2.4.6
727
+
728
+ Fixed assertion failure related to copy-on-write arrays (issue 876).
729
+
730
+ Fixed build failure of 64-bit V8 on Windows.
731
+
732
+ Fixed a bug in RegExp (issue http://crbug.com/52801).
733
+
734
+ Improved the profiler's coverage to cover more functions (issue 858).
735
+
736
+ Fixed error in shift operators on 64-bit V8
737
+ (issue http://crbug.com/54521).
738
+
739
+
740
+ 2010-09-22: Version 2.4.5
741
+
742
+ Changed the RegExp benchmark to exercise the regexp engine on different
743
+ inputs by scrambling the input strings.
744
+
745
+ Fixed a bug in keyed loads on strings.
746
+
747
+ Fixed a bug with loading global function prototypes.
748
+
749
+ Fixed a bug with profiling RegExp calls (issue http://crbug.com/55999).
750
+
751
+ Performance improvements on all platforms.
752
+
753
+
754
+ 2010-09-15: Version 2.4.4
755
+
756
+ Fixed bug with hangs on very large sparse arrays.
757
+
758
+ Now tries harder to free up memory when running out of space.
759
+
760
+ Added heap snapshots to JSON format to API.
761
+
762
+ Recalibrated benchmarks.
763
+
764
+
765
+ 2010-09-13: Version 2.4.3
766
+
767
+ Made Date.parse properly handle TZ offsets (issue 857).
768
+
769
+ Performance improvements on all platforms.
770
+
771
+
772
+ 2010-09-08: Version 2.4.2
773
+
774
+ Fixed GC crash bug.
775
+
776
+ Fixed stack corruption bug.
777
+
778
+ Fixed compilation for newer C++ compilers that found Operand(0)
779
+ ambiguous.
780
+
781
+
782
+ 2010-09-06: Version 2.4.1
783
+
784
+ Added the ability for an embedding application to receive a callback
785
+ when V8 allocates (V8::AddMemoryAllocationCallback) or deallocates
786
+ (V8::RemoveMemoryAllocationCallback) from the OS.
787
+
788
+ Fixed several JSON bugs (including issue 855).
789
+
790
+ Fixed memory overrun crash bug triggered during V8's tick-based
791
+ profiling.
792
+
793
+ Performance improvements on all platforms.
794
+
795
+
796
+ 2010-09-01: Version 2.4.0
797
+
798
+ Fixed bug in Object.freeze and Object.seal when Array.prototype or
799
+ Object.prototype are changed (issue 842).
800
+
801
+ Updated Array.splice to follow Safari and Firefox when called
802
+ with zero arguments.
803
+
804
+ Fixed a missing live register when breaking at keyed loads on ARM.
805
+
806
+ Performance improvements on all platforms.
807
+
808
+
809
+ 2010-08-25: Version 2.3.11
810
+
811
+ Fixed bug in RegExp related to copy-on-write arrays.
812
+
813
+ Refactored tools/test.py script, including the introduction of
814
+ VARIANT_FLAGS that allows specification of sets of flags with which
815
+ all tests should be run.
816
+
817
+ Fixed a bug in the handling of debug breaks in CallIC.
818
+
819
+ Performance improvements on all platforms.
820
+
821
+
822
+ 2010-08-23: Version 2.3.10
823
+
824
+ Fixed bug in bitops on ARM.
825
+
826
+ Build fixes for unusual compilers.
827
+
828
+ Track high water mark for RWX memory.
829
+
830
+ Performance improvements on all platforms.
831
+
832
+
833
+ 2010-08-18: Version 2.3.9
834
+
835
+ Fixed compilation for ARMv4 on OpenBSD/FreeBSD.
836
+
837
+ Removed specialized handling of GCC 4.4 (issue 830).
838
+
839
+ Fixed DST cache to take into account the suspension of DST in
840
+ Egypt during the 2010 Ramadan (issue http://crbug.com/51855).
841
+
842
+ Performance improvements on all platforms.
843
+
844
+
845
+ 2010-08-16: Version 2.3.8
846
+
847
+ Fixed build with strict aliasing on GCC 4.4 (issue 463).
848
+
849
+ Fixed issue with incorrect handling of custom valueOf methods on
850
+ string wrappers (issue 760).
851
+
852
+ Fixed compilation for ARMv4 (issue 590).
853
+
854
+ Improved performance.
855
+
856
+
857
+ 2010-08-11: Version 2.3.7
858
+
859
+ Reduced size of heap snapshots produced by heap profiler (issue 783).
860
+
861
+ Introduced v8::Value::IsRegExp method.
862
+
863
+ Fixed CPU profiler crash in start / stop sequence when non-existent
864
+ name is passed (issue http://crbug.com/51594).
865
+
866
+ Introduced new indexed property query callbacks API (issue 816). This
867
+ API is guarded by USE_NEW_QUERY_CALLBACK define and is disabled
868
+ by default.
869
+
870
+ Removed support for object literal get/set with number/string
871
+ property name.
872
+
873
+ Fixed handling of JSObject::elements in CalculateNetworkSize
874
+ (issue 822).
875
+
876
+ Allowed compiling with strict aliasing enabled on GCC 4.4 (issue 463).
877
+
878
+
879
+ 2010-08-09: Version 2.3.6
880
+
881
+ RegExp literals create a new object every time they are evaluated
882
+ (issue 704).
883
+
884
+ Object.seal and Object.freeze return the modified object (issue 809).
885
+
886
+ Fixed building using GCC 4.4.4.
887
+
888
+
889
+ 2010-08-04: Version 2.3.5
890
+
891
+ Added support for ES5 property names. Object initialisers and
892
+ dot-notation property access now allows keywords. Also allowed
893
+ non-identifiers after "get" or "set" in an object initialiser.
894
+
895
+ Randomized the addresses of allocated executable memory on Windows.
896
+
897
+
898
+ 2010-08-02: Version 2.3.4
899
+
900
+ Fixed problems in implementation of ES5 function.prototype.bind.
901
+
902
+ Fixed error when using apply with arguments object on ARM (issue 784).
903
+
904
+ Added setting of global flags to debugger protocol.
905
+
906
+ Fixed an error affecting cached results of sin and cos (issue 792).
907
+
908
+ Removed memory leak from a boundary case where V8 is not initialized.
909
+
910
+ Fixed issue where debugger could set breakpoints outside the body
911
+ of a function.
912
+
913
+ Fixed issue in debugger when using both live edit and step in features.
914
+
915
+ Added Number-letter (Nl) category to Unicode tables. These characters
916
+ can now be used in identifiers.
917
+
918
+ Fixed an assert failure on X64 (issue 806).
919
+
920
+ Performance improvements on all platforms.
921
+
922
+
923
+ 2010-07-26: Version 2.3.3
924
+
925
+ Fixed error when building the d8 shell in a fresh checkout.
926
+
927
+ Implemented Function.prototype.bind (ES5 15.3.4.5).
928
+
929
+ Fixed an error in inlined stores on ia32.
930
+
931
+ Fixed an error when setting a breakpoint at the end of a function
932
+ that does not end with a newline character.
933
+
934
+ Performance improvements on all platforms.
935
+
936
+
937
+ 2010-07-21: Version 2.3.2
938
+
939
+ Fixed compiler warnings when building with LLVM.
940
+
941
+ Fixed a bug with for-in applied to strings (issue 785).
942
+
943
+ Performance improvements on all platforms.
944
+
945
+
946
+ 2010-07-19: Version 2.3.1
947
+
948
+ Fixed compilation and linking with V8_INTERPRETED_REGEXP flag.
949
+
950
+ Fixed bug related to code flushing while compiling a lazy
951
+ compilable function (issue http://crbug.com/49099).
952
+
953
+ Performance improvements on all platforms.
954
+
955
+
956
+ 2010-07-15: Version 2.3.0
957
+
958
+ Added ES5 Object.seal and Object.isSealed.
959
+
960
+ Added debugger API for scheduling debugger commands from a
961
+ separate thread.
962
+
963
+
964
+ 2010-07-14: Version 2.2.24
965
+
966
+ Added API for capturing stack traces for uncaught exceptions.
967
+
968
+ Fixed crash bug when preparsing from a non-external V8 string
969
+ (issue 775).
970
+
971
+ Fixed JSON.parse bug causing input not to be converted to string
972
+ (issue 764).
973
+
974
+ Added ES5 Object.freeze and Object.isFrozen.
975
+
976
+ Performance improvements on all platforms.
977
+
978
+
979
+ 2010-07-07: Version 2.2.23
980
+
981
+ API change: Convert Unicode code points outside the basic multilingual
982
+ plane to the replacement character. Previous behavior was to silently
983
+ truncate the value to 16 bits.
984
+
985
+ Fixed crash: handle all flat string types in regexp replace.
986
+
987
+ Prevent invalid pre-parsing data passed in through the API from
988
+ crashing V8.
989
+
990
+ Performance improvements on all platforms.
991
+
992
+
993
+ 2010-07-05: Version 2.2.22
994
+
995
+ Added ES5 Object.isExtensible and Object.preventExtensions.
996
+
997
+ Enabled building V8 as a DLL.
998
+
999
+ Fixed a bug in date code where -0 was not interpreted as 0
1000
+ (issue 736).
1001
+
1002
+ Performance improvements on all platforms.
1003
+
1004
+
1005
+ 2010-06-30: Version 2.2.21
1006
+
1007
+ Fixed bug in externalizing some ASCII strings (Chromium issue 47824).
1008
+
1009
+ Updated JSON.stringify to floor the space parameter (issue 753).
1010
+
1011
+ Updated the Mozilla test expectations to the newest version.
1012
+
1013
+ Updated the ES5 Conformance Test expectations to the latest version.
1014
+
1015
+ Updated the V8 benchmark suite.
1016
+
1017
+ Provide actual breakpoints locations in response to setBreakpoint
1018
+ and listBreakpoints requests.
1019
+
1020
+
1021
+ 2010-06-28: Version 2.2.20
1022
+
1023
+ Fixed bug with for-in on x64 platform (issue 748).
1024
+
1025
+ Fixed crash bug on x64 platform (issue 756).
1026
+
1027
+ Fixed bug in Object.getOwnPropertyNames. (chromium issue 41243).
1028
+
1029
+ Fixed a bug on ARM that caused the result of 1 << x to be
1030
+ miscalculated for some inputs.
1031
+
1032
+ Performance improvements on all platforms.
1033
+
1034
+
1035
+ 2010-06-23: Version 2.2.19
1036
+
1037
+ Fixed bug that causes the build to break when profillingsupport=off
1038
+ (issue 738).
1039
+
1040
+ Added expose-externalize-string flag for testing extensions.
1041
+
1042
+ Resolve linker issues with using V8 as a DLL causing a number of
1043
+ problems with unresolved symbols.
1044
+
1045
+ Fixed build failure for cctests when ENABLE_DEBUGGER_SUPPORT is not
1046
+ defined.
1047
+
1048
+ Performance improvements on all platforms.
1049
+
1050
+
1051
+ 2010-06-16: Version 2.2.18
1052
+
1053
+ Added API functions to retrieve information on indexed properties
1054
+ managed by the embedding layer. Fixes bug 737.
1055
+
1056
+ Made ES5 Object.defineProperty support array elements. Fixes bug 619.
1057
+
1058
+ Added heap profiling to the API.
1059
+
1060
+ Removed old named property query from the API.
1061
+
1062
+ Incremental performance improvements.
1063
+
1064
+
1065
+ 2010-06-14: Version 2.2.17
1066
+
1067
+ Improved debugger support for stepping out of functions.
1068
+
1069
+ Incremental performance improvements.
1070
+
1071
+
1072
+ 2010-06-09: Version 2.2.16
1073
+
1074
+ Removed the SetExternalStringDiposeCallback API. Changed the
1075
+ disposal of external string resources to call a virtual Dispose
1076
+ method on the resource.
1077
+
1078
+ Added support for more precise break points when debugging and
1079
+ stepping.
1080
+
1081
+ Memory usage improvements on all platforms.
1082
+
1083
+
1084
+ 2010-06-07: Version 2.2.15
1085
+
1086
+ Added an API to control the disposal of external string resources.
1087
+
1088
+ Added missing initialization of a couple of variables which makes
1089
+ some compilers complaint when compiling with -Werror.
1090
+
1091
+ Improved performance on all platforms.
1092
+
1093
+
1094
+ 2010-06-02: Version 2.2.14
1095
+
1096
+ Fixed a crash in code generated for String.charCodeAt.
1097
+
1098
+ Fixed a compilation issue with some GCC versions (issue 727).
1099
+
1100
+ Performance optimizations on x64 and ARM platforms.
1101
+
1102
+
1103
+ 2010-05-31: Version 2.2.13
1104
+
1105
+ Implemented Object.getOwnPropertyDescriptor for element indices and
1106
+ strings (issue 599).
1107
+
1108
+ Fixed bug for windows 64 bit C calls from generated code.
1109
+
1110
+ Added new scons flag unalignedaccesses for arm builds.
1111
+
1112
+ Performance improvements on all platforms.
1113
+
1114
+
1115
+ 2010-05-26: Version 2.2.12
1116
+
1117
+ Allowed accessors to be defined on objects rather than just object
1118
+ templates.
1119
+
1120
+ Changed the ScriptData API.
1121
+
1122
+
1123
+ 2010-05-21: Version 2.2.11
1124
+
1125
+ Fixed crash bug in liveedit on 64 bit.
1126
+
1127
+ Use 'full compiler' when debugging is active. This should increase
1128
+ the density of possible break points, making single step more fine
1129
+ grained. This will only take effect for functions compiled after
1130
+ debugging has been started, so recompilation of all functions is
1131
+ required to get the full effect. IA32 and x64 only for now.
1132
+
1133
+ Misc. fixes to the Solaris build.
1134
+
1135
+ Added new flags --print-cumulative-gc-stat and --trace-gc-nvp.
1136
+
1137
+ Added filtering of CPU profiles by security context.
1138
+
1139
+ Fixed crash bug on ARM when running without VFP2 or VFP3.
1140
+
1141
+ Incremental performance improvements in all backends.
1142
+
1143
+
1144
+ 2010-05-17: Version 2.2.10
1145
+
1146
+ Performance improvements in the x64 and ARM backends.
1147
+
1148
+
1149
+ 2010-05-10: Version 2.2.9
1150
+
1151
+ Allowed Object.create to be called with a function (issue 697).
1152
+
1153
+ Fixed bug with Date.parse returning a non-NaN value when called on a
1154
+ non date string (issue 696).
1155
+
1156
+ Allowed unaligned memory accesses on ARM targets that support it (by
1157
+ Subrato K De of CodeAurora <subratokde@codeaurora.org>).
1158
+
1159
+ C++ API for retrieving JavaScript stack trace information.
1160
+
1161
+
1162
+ 2010-05-05: Version 2.2.8
1163
+
1164
+ Performance improvements in the x64 and ARM backends.
1165
+
1166
+
1167
+ 2010-05-03: Version 2.2.7
1168
+
1169
+ Added support for ES5 date time string format to Date.parse.
1170
+
1171
+ Performance improvements in the x64 backend.
1172
+
1173
+
1174
+ 2010-04-28: Version 2.2.6
1175
+
1176
+ Added "amd64" as recognized architecture in scons build script
1177
+ (by Ryan Dahl <coldredlemur@gmail.com>).
1178
+
1179
+ Fixed bug in String search and replace with very simple RegExps.
1180
+
1181
+ Fixed bug in RegExp containing "\b^".
1182
+
1183
+ Performance improvements on all platforms.
1184
+
1185
+
1186
+ 2010-04-26: Version 2.2.5
1187
+
1188
+ Various performance improvements (especially for ARM and x64)
1189
+
1190
+ Fixed bug in CPU profiling (http://crbug.com/42137)
1191
+
1192
+ Fixed a bug with the natives cache.
1193
+
1194
+ Fixed two bugs in the ARM code generator that can cause
1195
+ wrong calculations.
1196
+
1197
+ Fixed a bug that may cause a wrong result for shift operations.
1198
+
1199
+
1200
+ 2010-04-21: Version 2.2.4
1201
+
1202
+ Fixed warnings on arm on newer GCC versions.
1203
+
1204
+ Fixed a number of minor bugs.
1205
+
1206
+ Performance improvements on all platforms.
1207
+
1208
+
1209
+ 2010-04-14: Version 2.2.3
1210
+
1211
+ Added stack command and mem command to ARM simulator debugger.
1212
+
1213
+ Fixed scons snapshot and ARM build, and Windows X64 build issues.
1214
+
1215
+ Performance improvements on all platforms.
1216
+
1217
+
1218
+ 2010-04-12: Version 2.2.2
1219
+
1220
+ Introduced new profiler API.
1221
+
1222
+ Fixed random number generator to produce full 32 random bits.
1223
+
1224
+
1225
+ 2010-04-06: Version 2.2.1
1226
+
1227
+ Debugger improvements.
1228
+
1229
+ Fixed minor bugs.
1230
+
1231
+
1232
+ 2010-03-29: Version 2.2.0
1233
+
1234
+ Fixed a few minor bugs.
1235
+
1236
+ Performance improvements for string operations.
1237
+
1238
+
1239
+ 2010-03-26: Version 2.1.10
1240
+
1241
+ Fixed scons build issues.
1242
+
1243
+ Fixed a couple of minor bugs.
1244
+
1245
+
1246
+ 2010-03-25: Version 2.1.9
1247
+
1248
+ Added API support for reattaching a global object to a context.
1249
+
1250
+ Extended debugger API with access to the internal debugger context.
1251
+
1252
+ Fixed Chromium crashes (issues http://crbug.com/39128 and
1253
+ http://crbug.com/39160)
1254
+
1255
+
1256
+ 2010-03-24: Version 2.1.8
1257
+
1258
+ Added fine-grained garbage collection callbacks to the API.
1259
+
1260
+ Performance improvements on all platforms.
1261
+
1262
+
1263
+ 2010-03-22: Version 2.1.7
1264
+
1265
+ Fixed issue 650.
1266
+
1267
+ Fixed a bug where __proto__ was sometimes enumerated (issue 646).
1268
+
1269
+ Performance improvements for arithmetic operations.
1270
+
1271
+ Performance improvements for string operations.
1272
+
1273
+ Print script name and line number information in stack trace.
1274
+
1275
+
1276
+ 2010-03-17: Version 2.1.6
1277
+
1278
+ Performance improvements for arithmetic operations.
1279
+
1280
+ Performance improvements for string operations.
1281
+
1282
+
1283
+ 2010-03-10: Version 2.1.4
1284
+
1285
+ Fixed code cache lookup for keyed IC's (issue http://crbug.com/37853).
1286
+
1287
+ Performance improvements on all platforms.
1288
+
1289
+
1290
+ 2010-03-10: Version 2.1.3
1291
+
1292
+ Added API method for context-disposal notifications.
1293
+
1294
+ Added API method for accessing elements by integer index.
1295
+
1296
+ Added missing implementation of Uint32::Value and Value::IsUint32
1297
+ API methods.
1298
+
1299
+ Added IsExecutionTerminating API method.
1300
+
1301
+ Disabled strict aliasing for GCC 4.4.
1302
+
1303
+ Fixed string-concatenation bug (issue 636).
1304
+
1305
+ Performance improvements on all platforms.
1306
+
1307
+
1308
+ 2010-02-23: Version 2.1.2
1309
+
1310
+ Fixed a crash bug caused by wrong assert.
1311
+
1312
+ Fixed a bug with register names on 64-bit V8 (issue 615).
1313
+
1314
+ Performance improvements on all platforms.
1315
+
1316
+
1317
+ 2010-02-19: Version 2.1.1
1318
+
1319
+ [ES5] Implemented Object.defineProperty.
1320
+
1321
+ Improved profiler support.
1322
+
1323
+ Added SetPrototype method in the public V8 API.
1324
+
1325
+ Added GetScriptOrigin and GetScriptLineNumber methods to Function
1326
+ objects in the API.
1327
+
1328
+ Performance improvements on all platforms.
1329
+
1330
+
1331
+ 2010-02-03: Version 2.1.0
1332
+
1333
+ Values are now always wrapped in objects when used as a receiver.
1334
+ (issue 223).
1335
+
1336
+ [ES5] Implemented Object.getOwnPropertyNames.
1337
+
1338
+ [ES5] Restrict JSON.parse to only accept strings that conforms to the
1339
+ JSON grammar.
1340
+
1341
+ Improvement of debugger agent (issue 549 and 554).
1342
+
1343
+ Fixed problem with skipped stack frame in profiles (issue 553).
1344
+
1345
+ Solaris support by Erich Ocean <erich.ocean@me.com> and Ryan Dahl
1346
+ <ry@tinyclouds.org>.
1347
+
1348
+ Fixed a bug that Math.round() returns incorrect results for huge
1349
+ integers.
1350
+
1351
+ Fixed enumeration order for objects created from some constructor
1352
+ functions (isue http://crbug.com/3867).
1353
+
1354
+ Fixed arithmetic on some integer constants (issue 580).
1355
+
1356
+ Numerous performance improvements including porting of previous IA-32
1357
+ optimizations to x64 and ARM architectures.
1358
+
1359
+
1360
+ 2010-01-14: Version 2.0.6
1361
+
1362
+ Added ES5 Object.getPrototypeOf, GetOwnPropertyDescriptor,
1363
+ GetOwnProperty, FromPropertyDescriptor.
1364
+
1365
+ Fixed Mac x64 build errors.
1366
+
1367
+ Improved performance of some math and string operations.
1368
+
1369
+ Improved performance of some regexp operations.
1370
+
1371
+ Improved performance of context creation.
1372
+
1373
+ Improved performance of hash tables.
1374
+
1375
+
1376
+ 2009-12-18: Version 2.0.5
1377
+
1378
+ Extended to upper limit of map space to allow for 7 times as many map
1379
+ to be allocated (issue 524).
1380
+
1381
+ Improved performance of code using closures.
1382
+
1383
+ Improved performance of some binary operations involving doubles.
1384
+
1385
+
1386
+ 2009-12-16: Version 2.0.4
1387
+
1388
+ Added ECMAScript 5 Object.create.
1389
+
1390
+ Improved performance of Math.max and Math.min.
1391
+
1392
+ Optimized adding of strings on 64-bit platforms.
1393
+
1394
+ Improved handling of external strings by using a separate table
1395
+ instead of weak handles. This improves garbage collection
1396
+ performance and uses less memory.
1397
+
1398
+ Changed code generation for object and array literals in toplevel
1399
+ code to be more compact by doing more work in the runtime.
1400
+
1401
+ Fixed a crash bug triggered when garbage collection happened during
1402
+ generation of a callback load inline cache stub.
1403
+
1404
+ Fixed crash bug sometimes triggered when local variables shadowed
1405
+ parameters in functions that used the arguments object.
1406
+
1407
+
1408
+ 2009-12-03: Version 2.0.3
1409
+
1410
+ Optimized handling and adding of strings, for-in and Array.join.
1411
+
1412
+ Heap serialization is now non-destructive.
1413
+
1414
+ Improved profiler support with information on time spend in C++
1415
+ callbacks registered through the API.
1416
+
1417
+ Added commands to the debugger protocol for starting/stopping
1418
+ profiling.
1419
+
1420
+ Enabled the non-optimizing compiler for top-level code.
1421
+
1422
+ Changed the API to only allow strings to be set as data objects on
1423
+ Contexts and scripts to avoid potentially keeping global objects
1424
+ around for too long (issue 528).
1425
+
1426
+ OpenBSD support patch by Peter Valchev <pvalchev@gmail.com>.
1427
+
1428
+ Fixed bugs.
1429
+
1430
+
1431
+ 2009-11-24: Version 2.0.2
1432
+
1433
+ Improved profiler support.
1434
+
1435
+ Fixed bug that broke compilation of d8 with readline support.
1436
+
1437
+
1438
+ 2009-11-20: Version 2.0.1
1439
+
1440
+ Fixed crash bug in String.prototype.replace.
1441
+
1442
+ Reverted a change which caused Chromium interactive ui test
1443
+ failures.
1444
+
1445
+
1446
+ 2009-11-18: Version 2.0.0
1447
+
1448
+ Added support for VFP on ARM.
1449
+
1450
+ Added TryCatch::ReThrow method to the API.
1451
+
1452
+ Reduced the size of snapshots and improved the snapshot load time.
1453
+
1454
+ Improved heap profiler support.
1455
+
1456
+ 64-bit version now supported on Windows.
1457
+
1458
+ Fixed a number of debugger issues.
1459
+
1460
+ Fixed bugs.
1461
+
1462
+
1463
+ 2009-10-29: Version 1.3.18
1464
+
1465
+ Reverted a change which caused crashes in RegExp replace.
1466
+
1467
+ Reverted a change which caused Chromium ui_tests failure.
1468
+
1469
+
1470
+ 2009-10-28: Version 1.3.17
1471
+
1472
+ Added API method to get simple heap statistics.
1473
+
1474
+ Improved heap profiler support.
1475
+
1476
+ Fixed the implementation of the resource constraint API so it
1477
+ works when using snapshots.
1478
+
1479
+ Fixed a number of issues in the Windows 64-bit version.
1480
+
1481
+ Optimized calls to API getters.
1482
+
1483
+ Added valgrind notification on code modification to the 64-bit version.
1484
+
1485
+ Fixed issue where we logged shared library addresses on Windows at
1486
+ startup and never used them.
1487
+
1488
+
1489
+ 2009-10-16: Version 1.3.16
1490
+
1491
+ X64: Convert smis to holding 32 bits of payload.
1492
+
1493
+ Introduced v8::Integer::NewFromUnsigned method.
1494
+
1495
+ Added missing null check in Context::GetCurrent.
1496
+
1497
+ Added trim, trimLeft and trimRight methods to String
1498
+ Patch by Jan de Mooij <jandemooij@gmail.com>
1499
+
1500
+ Implement ES5 Array.isArray
1501
+ Patch by Jan de Mooij <jandemooij@gmail.com>
1502
+
1503
+ Skip access checks for hidden properties.
1504
+
1505
+ Added String::Concat(Handle<String> left, Handle<String> right) to the
1506
+ V8 API.
1507
+
1508
+ Fixed GYP-based builds of V8.
1509
+
1510
+
1511
+ 2009-10-07: Version 1.3.15
1512
+
1513
+ Expanded the maximum size of the code space to 512MB for 64-bit mode.
1514
+
1515
+ Fixed a crash bug happening when starting profiling (issue
1516
+ http://crbug.com/23768).
1517
+
1518
+
1519
+ 2009-10-07: Version 1.3.14
1520
+
1521
+ Added GetRealNamedProperty to the API to lookup real properties
1522
+ located on the object or in the prototype chain skipping any
1523
+ interceptors.
1524
+
1525
+ Fixed the stack limits setting API to work correctly with threads. The
1526
+ stack limit now needs to be set to each thread thich is used with V8.
1527
+
1528
+ Removed the high-priority flag from IdleNotification()
1529
+
1530
+ Ensure V8 is initialized before locking and unlocking threads.
1531
+
1532
+ Implemented a new JavaScript minifier for compressing the source of
1533
+ the built-in JavaScript. This removes non-Open Source code from Douglas
1534
+ Crockford from the project.
1535
+
1536
+ Added a missing optimization in StringCharAt.
1537
+
1538
+ Fixed some flaky socket tests.
1539
+
1540
+ Change by Alexander Botero-Lowry to fix profiler sampling on FreeBSD
1541
+ in 64-bit mode.
1542
+
1543
+ Fixed memory leaks in the thread management code.
1544
+
1545
+ Fixed the result of assignment to a pixel array. The assigned value
1546
+ is now the result.
1547
+
1548
+ Error reporting for invalid left-hand sides in for-in statements, pre-
1549
+ and postfix count expressions, and assignments now matches the JSC
1550
+ behavior in Safari 4.
1551
+
1552
+ Follow the spec in disallowing function declarations without a name.
1553
+
1554
+ Always allocate code objects within a 2 GB range. On x64 architecture
1555
+ this is used to use near calls (32-bit displacement) in Code objects.
1556
+
1557
+ Optimized array construction ported to x64 and ARM architectures.
1558
+
1559
+ [ES5] Changed Object.keys to return strings for element indices.
1560
+
1561
+
1562
+ 2009-09-23: Version 1.3.13
1563
+
1564
+ Fixed uninitialized memory problem.
1565
+
1566
+ Improved heap profiler support.
1567
+
1568
+
1569
+ 2009-09-22: Version 1.3.12
1570
+
1571
+ Changed behavior of |function|.toString() on built-in functions to
1572
+ be compatible with other implementations. Patch by Jan de Mooij.
1573
+
1574
+ Added Object::IsDirty in the API.
1575
+
1576
+ Optimized array construction; it is now handled purely in native
1577
+ code.
1578
+
1579
+ [ES5] Made properties of the arguments array enumerable.
1580
+
1581
+ [ES5] Added test suite adapter for the es5conform test suite.
1582
+
1583
+ [ES5] Added Object.keys function.
1584
+
1585
+
1586
+ 2009-09-15: Version 1.3.11
1587
+
1588
+ Fixed crash in error reporting during bootstrapping.
1589
+
1590
+ Optimized generated IA32 math code by using SSE2 instructions when
1591
+ available.
1592
+
1593
+ Implemented missing pieces of debugger infrastructure on ARM. The
1594
+ debugger is now fully functional on ARM.
1595
+
1596
+ Made 'hidden' the default visibility for gcc.
1597
+
1598
+
1599
+ 2009-09-09: Version 1.3.10
1600
+
1601
+ Fixed profiler on Mac in 64-bit mode.
1602
+
1603
+ Optimized creation of objects from simple constructor functions on
1604
+ ARM.
1605
+
1606
+ Fixed a number of debugger issues.
1607
+
1608
+ Reduced the amount of memory consumed by V8.
1609
+
1610
+
1611
+ 2009-09-02: Version 1.3.9
1612
+
1613
+ Optimized stack guard checks on ARM.
1614
+
1615
+ Optimized API operations by inlining more in the API.
1616
+
1617
+ Optimized creation of objects from simple constructor functions.
1618
+
1619
+ Enabled a number of missing optimizations in the 64-bit port.
1620
+
1621
+ Implemented native-code support for regular expressions on ARM.
1622
+
1623
+ Stopped using the 'sahf' instruction on 64-bit machines that do
1624
+ not support it.
1625
+
1626
+ Fixed a bug in the support for forceful termination of JavaScript
1627
+ execution.
1628
+
1629
+
1630
+ 2009-08-26: Version 1.3.8
1631
+
1632
+ Changed the handling of idle notifications to allow idle
1633
+ notifications when V8 has not yet been initialized.
1634
+
1635
+ Fixed ARM simulator compilation problem on Windows.
1636
+
1637
+
1638
+ 2009-08-25: Version 1.3.7
1639
+
1640
+ Reduced the size of generated code on ARM platforms by reducing
1641
+ the size of constant pools.
1642
+
1643
+ Changed build files to not include the 'ENV' user environment
1644
+ variable in the build environment.
1645
+
1646
+ Changed the handling of idle notifications.
1647
+
1648
+
1649
+ 2009-08-21: Version 1.3.6
1650
+
1651
+ Added support for forceful termination of JavaScript execution.
1652
+
1653
+ Added low memory notification to the API. The embedding host can signal
1654
+ a low memory situation to V8.
1655
+
1656
+ Changed the handling of global handles (persistent handles in the API
1657
+ sense) to avoid issues regarding allocation of new global handles
1658
+ during weak handle callbacks.
1659
+
1660
+ Changed the growth policy of the young space.
1661
+
1662
+ Fixed a GC issue introduced in version 1.3.5.
1663
+
1664
+
1665
+ 2009-08-19: Version 1.3.5
1666
+
1667
+ Optimized initialization of some arrays in the builtins.
1668
+
1669
+ Fixed mac-nm script to support filenames with spaces.
1670
+
1671
+ Support for using the V8 profiler when V8 is embedded in a Windows DLL.
1672
+
1673
+ Changed typeof RegExp from 'object' to 'function' for compatibility.
1674
+ Fixed bug where regexps were not callable across contexts.
1675
+
1676
+ Added context independent script compilation to the API.
1677
+
1678
+ Added API call to get the stack trace for an exception.
1679
+
1680
+ Added API for getting object mirrors.
1681
+
1682
+ Made sure that SSE3 instructions are used whenever possible even when
1683
+ running off a snapshot generated without using SSE3 instructions.
1684
+
1685
+ Tweaked the handling of the initial size and growth policy of the heap.
1686
+
1687
+ Added native code generation for RegExp to 64-bit version.
1688
+
1689
+ Added JavaScript debugger support to 64-bit version.
1690
+
1691
+
1692
+ 2009-08-13: Version 1.3.4
1693
+
1694
+ Added a readline() command to the d8 shell.
1695
+
1696
+ Fixed bug in json parsing.
1697
+
1698
+ Added idle notification to the API and reduced memory on idle
1699
+ notifications.
1700
+
1701
+
1702
+ 2009-08-12: Version 1.3.3
1703
+
1704
+ Fixed issue 417: incorrect %t placeholder expansion.
1705
+
1706
+ Added .gitignore file similar to Chromium's one.
1707
+
1708
+ Fixed SConstruct file to build with new logging code for Android.
1709
+
1710
+ API: added function to find instance of template in prototype
1711
+ chain. Inlined Object::IsInstanceOf.
1712
+
1713
+ Land change to notify valgrind when we modify code on x86.
1714
+
1715
+ Added api call to determine whether a string can be externalized.
1716
+
1717
+ Added a write() command to d8.
1718
+
1719
+
1720
+ 2009-08-05: Version 1.3.2
1721
+
1722
+ Started new compiler infrastructure for two-pass compilation using a
1723
+ control flow graph constructed from the AST.
1724
+
1725
+ Profiler stack sampling for X64.
1726
+
1727
+ Safe handling of NaN to Posix platform-dependent time functions.
1728
+
1729
+ Added a new profiler control API to unify controlling various aspects
1730
+ of profiling.
1731
+
1732
+ Fixed issue 392.
1733
+
1734
+
1735
+ 2009-07-30: Version 1.3.1
1736
+
1737
+ Speed improvements to accessors and interceptors.
1738
+
1739
+ Added support for capturing stack information on custom errors.
1740
+
1741
+ Added support for morphing an object into a pixel array where its
1742
+ indexed properties are stored in an external byte array. Values written
1743
+ are always clamped to the 0..255 interval.
1744
+
1745
+ Profiler on x64 now handles C/C++ functions from shared libraries.
1746
+
1747
+ Changed the debugger to avoid stepping into function.call/apply if the
1748
+ function is a built-in.
1749
+
1750
+ Initial implementation of constructor heap profile for JS objects.
1751
+
1752
+ More fine grained control of profiling aspects through the API.
1753
+
1754
+ Optimized the called as constructor check for API calls.
1755
+
1756
+
1757
+ 2009-07-27: Version 1.3.0
1758
+
1759
+ Allowed RegExp objects to be called as functions (issue 132).
1760
+
1761
+ Fixed issue where global property cells would escape after
1762
+ detaching the global object; see http://crbug.com/16276.
1763
+
1764
+ Added support for stepping into setters and getters in the
1765
+ debugger.
1766
+
1767
+ Changed the debugger to avoid stopping in its own JavaScript code
1768
+ and in the code of built-in functions.
1769
+
1770
+ Fixed issue 345 by avoiding duplicate escaping labels.
1771
+
1772
+ Fixed ARM code generator crash in short-circuited boolean
1773
+ expressions and added regression tests.
1774
+
1775
+ Added an external allocation limit to avoid issues where small V8
1776
+ objects would hold on to large amounts of external memory without
1777
+ causing garbage collections.
1778
+
1779
+ Finished more of the inline caching stubs for x64 targets.
1780
+
1781
+
1782
+ 2009-07-13: Version 1.2.14
1783
+
1784
+ Added separate paged heap space for global property cells and
1785
+ avoid updating the write barrier when storing into them.
1786
+
1787
+ Improved peep-hole optimization on ARM platforms by not emitting
1788
+ unnecessary debug information.
1789
+
1790
+ Re-enabled ICs for loads and calls that skip a global object
1791
+ during lookup through the prototype chain.
1792
+
1793
+ Allowed access through global proxies to use ICs.
1794
+
1795
+ Fixed issue 401.
1796
+
1797
+
1798
+ 2009-07-09: Version 1.2.13
1799
+
1800
+ Fixed issue 397, issue 398, and issue 399.
1801
+
1802
+ Added support for breakpoint groups.
1803
+
1804
+ Fixed bugs introduced with the new global object representation.
1805
+
1806
+ Fixed a few bugs in the ARM code generator.
1807
+
1808
+
1809
+ 2009-07-06: Version 1.2.12
1810
+
1811
+ Added stack traces collection to Error objects accessible through
1812
+ the e.stack property.
1813
+
1814
+ Changed RegExp parser to use a recursive data structure instead of
1815
+ stack-based recursion.
1816
+
1817
+ Optimized Date object construction and string concatenation.
1818
+
1819
+ Improved performance of div, mod, and mul on ARM platforms.
1820
+
1821
+
1822
+ 2009-07-02: Version 1.2.11
1823
+
1824
+ Improved performance on IA-32 and ARM.
1825
+
1826
+ Fixed profiler sampler implementation on Mac OS X.
1827
+
1828
+ Changed the representation of global objects to improve
1829
+ performance of adding a lot of new properties.
1830
+
1831
+
1832
+ 2009-06-29: Version 1.2.10
1833
+
1834
+ Improved debugger support.
1835
+
1836
+ Fixed bug in exception message reporting (issue 390).
1837
+
1838
+ Improved overall performance.
1839
+
1840
+
1841
+ 2009-06-23: Version 1.2.9
1842
+
1843
+ Improved math performance on ARM.
1844
+
1845
+ Fixed profiler name-inference bug.
1846
+
1847
+ Fixed handling of shared libraries in the profiler tick processor
1848
+ scripts.
1849
+
1850
+ Fixed handling of tests that time out in the test scripts.
1851
+
1852
+ Fixed compilation on MacOS X version 10.4.
1853
+
1854
+ Fixed two bugs in the regular expression engine.
1855
+
1856
+ Fixed a bug in the string type inference.
1857
+
1858
+ Fixed a bug in the handling of 'constant function' properties.
1859
+
1860
+ Improved overall performance.
1861
+
1862
+
1863
+ 2009-06-16: Version 1.2.8
1864
+
1865
+ Optimized math on ARM platforms.
1866
+
1867
+ Fixed two crash bugs in the handling of getters and setters.
1868
+
1869
+ Improved the debugger support by adding scope chain information.
1870
+
1871
+ Improved the profiler support by compressing log data transmitted
1872
+ to clients.
1873
+
1874
+ Improved overall performance.
1875
+
1876
+
1877
+ 2009-06-08: Version 1.2.7
1878
+
1879
+ Improved debugger and profiler support.
1880
+
1881
+ Reduced compilation time by improving the handling of deferred
1882
+ code.
1883
+
1884
+ Optimized interceptor accesses where the property is on the object
1885
+ on which the interceptors is attached.
1886
+
1887
+ Fixed compilation problem on GCC 4.4 by changing the stack
1888
+ alignment to 16 bytes.
1889
+
1890
+ Fixed handle creation to follow stric aliasing rules.
1891
+
1892
+ Fixed compilation on FreeBSD.
1893
+
1894
+ Introduced API for forcing the deletion of a property ignoring
1895
+ interceptors and attributes.
1896
+
1897
+
1898
+ 2009-05-29: Version 1.2.6
1899
+
1900
+ Added a histogram recording hit rates at different levels of the
1901
+ compilation cache.
1902
+
1903
+ Added stack overflow check for the RegExp analysis phase. Previously a
1904
+ very long regexp graph could overflow the stack with recursive calls.
1905
+
1906
+ Use a dynamic buffer when collecting log events in memory.
1907
+
1908
+ Added start/stop events to the profiler log.
1909
+
1910
+ Fixed infinite loop which could happen when setting a debug break while
1911
+ executing a RegExp compiled to native code.
1912
+
1913
+ Fixed handling of lastIndexOf called with negative index (issue 351).
1914
+
1915
+ Fixed irregular crash in profiler test (issue 358).
1916
+
1917
+ Fixed compilation issues with some versions of gcc.
1918
+
1919
+
1920
+ 2009-05-26: Version 1.2.5
1921
+
1922
+ Fixed bug in initial boundary check for Boyer-Moore text
1923
+ search (issue 349).
1924
+
1925
+ Fixed compilation issues with MinGW and gcc 4.3+ and added support
1926
+ for armv7 and cortex-a8 architectures. Patches by Lei Zhang and
1927
+ Craig Schlenter.
1928
+
1929
+ Added a script cache to the debugger.
1930
+
1931
+ Optimized compilation performance by improving internal data
1932
+ structures and avoiding expensive property load optimizations for
1933
+ code that's infrequently executed.
1934
+
1935
+ Exposed the calling JavaScript context through the static API
1936
+ function Context::GetCalling().
1937
+
1938
+
1939
+ 2009-05-18: Version 1.2.4
1940
+
1941
+ Improved performance of floating point number allocation for ARM
1942
+ platforms.
1943
+
1944
+ Fixed crash when using the instanceof operator on functions with
1945
+ number values in their prototype chain (issue 341).
1946
+
1947
+ Optimized virtual frame operations in the code generator to speed
1948
+ up compilation time and allocated the frames in the zone.
1949
+
1950
+ Made the representation of virtual frames and jump targets in the
1951
+ code generator much more compact.
1952
+
1953
+ Avoided linear search for non-locals in scope code when resolving
1954
+ variables inside with and eval scopes.
1955
+
1956
+ Optimized lexical scanner by dealing with whitespace as part of
1957
+ the token scanning instead of as a separate step before it.
1958
+
1959
+ Changed the scavenging collector so that promoted objects do not
1960
+ reside in the old generation while their remembered set is being
1961
+ swept for pointers into the young generation.
1962
+
1963
+ Fixed numeric overflow handling when compiling count operations.
1964
+
1965
+
1966
+ 2009-05-11: Version 1.2.3
1967
+
1968
+ Fixed bug in reporting of out-of-memory situations.
1969
+
1970
+ Introduced hidden prototypes on certain builtin prototype objects
1971
+ such as String.prototype to emulate JSC's behavior of restoring
1972
+ the original function when deleting functions from those prototype
1973
+ objects.
1974
+
1975
+ Fixed crash bug in the register allocator.
1976
+
1977
+
1978
+ 2009-05-04: Version 1.2.2
1979
+
1980
+ Fixed bug in array sorting for sparse arrays (issue 326).
1981
+
1982
+ Added support for adding a soname when building a shared library
1983
+ on Linux (issue 151).
1984
+
1985
+ Fixed bug caused by morphing internal ASCII strings to external
1986
+ two-byte strings. Slices over ASCII strings have to forward ASCII
1987
+ checks to the underlying buffer string.
1988
+
1989
+ Allowed API call-as-function handlers to be called as
1990
+ constructors.
1991
+
1992
+ Fixed a crash bug where an external string was disposed but a
1993
+ slice of the external string survived as a symbol.
1994
+
1995
+
1996
+ 2009-04-27: Version 1.2.1
1997
+
1998
+ Added EcmaScript 5 JSON object.
1999
+
2000
+ Fixed bug in preemption support on ARM.
2001
+
2002
+
2003
+ 2009-04-23: Version 1.2.0
2004
+
2005
+ Optimized floating-point operations on ARM.
2006
+
2007
+ Added a number of extensions to the debugger API.
2008
+
2009
+ Changed the enumeration order for unsigned integer keys to always
2010
+ be numerical order.
2011
+
2012
+ Added a "read" extension to the shell sample.
2013
+
2014
+ Added support for Array.prototype.reduce and
2015
+ Array.prototype.reduceRight.
2016
+
2017
+ Added an option to the SCons build to control Microsoft Visual C++
2018
+ link-time code generation.
2019
+
2020
+ Fixed a number of bugs (in particular issue 315, issue 316,
2021
+ issue 317 and issue 318).
2022
+
2023
+
2024
+ 2009-04-15: Version 1.1.10
2025
+
2026
+ Fixed crash bug that occurred when loading a const variable in the
2027
+ presence of eval.
2028
+
2029
+ Allowed using with and eval in registered extensions in debug mode
2030
+ by fixing bogus assert.
2031
+
2032
+ Fixed the source position for function returns to enable the
2033
+ debugger to break there.
2034
+
2035
+
2036
+ 2009-04-14: Version 1.1.9
2037
+
2038
+ Made the stack traversal code in the profiler robust by avoiding
2039
+ to look into the heap.
2040
+
2041
+ Added name inferencing for anonymous functions to facilitate
2042
+ debugging and profiling.
2043
+
2044
+ Re-enabled stats timers in the developer shell (d8).
2045
+
2046
+ Fixed issue 303 by avoiding to shortcut cons-symbols.
2047
+
2048
+
2049
+ 2009-04-11: Version 1.1.8
2050
+
2051
+ Changed test-debug/ThreadedDebugging to be non-flaky (issue 96).
2052
+
2053
+ Fixed step-in handling for Function.prototype.apply and call in
2054
+ the debugger (issue 269).
2055
+
2056
+ Fixed v8::Object::DeleteHiddenValue to not bail out when there
2057
+ are no hidden properties.
2058
+
2059
+ Added workaround for crash bug, where external symbol table
2060
+ entries with deleted resources would lead to NPEs when looking
2061
+ up in the symbol table.
2062
+
2063
+
2064
+ 2009-04-07: Version 1.1.7
2065
+
2066
+ Added support for easily importing additional environment
2067
+ variables into the SCons build.
2068
+
2069
+ Optimized strict equality checks.
2070
+
2071
+ Fixed crash in indexed setters on objects without a corresponding
2072
+ getter (issue 298).
2073
+
2074
+ Re-enabled script compilation cache.
2075
+
2076
+
2077
+ 2009-04-01: Version 1.1.6
2078
+
2079
+ Reverted an unsafe code generator change.
2080
+
2081
+
2082
+ 2009-04-01: Version 1.1.5
2083
+
2084
+ Fixed bug that caused function literals to not be optimized as
2085
+ much as other functions.
2086
+
2087
+ Improved profiler support.
2088
+
2089
+ Fixed a crash bug in connection with debugger unloading.
2090
+
2091
+ Fixed a crash bug in the code generator caused by losing the
2092
+ information that a frame element was copied.
2093
+
2094
+ Fixed an exception propagation bug that could cause non-null
2095
+ return values when exceptions were thrown.
2096
+
2097
+
2098
+ 2009-03-30: Version 1.1.4
2099
+
2100
+ Optimized String.prototype.match.
2101
+
2102
+ Improved the stack information in profiles.
2103
+
2104
+ Fixed bug in ARM port making it possible to compile the runtime
2105
+ system for thumb mode again.
2106
+
2107
+ Implemented a number of optimizations in the code generator.
2108
+
2109
+ Fixed a number of memory leaks in tests.
2110
+
2111
+ Fixed crash bug in connection with script source code and external
2112
+ strings.
2113
+
2114
+
2115
+ 2009-03-24: Version 1.1.3
2116
+
2117
+ Fixed assertion failures in compilation of loop conditions.
2118
+
2119
+ Removed STL dependency from developer shell (d8).
2120
+
2121
+ Added infrastructure for protecting the V8 heap from corruption
2122
+ caused by memory modifications from the outside.
2123
+
2124
+
2125
+ 2009-03-24: Version 1.1.2
2126
+
2127
+ Improved frame merge code generated by the code generator.
2128
+
2129
+ Optimized String.prototype.replace.
2130
+
2131
+ Implemented __defineGetter__ and __defineSetter__ for properties
2132
+ with integer keys on non-array objects.
2133
+
2134
+ Improved debugger and profiler support.
2135
+
2136
+ Fixed a number of portability issues to allow compilation for
2137
+ smaller ARM devices.
2138
+
2139
+ Exposed object cloning through the API.
2140
+
2141
+ Implemented hidden properties. This is used to expose an identity
2142
+ hash for objects through the API.
2143
+
2144
+ Implemented restarting of regular expressions if their input
2145
+ string changes representation during preemption.
2146
+
2147
+ Fixed a code generator bug that could cause assignments in loops
2148
+ to be ignored if using continue to break out of the loop (issue
2149
+ 284).
2150
+
2151
+
2152
+ 2009-03-12: Version 1.1.1
2153
+
2154
+ Fixed an assertion in the new compiler to take stack overflow
2155
+ exceptions into account.
2156
+
2157
+ Removed exception propagation code that could cause crashes.
2158
+
2159
+ Fixed minor bug in debugger line number computations.
2160
+
2161
+ 8-byte align the C stack on Linux and Windows to speed up floating
2162
+ point computations.
2163
+
2164
+
2165
+ 2009-03-12: Version 1.1.0
2166
+
2167
+ Improved code generation infrastructure by doing simple register
2168
+ allocation and constant folding and propagation.
2169
+
2170
+ Optimized regular expression matching by avoiding to create
2171
+ intermediate string arrays and by flattening nested array
2172
+ representations of RegExp data.
2173
+
2174
+ Traverse a few stack frames when recording profiler samples to
2175
+ include partial call graphs in the profiling output.
2176
+
2177
+ Added support for using OProfile to profile generated code.
2178
+
2179
+ Added remote debugging support to the D8 developer shell.
2180
+
2181
+ Optimized creation of nested literals like JSON objects.
2182
+
2183
+ Fixed a bug in garbage collecting unused maps and turned it on by
2184
+ default (--collect-maps).
2185
+
2186
+ Added support for running tests under Valgrind.
2187
+
2188
+
2189
+ 2009-02-27: Version 1.0.3
2190
+
2191
+ Optimized double-to-integer conversions in bit operations by using
2192
+ SSE3 instructions if available.
2193
+
2194
+ Optimized initialization sequences that store to multiple
2195
+ properties of the same object.
2196
+
2197
+ Changed the D8 debugger frontend to use JSON messages.
2198
+
2199
+ Force garbage collections when disposing contexts.
2200
+
2201
+ Align code objects at 32-byte boundaries.
2202
+
2203
+
2204
+ 2009-02-25: Version 1.0.2
2205
+
2206
+ Improved profiling support by performing simple call stack
2207
+ sampling for ticks and by fixing a bug in the logging of code
2208
+ addresses.
2209
+
2210
+ Fixed a number of debugger issues.
2211
+
2212
+ Optimized code that uses eval.
2213
+
2214
+ Fixed a couple of bugs in the regular expression engine.
2215
+
2216
+ Reduced the size of generated code for certain regular expressions.
2217
+
2218
+ Removed JSCRE completely.
2219
+
2220
+ Fixed issue where test could not be run if there was a dot in the
2221
+ checkout path.
2222
+
2223
+
2224
+ 2009-02-13: Version 1.0.1
2225
+
2226
+ Fixed two crash-bugs in irregexp (issue 231 and 233).
2227
+
2228
+ Fixed a number of minor bugs (issue 87, 227 and 228).
2229
+
2230
+ Added support for morphing strings to external strings on demand
2231
+ to avoid having to create copies in the embedding code.
2232
+
2233
+ Removed experimental support for external symbol callbacks.
2234
+
2235
+
2236
+ 2009-02-09: Version 1.0.0
2237
+
2238
+ Fixed crash-bug in the code generation for case independent 16 bit
2239
+ backreferences.
2240
+
2241
+ Made shells more robust in the presence of string conversion
2242
+ failures (issue 224).
2243
+
2244
+ Fixed a potential infinite loop when attempting to resolve
2245
+ eval (issue 221).
2246
+
2247
+ Miscellaneous fixes to the new regular expression engine.
2248
+
2249
+ Reduced binary by stripping unneeded text from JavaScript library and
2250
+ minifying some JavaScript files.
2251
+
2252
+
2253
+ 2009-01-27: Version 0.4.9
2254
+
2255
+ Enabled new regular expression engine.
2256
+
2257
+ Made a number of changes to the debugger protocol.
2258
+
2259
+ Fixed a number of bugs in the preemption support.
2260
+
2261
+ Added -p option to the developer shell to run files in parallel
2262
+ using preemption.
2263
+
2264
+ Fixed a number of minor bugs (including issues 176, 187, 189, 192,
2265
+ 193, 198 and 201).
2266
+
2267
+ Fixed a number of bugs in the serialization/deserialization
2268
+ support for the ARM platform.
2269
+
2270
+
2271
+ 2009-01-19: Version 0.4.8.1
2272
+
2273
+ Minor patch to debugger support.
2274
+
2275
+
2276
+ 2009-01-16: Version 0.4.8
2277
+
2278
+ Fixed string length bug on ARM (issue 171).
2279
+
2280
+ Made most methods in the API const.
2281
+
2282
+ Optimized object literals by improving data locality.
2283
+
2284
+ Fixed bug that caused incomplete functions to be cached in case of
2285
+ stack overflow exceptions.
2286
+
2287
+ Fixed bugs that caused catch variables and variables introduced by
2288
+ eval to behave incorrectly when using accessors (issues 186, 190
2289
+ and 191).
2290
+
2291
+
2292
+ 2009-01-06: Version 0.4.7
2293
+
2294
+ Minor bugfixes and optimizations.
2295
+
2296
+ Added command line debugger to D8 shell.
2297
+
2298
+ Fixed subtle bug that caused the wrong 'this' to be used when
2299
+ calling a caught function in a catch clause.
2300
+
2301
+ Inline array loads within loops directly in the code instead of
2302
+ always calling a stub.
2303
+
2304
+
2305
+ 2008-12-11: Version 0.4.6
2306
+
2307
+ Fixed exception reporting bug where certain exceptions were
2308
+ incorrectly reported as uncaught.
2309
+
2310
+ Improved the memory allocation strategy used during compilation to
2311
+ make running out of memory when compiling huge scripts less
2312
+ likely.
2313
+
2314
+ Optimized String.replace by avoiding the construction of certain
2315
+ sub strings.
2316
+
2317
+ Fixed bug in code generation for large switch statements on ARM.
2318
+
2319
+ Fixed bug that caused V8 to change the global object template
2320
+ passed in by the user.
2321
+
2322
+ Changed the API for creating object groups used during garbage
2323
+ collection. Entire object groups are now passed to V8 instead of
2324
+ individual members of the groups.
2325
+
2326
+
2327
+ 2008-12-03: Version 0.4.5
2328
+
2329
+ Added experimental API support for allocating V8 symbols as
2330
+ external strings.
2331
+
2332
+ Fixed bugs in debugging support on ARM.
2333
+
2334
+ Changed eval implementation to correctly detect whether or not a
2335
+ call to eval is aliased.
2336
+
2337
+ Fixed bug caused by a combination of the compilation cache and
2338
+ dictionary probing in native code. The bug caused us to sometimes
2339
+ call functions that had not yet been compiled.
2340
+
2341
+ Added platform support for FreeBSD.
2342
+
2343
+ Added support for building V8 on Windows with either the shared or
2344
+ static version of MSVCRT
2345
+
2346
+ Added the v8::jscre namespace around the jscre functions to avoid
2347
+ link errors (duplicate symbols) when building Google Chrome.
2348
+
2349
+ Added support for calling a JavaScript function with the current
2350
+ debugger execution context as its argument to the debugger
2351
+ interface.
2352
+
2353
+ Changed the type of names of counters from wchar_t to char.
2354
+
2355
+ Changed the Windows system call used to compute daylight savings
2356
+ time. The system call that we used to use became four times
2357
+ slower on WinXP SP3.
2358
+
2359
+ Added support in the d8 developer shell for memory-mapped counters
2360
+ and added a stats-viewer tool.
2361
+
2362
+ Fixed bug in upper/lower case mappings (issue 149).
2363
+
2364
+
2365
+ 2008-11-17: Version 0.4.4
2366
+
2367
+ Reduced code size by using shorter instruction encoding when
2368
+ possible.
2369
+
2370
+ Added a --help option to the shell sample and to the d8 shell.
2371
+
2372
+ Added visual studio project files for building the ARM simulator.
2373
+
2374
+ Fixed a number of ARM simulator issues.
2375
+
2376
+ Fixed bug in out-of-memory handling on ARM.
2377
+
2378
+ Implemented shell support for passing arguments to a script from
2379
+ the command line.
2380
+
2381
+ Fixed bug in date code that made certain date functions return -0
2382
+ instead of 0 for dates before the epoch.
2383
+
2384
+ Restricted applications of eval so it can only be used in the
2385
+ context of the associated global object.
2386
+
2387
+ Treat byte-order marks as whitespace characters.
2388
+
2389
+
2390
+ 2008-11-04: Version 0.4.3
2391
+
2392
+ Added support for API accessors that prohibit overwriting by
2393
+ accessors defined in JavaScript code by using __defineGetter__ and
2394
+ __defineSetter__.
2395
+
2396
+ Improved handling of conditionals in test status files.
2397
+
2398
+ Introduced access control in propertyIsEnumerable.
2399
+
2400
+ Improved performance of some string operations by caching
2401
+ information about the type of the string between operations.
2402
+
2403
+ Fixed bug in fast-case code for switch statements that only have
2404
+ integer labels.
2405
+
2406
+
2407
+ 2008-10-30: Version 0.4.2
2408
+
2409
+ Improved performance of Array.prototype.concat by moving the
2410
+ implementation to C++ (issue 123).
2411
+
2412
+ Fixed heap growth policy to avoid growing old space to its maximum
2413
+ capacity before doing a garbage collection and fixed issue that
2414
+ would lead to artificial out of memory situations (issue 129).
2415
+
2416
+ Fixed Date.prototype.toLocaleDateString to return the date in the
2417
+ same format as WebKit.
2418
+
2419
+ Added missing initialization checks to debugger API.
2420
+
2421
+ Added removing of unused maps during GC.
2422
+
2423
+
2424
+ 2008-10-28: Version 0.4.1
2425
+
2426
+ Added caching of RegExp data in compilation cache.
2427
+
2428
+ Added Visual Studio project file for d8 shell.
2429
+
2430
+ Fixed function call performance regression introduced in version
2431
+ 0.4.0 when splitting the global object in two parts (issue 120).
2432
+
2433
+ Fixed issue 131 by checking for empty handles before throwing and
2434
+ reporting exceptions.
2435
+
2436
+
2437
+ 2008-10-23: Version 0.4.0
2438
+
2439
+ Split the global object into two parts: The state holding global
2440
+ object and the global object proxy.
2441
+
2442
+ Fixed bug that affected the value of an assignment to an element
2443
+ in certain cases (issue 116).
2444
+
2445
+ Added GetPropertyNames functionality (issue 33) and extra Date
2446
+ functions (issue 77) to the API.
2447
+
2448
+ Changed WeakReferenceCallback to take a Persistent<Value> instead
2449
+ of a Persistent<Object> (issue 101).
2450
+
2451
+ Fixed issues with message reporting for exceptions in try-finally
2452
+ blocks (issues 73 and 75).
2453
+
2454
+ Optimized flattening of strings and string equality checking.
2455
+
2456
+ Improved Boyer-Moore implementation for faster indexOf operations.
2457
+
2458
+ Added development shell (d8) which includes counters and
2459
+ completion support.
2460
+
2461
+ Fixed problem with the receiver passed to functions called from
2462
+ eval (issue 124).
2463
+
2464
+
2465
+ 2008-10-16: Version 0.3.5
2466
+
2467
+ Improved string hash-code distribution by excluding bit-field bits
2468
+ from the hash-code.
2469
+
2470
+ Changed string search algorithm used in indexOf from KMP to
2471
+ Boyer-Moore.
2472
+
2473
+ Improved the generated code for the instanceof operator.
2474
+
2475
+ Improved performance of slow-case string equality checks by
2476
+ specializing the code based on the string representation.
2477
+
2478
+ Improve the handling of out-of-memory situations (issue 70).
2479
+
2480
+ Improved performance of strict equality checks.
2481
+
2482
+ Improved profiler output to make it easier to see anonymous
2483
+ functions.
2484
+
2485
+ Improved performance of slow-case keyed loads.
2486
+
2487
+ Improved property access performance by allocating a number of
2488
+ properties in the front object.
2489
+
2490
+ Changed the toString behavior on the built-in object constructors
2491
+ to print [native code] instead of the actual source. Some web
2492
+ applications do not like constructors with complex toString
2493
+ results.
2494
+
2495
+
2496
+ 2008-10-06: Version 0.3.4
2497
+
2498
+ Changed Array.prototype.sort to use quick sort.
2499
+
2500
+ Fixed code generation issue where leaving a finally block with
2501
+ break or continue would accumulate elements on the expression
2502
+ stack (issue 86).
2503
+
2504
+ Made sure that the name accessor on functions returns the expected
2505
+ names for builtin JavaScript functions and C++ callback functions.
2506
+
2507
+ Added fast case code for extending the property storage array of
2508
+ JavaScript objects.
2509
+
2510
+ Ported switch statement optimizations introduced in version 0.3.3
2511
+ to the ARM code generator.
2512
+
2513
+ Allowed GCC to use strict-aliasing rules when compiling.
2514
+
2515
+ Improved performance of arguments object allocation by taking care
2516
+ of arguments adaptor frames in the generated code.
2517
+
2518
+ Updated the V8 benchmark suite to version 2.
2519
+
2520
+
2521
+ 2008-09-25: Version 0.3.3
2522
+
2523
+ Improved handling of relocation information to enable more
2524
+ peep-hole optimizations.
2525
+
2526
+ Optimized switch statements where all labels are constant small
2527
+ integers.
2528
+
2529
+ Optimized String.prototype.indexOf for common cases.
2530
+
2531
+ Fixed more build issues (issue 80).
2532
+
2533
+ Fixed a couple of profiler issues.
2534
+
2535
+ Fixed bug where the body of a function created using the Function
2536
+ constructor was not allowed to end with a single-line comment
2537
+ (issue 85).
2538
+
2539
+ Improved handling of object literals by canonicalizing object
2540
+ literal maps. This will allow JSON objects with the same set of
2541
+ properties to share the same map making inline caching work better
2542
+ for JSON objects.
2543
+
2544
+
2545
+ 2008-09-17: Version 0.3.2
2546
+
2547
+ Generalized the EvalCache into a CompilationCache and enabled it
2548
+ for scripts too. The current strategy is to retire all entries
2549
+ whenever a mark-sweep collection is started.
2550
+
2551
+ Fixed bug where switch statements containing only a default case
2552
+ would lead to an unbalanced stack (issue 69).
2553
+
2554
+ Fixed bug that made access to the function in a named function
2555
+ expression impossible in certain situations (issue 24).
2556
+
2557
+ Fixed even more build issues.
2558
+
2559
+ Optimized calling conventions on ARM. The conventions on ARM and
2560
+ IA-32 now match.
2561
+
2562
+ Removed static initializers for flags and counters.
2563
+
2564
+ Improved inline caching behavior for uncommon cases where lazily
2565
+ loading Date and RegExp code could force certain code paths go
2566
+ megamorphic.
2567
+
2568
+ Removed arguments adaption for builtins written in C++. This
2569
+ makes Array.prototype.push and Array.prototype.pop slightly
2570
+ faster.
2571
+
2572
+
2573
+ 2008-09-11: Version 0.3.1
2574
+
2575
+ Fixed a number of build issues.
2576
+
2577
+ Fixed problem with missing I-cache flusing on ARM.
2578
+
2579
+ Changed space layout in memory management by splitting up
2580
+ code space into old data space and code space.
2581
+
2582
+ Added utf-8 conversion support to the API (issue 57).
2583
+
2584
+ Optimized repeated calls to eval with the same strings. These
2585
+ repeated calls are common in web applications.
2586
+
2587
+ Added Xcode project file.
2588
+
2589
+ Optimized a couple of Array operation.
2590
+
2591
+ Fixed parser bug by checking for end-of-string when parsing break
2592
+ and continue (issue 35).
2593
+
2594
+ Fixed problem where asian characters were not categorized as
2595
+ letters.
2596
+
2597
+ Fixed bug that disallowed calling functions fetched from an array
2598
+ using a string as an array index (issue 32).
2599
+
2600
+ Fixed bug where the internal field count on object templates were
2601
+ sometimes ignored (issue 54).
2602
+
2603
+ Added -f option to the shell sample for compatibility with other
2604
+ engines (issue 18).
2605
+
2606
+ Added source info to TryCatches in the API.
2607
+
2608
+ Fixed problem where the seed for the random number generator was
2609
+ clipped in a double to unsigned int conversion.
2610
+
2611
+ Fixed bug where cons string symbols were sometimes converted to
2612
+ non-symbol flat strings during GC.
2613
+
2614
+ Fixed bug in error reporting when attempting to convert null to an
2615
+ object.
2616
+
2617
+
2618
+ 2008-09-04: Version 0.3.0
2619
+
2620
+ Added support for running tests on the ARM simulator.
2621
+
2622
+ Fixed bug in the 'in' operator where negative indices were not
2623
+ treated correctly.
2624
+
2625
+ Fixed build issues on gcc-4.3.1.
2626
+
2627
+ Changed Date.prototype.toLocaleTimeString to not print the
2628
+ timezone part of the time.
2629
+
2630
+ Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
2631
+ with user code.
2632
+
2633
+
2634
+ 2008-09-02: Version 0.2.5
2635
+
2636
+ Renamed the top level directory 'public' to 'include'.
2637
+
2638
+ Added 'env' option to the SCons build scripts to support
2639
+ overriding the ENV part of the build environment. This is mostly
2640
+ to support Windows builds in cases where SCons cannot find the
2641
+ correct paths to the Windows SDK, as these paths cannot be passed
2642
+ through shell environment variables.
2643
+
2644
+ Enabled "Buffer Security Check" on for the Windows SCons build and
2645
+ added the linker option /OPT:ICF as an optimization.
2646
+
2647
+ Added the V8 benchmark suite to the repository.
2648
+
2649
+
2650
+ 2008-09-01: Version 0.2.4
2651
+
2652
+ Included mjsunit JavaScript test suite and C++ unit tests.
2653
+
2654
+ Changed the shell sample to not print the result of executing a
2655
+ script provided on the command line.
2656
+
2657
+ Fixed issue when building samples on Windows using a shared V8
2658
+ library. Added visibility option on Linux build which makes the
2659
+ generated library 18% smaller.
2660
+
2661
+ Changed build system to accept multiple build modes in one build
2662
+ and generate separate objects, libraries and executables for each
2663
+ mode.
2664
+
2665
+ Removed deferred negation optimization (a * -b => -(a * b)) since
2666
+ this visibly changes operand conversion order.
2667
+
2668
+ Improved parsing performance by introducing stack guard in
2669
+ preparsing. Without a stack guard preparsing always bails out
2670
+ with stack overflow.
2671
+
2672
+ Changed shell sample to take flags directly from the command-line.
2673
+ Added API call that implements this.
2674
+
2675
+ Added load, quit and version functions to the shell sample so it's
2676
+ easier to run benchmarks and tests.
2677
+
2678
+ Fixed issue with building samples and cctests on 64-bit machines.
2679
+
2680
+ Fixed bug in the runtime system where the prototype chain was not
2681
+ always searched for a setter when setting a property that does not
2682
+ exist locally.
2683
+
2684
+
2685
+ 2008-08-14: Version 0.2.3
2686
+
2687
+ Improved performance of garbage collection by moving the
2688
+ function that updates pointers during compacting collection
2689
+ into the updating visitor. This gives the compiler a better
2690
+ chance to inline and avoid a function call per (potential)
2691
+ pointer.
2692
+
2693
+ Extended the shell sample with a --runtime-flags option.
2694
+
2695
+ Added Visual Studio project files for the shell.cc and
2696
+ process.cc samples.
2697
+
2698
+
2699
+ 2008-08-13: Version 0.2.2
2700
+
2701
+ Improved performance of garbage collection by changing the way
2702
+ we use the marking stack in the event of stack overflow during
2703
+ full garbage collection and by changing the way we mark roots.
2704
+
2705
+ Cleaned up ARM version by removing top of stack caching and by
2706
+ introducing push/pop elimination.
2707
+
2708
+ Cleaned up the way runtime functions are called to allow
2709
+ runtime calls with no arguments.
2710
+
2711
+ Changed Windows build options to make sure that exceptions are
2712
+ disabled and that optimization flags are enabled.
2713
+
2714
+ Added first version of Visual Studio project files.
2715
+
2716
+
2717
+ 2008-08-06: Version 0.2.1
2718
+
2719
+ Improved performance of unary addition by avoiding runtime calls.
2720
+
2721
+ Fixed the handling of '>' and '<=' to use right-to-left conversion
2722
+ and left-to-right evaluation as specified by ECMA-262.
2723
+
2724
+ Fixed a branch elimination bug on the ARM platform where incorrect
2725
+ code was generated because of overly aggressive branch
2726
+ elimination.
2727
+
2728
+ Improved performance of code that repeatedly assigns the same
2729
+ function to the same property of different objects with the same
2730
+ map.
2731
+
2732
+ Untangled DEBUG and ENABLE_DISASSEMBLER defines. The disassembler
2733
+ no longer expects DEBUG to be defined.
2734
+
2735
+ Added platform-nullos.cc to serve as the basis for new platform
2736
+ implementations.
2737
+
2738
+
2739
+ 2008-07-30: Version 0.2.0
2740
+
2741
+ Changed all text files to have native svn:eol-style.
2742
+
2743
+ Added a few samples and support for building them. The samples
2744
+ include a simple shell that can be used to benchmark and test V8.
2745
+
2746
+ Changed V8::GetVersion to return the version as a string.
2747
+
2748
+ Added source for lazily loaded scripts to snapshots and made
2749
+ serialization non-destructive.
2750
+
2751
+ Improved ARM support by fixing the write barrier code to use
2752
+ aligned loads and stores and by removing premature locals
2753
+ optimization that relied on broken support for callee-saved
2754
+ registers (removed).
2755
+
2756
+ Refactored the code for marking live objects during garbage
2757
+ collection and the code for allocating objects in paged
2758
+ spaces. Introduced an abstraction for the map word of a heap-
2759
+ allocated object and changed the memory allocator to allocate
2760
+ executable memory only for spaces that may contain code objects.
2761
+
2762
+ Moved StringBuilder to utils.h and ScopedLock to platform.h, where
2763
+ they can be used by debugging and logging modules. Added
2764
+ thread-safe message queues for dealing with debugger events.
2765
+
2766
+ Fixed the source code reported by toString for certain builtin
2767
+ empty functions and made sure that the prototype property of a
2768
+ function is enumerable.
2769
+
2770
+ Improved performance of converting values to condition flags in
2771
+ generated code.
2772
+
2773
+ Merged disassembler-{arch} files.
2774
+
2775
+
2776
+ 2008-07-28: Version 0.1.4
2777
+
2778
+ Added support for storing JavaScript stack traces in a stack
2779
+ allocated buffer to make it visible in shallow core dumps.
2780
+ Controlled by the --preallocate-message-memory flag which is
2781
+ disabled by default.
2782
+
2783
+
2784
+ 2008-07-25: Version 0.1.3
2785
+
2786
+ Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
2787
+ map transitions would count as properties.
2788
+
2789
+ Allowed aliased eval invocations by treating them as evals in the
2790
+ global context. This may change in the future.
2791
+
2792
+ Added support for accessing the last entered context through the
2793
+ API and renamed Context::Current to Context::GetCurrent and
2794
+ Context::GetSecurityContext to Context::GetCurrentSecurityContext.
2795
+
2796
+ Fixed bug in the debugger that would cause the debugger scripts to
2797
+ be recursively loaded and changed all disabling of interrupts to
2798
+ be block-structured.
2799
+
2800
+ Made snapshot data read-only to allow it to be more easily shared
2801
+ across multiple users of V8 when linked as a shared library.
2802
+
2803
+
2804
+ 2008-07-16: Version 0.1.2
2805
+
2806
+ Fixed building on Mac OS X by recognizing i386 and friends as
2807
+ IA-32 platforms.
2808
+
2809
+ Added propagation of stack overflow exceptions that occur while
2810
+ compiling nested functions.
2811
+
2812
+ Improved debugger with support for recursive break points and
2813
+ handling of exceptions that occur in the debugger JavaScript code.
2814
+
2815
+ Renamed GetInternal to GetInternalField and SetInternal to
2816
+ SetInternalField in the API and moved InternalFieldCount and
2817
+ SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
2818
+
2819
+
2820
+ 2008-07-09: Version 0.1.1
2821
+
2822
+ Fixed bug in stack overflow check code for IA-32 targets where a
2823
+ non-tagged value in register eax was pushed to the stack.
2824
+
2825
+ Fixed potential quadratic behavior when converting strings to
2826
+ numbers.
2827
+
2828
+ Fixed bug where the return value from Object::SetProperty could
2829
+ end up being the property holder instead of the written value.
2830
+
2831
+ Improved debugger support by allowing nested break points and by
2832
+ dealing with stack-overflows when compiling functions before
2833
+ setting break points in them.
2834
+
2835
+
2836
+ 2008-07-03: Version 0.1.0
2837
+
2838
+ Initial export.
2839
+