johnson 2.0.0.pre1 → 2.0.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (311) hide show
  1. data/CHANGELOG.rdoc +12 -0
  2. data/Manifest.txt +4 -285
  3. data/Rakefile +13 -20
  4. data/ext/tracemonkey/global.cc +4 -1
  5. data/ext/tracemonkey/js.cc +30 -33
  6. data/ext/tracemonkey/runtime.cc +96 -6
  7. data/ext/tracemonkey/split_global.cc +0 -5
  8. data/ext/tracemonkey/tracemonkey.h +2 -2
  9. data/lib/johnson.rb +2 -2
  10. data/lib/johnson/runtime.rb +25 -15
  11. data/lib/johnson/tracemonkey/runtime.rb +6 -3
  12. data/vendor/tracemonkey/config/system-headers +1 -3
  13. data/vendor/tracemonkey/jscntxt.h +5 -2
  14. data/vendor/tracemonkey/jsdbgapi.cpp +9 -1
  15. data/vendor/tracemonkey/jsdbgapi.h +4 -0
  16. data/vendor/tracemonkey/tests/ecma/NativeObjects/browser.js +0 -0
  17. data/vendor/tracemonkey/tests/ecma/NativeObjects/jstests.list +0 -0
  18. data/vendor/tracemonkey/tests/ecma_3_1/Object/jstests.list +1 -1
  19. data/vendor/tracemonkey/tests/js1_3/misc/browser.js +0 -0
  20. data/vendor/tracemonkey/tests/js1_3/misc/jstests.list +0 -0
  21. data/vendor/tracemonkey/tests/js1_5/Regress/jstests.list +4 -4
  22. data/vendor/tracemonkey/tests/js1_5/Scope/jstests.list +1 -1
  23. data/vendor/tracemonkey/tests/js1_5/decompilation/jstests.list +2 -2
  24. data/vendor/tracemonkey/tests/js1_7/decompilation/jstests.list +1 -1
  25. data/vendor/tracemonkey/tests/shell.js +2 -1
  26. metadata +51 -309
  27. data/ext/spidermonkey/context.c +0 -116
  28. data/ext/spidermonkey/context.h +0 -19
  29. data/ext/spidermonkey/conversions.c +0 -361
  30. data/ext/spidermonkey/conversions.h +0 -31
  31. data/ext/spidermonkey/debugger.c +0 -234
  32. data/ext/spidermonkey/debugger.h +0 -10
  33. data/ext/spidermonkey/extconf.rb +0 -32
  34. data/ext/spidermonkey/extensions.c +0 -37
  35. data/ext/spidermonkey/extensions.h +0 -12
  36. data/ext/spidermonkey/global.c +0 -40
  37. data/ext/spidermonkey/global.h +0 -11
  38. data/ext/spidermonkey/idhash.c +0 -16
  39. data/ext/spidermonkey/idhash.h +0 -8
  40. data/ext/spidermonkey/immutable_node.c +0 -1153
  41. data/ext/spidermonkey/immutable_node.c.erb +0 -523
  42. data/ext/spidermonkey/immutable_node.h +0 -22
  43. data/ext/spidermonkey/jroot.h +0 -197
  44. data/ext/spidermonkey/js_land_proxy.c +0 -620
  45. data/ext/spidermonkey/js_land_proxy.h +0 -20
  46. data/ext/spidermonkey/ruby_land_proxy.c +0 -618
  47. data/ext/spidermonkey/ruby_land_proxy.h +0 -38
  48. data/ext/spidermonkey/runtime.c +0 -396
  49. data/ext/spidermonkey/runtime.h +0 -27
  50. data/ext/spidermonkey/spidermonkey.c +0 -22
  51. data/ext/spidermonkey/spidermonkey.h +0 -29
  52. data/lib/johnson/spidermonkey.rb +0 -12
  53. data/lib/johnson/spidermonkey/context.rb +0 -10
  54. data/lib/johnson/spidermonkey/debugger.rb +0 -67
  55. data/lib/johnson/spidermonkey/immutable_node.rb +0 -282
  56. data/lib/johnson/spidermonkey/js_land_proxy.rb +0 -64
  57. data/lib/johnson/spidermonkey/mutable_tree_visitor.rb +0 -242
  58. data/lib/johnson/spidermonkey/ruby_land_proxy.rb +0 -17
  59. data/lib/johnson/spidermonkey/runtime.rb +0 -74
  60. data/test/johnson/spidermonkey/context_test.rb +0 -21
  61. data/test/johnson/spidermonkey/immutable_node_test.rb +0 -34
  62. data/test/johnson/spidermonkey/js_land_proxy_test.rb +0 -273
  63. data/test/johnson/spidermonkey/ruby_land_proxy_test.rb +0 -274
  64. data/test/johnson/spidermonkey/runtime_test.rb +0 -41
  65. data/vendor/spidermonkey/.cvsignore +0 -9
  66. data/vendor/spidermonkey/Makefile.in +0 -449
  67. data/vendor/spidermonkey/Makefile.ref +0 -365
  68. data/vendor/spidermonkey/README.html +0 -820
  69. data/vendor/spidermonkey/SpiderMonkey.rsp +0 -12
  70. data/vendor/spidermonkey/Y.js +0 -19
  71. data/vendor/spidermonkey/build.mk +0 -43
  72. data/vendor/spidermonkey/config.mk +0 -192
  73. data/vendor/spidermonkey/config/AIX4.1.mk +0 -65
  74. data/vendor/spidermonkey/config/AIX4.2.mk +0 -64
  75. data/vendor/spidermonkey/config/AIX4.3.mk +0 -65
  76. data/vendor/spidermonkey/config/Darwin.mk +0 -83
  77. data/vendor/spidermonkey/config/Darwin1.3.mk +0 -81
  78. data/vendor/spidermonkey/config/Darwin1.4.mk +0 -41
  79. data/vendor/spidermonkey/config/Darwin5.2.mk +0 -81
  80. data/vendor/spidermonkey/config/Darwin5.3.mk +0 -81
  81. data/vendor/spidermonkey/config/HP-UXB.10.10.mk +0 -77
  82. data/vendor/spidermonkey/config/HP-UXB.10.20.mk +0 -77
  83. data/vendor/spidermonkey/config/HP-UXB.11.00.mk +0 -80
  84. data/vendor/spidermonkey/config/IRIX.mk +0 -87
  85. data/vendor/spidermonkey/config/IRIX5.3.mk +0 -44
  86. data/vendor/spidermonkey/config/IRIX6.1.mk +0 -44
  87. data/vendor/spidermonkey/config/IRIX6.2.mk +0 -44
  88. data/vendor/spidermonkey/config/IRIX6.3.mk +0 -44
  89. data/vendor/spidermonkey/config/IRIX6.5.mk +0 -44
  90. data/vendor/spidermonkey/config/Linux_All.mk +0 -103
  91. data/vendor/spidermonkey/config/Mac_OS10.0.mk +0 -82
  92. data/vendor/spidermonkey/config/OSF1V4.0.mk +0 -72
  93. data/vendor/spidermonkey/config/OSF1V5.0.mk +0 -69
  94. data/vendor/spidermonkey/config/SunOS4.1.4.mk +0 -101
  95. data/vendor/spidermonkey/config/SunOS5.10.mk +0 -50
  96. data/vendor/spidermonkey/config/SunOS5.3.mk +0 -91
  97. data/vendor/spidermonkey/config/SunOS5.4.mk +0 -92
  98. data/vendor/spidermonkey/config/SunOS5.5.1.mk +0 -44
  99. data/vendor/spidermonkey/config/SunOS5.5.mk +0 -87
  100. data/vendor/spidermonkey/config/SunOS5.6.mk +0 -89
  101. data/vendor/spidermonkey/config/SunOS5.7.mk +0 -44
  102. data/vendor/spidermonkey/config/SunOS5.8.mk +0 -44
  103. data/vendor/spidermonkey/config/SunOS5.9.mk +0 -44
  104. data/vendor/spidermonkey/config/WINNT4.0.mk +0 -117
  105. data/vendor/spidermonkey/config/WINNT5.0.mk +0 -117
  106. data/vendor/spidermonkey/config/WINNT5.1.mk +0 -117
  107. data/vendor/spidermonkey/config/WINNT5.2.mk +0 -117
  108. data/vendor/spidermonkey/config/WINNT6.0.mk +0 -117
  109. data/vendor/spidermonkey/config/dgux.mk +0 -64
  110. data/vendor/spidermonkey/editline/Makefile.ref +0 -144
  111. data/vendor/spidermonkey/editline/README +0 -83
  112. data/vendor/spidermonkey/editline/editline.3 +0 -175
  113. data/vendor/spidermonkey/editline/editline.c +0 -1369
  114. data/vendor/spidermonkey/editline/editline.h +0 -135
  115. data/vendor/spidermonkey/editline/sysunix.c +0 -182
  116. data/vendor/spidermonkey/editline/unix.h +0 -82
  117. data/vendor/spidermonkey/fdlibm/.cvsignore +0 -7
  118. data/vendor/spidermonkey/fdlibm/Makefile.in +0 -127
  119. data/vendor/spidermonkey/fdlibm/Makefile.ref +0 -192
  120. data/vendor/spidermonkey/fdlibm/e_acos.c +0 -147
  121. data/vendor/spidermonkey/fdlibm/e_acosh.c +0 -105
  122. data/vendor/spidermonkey/fdlibm/e_asin.c +0 -156
  123. data/vendor/spidermonkey/fdlibm/e_atan2.c +0 -165
  124. data/vendor/spidermonkey/fdlibm/e_atanh.c +0 -110
  125. data/vendor/spidermonkey/fdlibm/e_cosh.c +0 -133
  126. data/vendor/spidermonkey/fdlibm/e_exp.c +0 -202
  127. data/vendor/spidermonkey/fdlibm/e_fmod.c +0 -184
  128. data/vendor/spidermonkey/fdlibm/e_gamma.c +0 -71
  129. data/vendor/spidermonkey/fdlibm/e_gamma_r.c +0 -70
  130. data/vendor/spidermonkey/fdlibm/e_hypot.c +0 -173
  131. data/vendor/spidermonkey/fdlibm/e_j0.c +0 -524
  132. data/vendor/spidermonkey/fdlibm/e_j1.c +0 -523
  133. data/vendor/spidermonkey/fdlibm/e_jn.c +0 -315
  134. data/vendor/spidermonkey/fdlibm/e_lgamma.c +0 -71
  135. data/vendor/spidermonkey/fdlibm/e_lgamma_r.c +0 -347
  136. data/vendor/spidermonkey/fdlibm/e_log.c +0 -184
  137. data/vendor/spidermonkey/fdlibm/e_log10.c +0 -134
  138. data/vendor/spidermonkey/fdlibm/e_pow.c +0 -386
  139. data/vendor/spidermonkey/fdlibm/e_rem_pio2.c +0 -222
  140. data/vendor/spidermonkey/fdlibm/e_remainder.c +0 -120
  141. data/vendor/spidermonkey/fdlibm/e_scalb.c +0 -89
  142. data/vendor/spidermonkey/fdlibm/e_sinh.c +0 -122
  143. data/vendor/spidermonkey/fdlibm/e_sqrt.c +0 -497
  144. data/vendor/spidermonkey/fdlibm/fdlibm.h +0 -273
  145. data/vendor/spidermonkey/fdlibm/fdlibm.mak +0 -1453
  146. data/vendor/spidermonkey/fdlibm/fdlibm.mdp +0 -0
  147. data/vendor/spidermonkey/fdlibm/k_cos.c +0 -135
  148. data/vendor/spidermonkey/fdlibm/k_rem_pio2.c +0 -354
  149. data/vendor/spidermonkey/fdlibm/k_sin.c +0 -114
  150. data/vendor/spidermonkey/fdlibm/k_standard.c +0 -785
  151. data/vendor/spidermonkey/fdlibm/k_tan.c +0 -170
  152. data/vendor/spidermonkey/fdlibm/s_asinh.c +0 -101
  153. data/vendor/spidermonkey/fdlibm/s_atan.c +0 -175
  154. data/vendor/spidermonkey/fdlibm/s_cbrt.c +0 -133
  155. data/vendor/spidermonkey/fdlibm/s_ceil.c +0 -120
  156. data/vendor/spidermonkey/fdlibm/s_copysign.c +0 -72
  157. data/vendor/spidermonkey/fdlibm/s_cos.c +0 -118
  158. data/vendor/spidermonkey/fdlibm/s_erf.c +0 -356
  159. data/vendor/spidermonkey/fdlibm/s_expm1.c +0 -267
  160. data/vendor/spidermonkey/fdlibm/s_fabs.c +0 -70
  161. data/vendor/spidermonkey/fdlibm/s_finite.c +0 -71
  162. data/vendor/spidermonkey/fdlibm/s_floor.c +0 -121
  163. data/vendor/spidermonkey/fdlibm/s_frexp.c +0 -99
  164. data/vendor/spidermonkey/fdlibm/s_ilogb.c +0 -85
  165. data/vendor/spidermonkey/fdlibm/s_isnan.c +0 -74
  166. data/vendor/spidermonkey/fdlibm/s_ldexp.c +0 -66
  167. data/vendor/spidermonkey/fdlibm/s_lib_version.c +0 -73
  168. data/vendor/spidermonkey/fdlibm/s_log1p.c +0 -211
  169. data/vendor/spidermonkey/fdlibm/s_logb.c +0 -79
  170. data/vendor/spidermonkey/fdlibm/s_matherr.c +0 -64
  171. data/vendor/spidermonkey/fdlibm/s_modf.c +0 -132
  172. data/vendor/spidermonkey/fdlibm/s_nextafter.c +0 -124
  173. data/vendor/spidermonkey/fdlibm/s_rint.c +0 -131
  174. data/vendor/spidermonkey/fdlibm/s_scalbn.c +0 -107
  175. data/vendor/spidermonkey/fdlibm/s_signgam.c +0 -40
  176. data/vendor/spidermonkey/fdlibm/s_significand.c +0 -68
  177. data/vendor/spidermonkey/fdlibm/s_sin.c +0 -118
  178. data/vendor/spidermonkey/fdlibm/s_tan.c +0 -112
  179. data/vendor/spidermonkey/fdlibm/s_tanh.c +0 -122
  180. data/vendor/spidermonkey/fdlibm/w_acos.c +0 -78
  181. data/vendor/spidermonkey/fdlibm/w_acosh.c +0 -78
  182. data/vendor/spidermonkey/fdlibm/w_asin.c +0 -80
  183. data/vendor/spidermonkey/fdlibm/w_atan2.c +0 -79
  184. data/vendor/spidermonkey/fdlibm/w_atanh.c +0 -81
  185. data/vendor/spidermonkey/fdlibm/w_cosh.c +0 -77
  186. data/vendor/spidermonkey/fdlibm/w_exp.c +0 -88
  187. data/vendor/spidermonkey/fdlibm/w_fmod.c +0 -78
  188. data/vendor/spidermonkey/fdlibm/w_gamma.c +0 -85
  189. data/vendor/spidermonkey/fdlibm/w_gamma_r.c +0 -81
  190. data/vendor/spidermonkey/fdlibm/w_hypot.c +0 -78
  191. data/vendor/spidermonkey/fdlibm/w_j0.c +0 -105
  192. data/vendor/spidermonkey/fdlibm/w_j1.c +0 -106
  193. data/vendor/spidermonkey/fdlibm/w_jn.c +0 -128
  194. data/vendor/spidermonkey/fdlibm/w_lgamma.c +0 -85
  195. data/vendor/spidermonkey/fdlibm/w_lgamma_r.c +0 -81
  196. data/vendor/spidermonkey/fdlibm/w_log.c +0 -78
  197. data/vendor/spidermonkey/fdlibm/w_log10.c +0 -81
  198. data/vendor/spidermonkey/fdlibm/w_pow.c +0 -99
  199. data/vendor/spidermonkey/fdlibm/w_remainder.c +0 -77
  200. data/vendor/spidermonkey/fdlibm/w_scalb.c +0 -95
  201. data/vendor/spidermonkey/fdlibm/w_sinh.c +0 -77
  202. data/vendor/spidermonkey/fdlibm/w_sqrt.c +0 -77
  203. data/vendor/spidermonkey/javascript-trace.d +0 -73
  204. data/vendor/spidermonkey/js.c +0 -3951
  205. data/vendor/spidermonkey/js.mdp +0 -0
  206. data/vendor/spidermonkey/js.msg +0 -308
  207. data/vendor/spidermonkey/js.pkg +0 -2
  208. data/vendor/spidermonkey/js3240.rc +0 -79
  209. data/vendor/spidermonkey/jsOS240.def +0 -654
  210. data/vendor/spidermonkey/jsapi.c +0 -5836
  211. data/vendor/spidermonkey/jsapi.h +0 -2624
  212. data/vendor/spidermonkey/jsarena.c +0 -450
  213. data/vendor/spidermonkey/jsarena.h +0 -318
  214. data/vendor/spidermonkey/jsarray.c +0 -2996
  215. data/vendor/spidermonkey/jsarray.h +0 -127
  216. data/vendor/spidermonkey/jsatom.c +0 -1045
  217. data/vendor/spidermonkey/jsatom.h +0 -442
  218. data/vendor/spidermonkey/jsbit.h +0 -253
  219. data/vendor/spidermonkey/jsbool.c +0 -176
  220. data/vendor/spidermonkey/jsbool.h +0 -73
  221. data/vendor/spidermonkey/jsclist.h +0 -139
  222. data/vendor/spidermonkey/jscntxt.c +0 -1348
  223. data/vendor/spidermonkey/jscntxt.h +0 -1120
  224. data/vendor/spidermonkey/jscompat.h +0 -57
  225. data/vendor/spidermonkey/jsconfig.h +0 -248
  226. data/vendor/spidermonkey/jsconfig.mk +0 -181
  227. data/vendor/spidermonkey/jscpucfg.c +0 -396
  228. data/vendor/spidermonkey/jscpucfg.h +0 -212
  229. data/vendor/spidermonkey/jsdate.c +0 -2390
  230. data/vendor/spidermonkey/jsdate.h +0 -124
  231. data/vendor/spidermonkey/jsdbgapi.c +0 -1802
  232. data/vendor/spidermonkey/jsdbgapi.h +0 -464
  233. data/vendor/spidermonkey/jsdhash.c +0 -868
  234. data/vendor/spidermonkey/jsdhash.h +0 -592
  235. data/vendor/spidermonkey/jsdtoa.c +0 -3167
  236. data/vendor/spidermonkey/jsdtoa.h +0 -130
  237. data/vendor/spidermonkey/jsdtracef.c +0 -317
  238. data/vendor/spidermonkey/jsdtracef.h +0 -77
  239. data/vendor/spidermonkey/jsemit.c +0 -6909
  240. data/vendor/spidermonkey/jsemit.h +0 -741
  241. data/vendor/spidermonkey/jsexn.c +0 -1371
  242. data/vendor/spidermonkey/jsexn.h +0 -96
  243. data/vendor/spidermonkey/jsfile.c +0 -2736
  244. data/vendor/spidermonkey/jsfile.h +0 -56
  245. data/vendor/spidermonkey/jsfile.msg +0 -90
  246. data/vendor/spidermonkey/jsfun.c +0 -2634
  247. data/vendor/spidermonkey/jsfun.h +0 -254
  248. data/vendor/spidermonkey/jsgc.c +0 -3562
  249. data/vendor/spidermonkey/jsgc.h +0 -403
  250. data/vendor/spidermonkey/jshash.c +0 -476
  251. data/vendor/spidermonkey/jshash.h +0 -151
  252. data/vendor/spidermonkey/jsify.pl +0 -485
  253. data/vendor/spidermonkey/jsinterp.c +0 -7007
  254. data/vendor/spidermonkey/jsinterp.h +0 -525
  255. data/vendor/spidermonkey/jsinvoke.c +0 -43
  256. data/vendor/spidermonkey/jsiter.c +0 -1067
  257. data/vendor/spidermonkey/jsiter.h +0 -122
  258. data/vendor/spidermonkey/jskeyword.tbl +0 -124
  259. data/vendor/spidermonkey/jskwgen.c +0 -460
  260. data/vendor/spidermonkey/jslibmath.h +0 -266
  261. data/vendor/spidermonkey/jslock.c +0 -1309
  262. data/vendor/spidermonkey/jslock.h +0 -313
  263. data/vendor/spidermonkey/jslocko.asm +0 -60
  264. data/vendor/spidermonkey/jslog2.c +0 -94
  265. data/vendor/spidermonkey/jslong.c +0 -264
  266. data/vendor/spidermonkey/jslong.h +0 -412
  267. data/vendor/spidermonkey/jsmath.c +0 -567
  268. data/vendor/spidermonkey/jsmath.h +0 -57
  269. data/vendor/spidermonkey/jsnum.c +0 -1239
  270. data/vendor/spidermonkey/jsnum.h +0 -283
  271. data/vendor/spidermonkey/jsobj.c +0 -5282
  272. data/vendor/spidermonkey/jsobj.h +0 -709
  273. data/vendor/spidermonkey/jsopcode.c +0 -5245
  274. data/vendor/spidermonkey/jsopcode.h +0 -394
  275. data/vendor/spidermonkey/jsopcode.tbl +0 -523
  276. data/vendor/spidermonkey/jsotypes.h +0 -202
  277. data/vendor/spidermonkey/jsparse.c +0 -6704
  278. data/vendor/spidermonkey/jsparse.h +0 -511
  279. data/vendor/spidermonkey/jsprf.c +0 -1264
  280. data/vendor/spidermonkey/jsprf.h +0 -150
  281. data/vendor/spidermonkey/jsproto.tbl +0 -128
  282. data/vendor/spidermonkey/jsprvtd.h +0 -267
  283. data/vendor/spidermonkey/jspubtd.h +0 -744
  284. data/vendor/spidermonkey/jsregexp.c +0 -4364
  285. data/vendor/spidermonkey/jsregexp.h +0 -183
  286. data/vendor/spidermonkey/jsreops.tbl +0 -145
  287. data/vendor/spidermonkey/jsscan.c +0 -2012
  288. data/vendor/spidermonkey/jsscan.h +0 -387
  289. data/vendor/spidermonkey/jsscope.c +0 -1957
  290. data/vendor/spidermonkey/jsscope.h +0 -418
  291. data/vendor/spidermonkey/jsscript.c +0 -1832
  292. data/vendor/spidermonkey/jsscript.h +0 -287
  293. data/vendor/spidermonkey/jsshell.msg +0 -50
  294. data/vendor/spidermonkey/jsstddef.h +0 -83
  295. data/vendor/spidermonkey/jsstr.c +0 -5005
  296. data/vendor/spidermonkey/jsstr.h +0 -641
  297. data/vendor/spidermonkey/jstypes.h +0 -475
  298. data/vendor/spidermonkey/jsutil.c +0 -345
  299. data/vendor/spidermonkey/jsutil.h +0 -157
  300. data/vendor/spidermonkey/jsxdrapi.c +0 -800
  301. data/vendor/spidermonkey/jsxdrapi.h +0 -218
  302. data/vendor/spidermonkey/jsxml.c +0 -8476
  303. data/vendor/spidermonkey/jsxml.h +0 -349
  304. data/vendor/spidermonkey/lock_SunOS.s +0 -119
  305. data/vendor/spidermonkey/perfect.js +0 -39
  306. data/vendor/spidermonkey/plify_jsdhash.sed +0 -36
  307. data/vendor/spidermonkey/prmjtime.c +0 -846
  308. data/vendor/spidermonkey/prmjtime.h +0 -103
  309. data/vendor/spidermonkey/resource.h +0 -15
  310. data/vendor/spidermonkey/rules.mk +0 -197
  311. data/vendor/spidermonkey/win32.order +0 -384
@@ -1,3 +1,15 @@
1
+ === 2.0.0.pre2 / 2010-02-23
2
+
3
+ * Raise NoMemoryError as appropriate; acccept a size parameter or env variable for runtime size
4
+ * pull latest 1.9.2 SM
5
+ * Allow ruby code to create new gobal objects and add preliminary seal support
6
+ * Clear parent and prototype on new globals
7
+ * Cooperate with StackDeck's new backtrace-manipulating ways.
8
+ * remove thread ref to context (allows collection)
9
+ * Bump Hoe and Rake Compiler deps. Automatically grab submodules.
10
+ * Remove the old spidermonkey extension.
11
+ * Fix include guard for base TM header [Quin Hoxie]
12
+
1
13
  === 2.0.0.pre1 / 2010-02-11
2
14
 
3
15
  * Split global fix; covers all known issues
@@ -4,31 +4,6 @@ Manifest.txt
4
4
  README.rdoc
5
5
  Rakefile
6
6
  bin/johnson
7
- ext/spidermonkey/context.c
8
- ext/spidermonkey/context.h
9
- ext/spidermonkey/conversions.c
10
- ext/spidermonkey/conversions.h
11
- ext/spidermonkey/debugger.c
12
- ext/spidermonkey/debugger.h
13
- ext/spidermonkey/extconf.rb
14
- ext/spidermonkey/extensions.c
15
- ext/spidermonkey/extensions.h
16
- ext/spidermonkey/global.c
17
- ext/spidermonkey/global.h
18
- ext/spidermonkey/idhash.c
19
- ext/spidermonkey/idhash.h
20
- ext/spidermonkey/immutable_node.c
21
- ext/spidermonkey/immutable_node.c.erb
22
- ext/spidermonkey/immutable_node.h
23
- ext/spidermonkey/jroot.h
24
- ext/spidermonkey/js_land_proxy.c
25
- ext/spidermonkey/js_land_proxy.h
26
- ext/spidermonkey/ruby_land_proxy.c
27
- ext/spidermonkey/ruby_land_proxy.h
28
- ext/spidermonkey/runtime.c
29
- ext/spidermonkey/runtime.h
30
- ext/spidermonkey/spidermonkey.c
31
- ext/spidermonkey/spidermonkey.h
32
7
  ext/tracemonkey/context.cc
33
8
  ext/tracemonkey/context.h
34
9
  ext/tracemonkey/conversions.cc
@@ -76,14 +51,6 @@ lib/johnson/parser.rb
76
51
  lib/johnson/parser/syntax_error.rb
77
52
  lib/johnson/ruby_land_proxy.rb
78
53
  lib/johnson/runtime.rb
79
- lib/johnson/spidermonkey.rb
80
- lib/johnson/spidermonkey/context.rb
81
- lib/johnson/spidermonkey/debugger.rb
82
- lib/johnson/spidermonkey/immutable_node.rb
83
- lib/johnson/spidermonkey/js_land_proxy.rb
84
- lib/johnson/spidermonkey/mutable_tree_visitor.rb
85
- lib/johnson/spidermonkey/ruby_land_proxy.rb
86
- lib/johnson/spidermonkey/runtime.rb
87
54
  lib/johnson/tracemonkey.rb
88
55
  lib/johnson/tracemonkey/context.rb
89
56
  lib/johnson/tracemonkey/debugger.rb
@@ -153,11 +120,6 @@ test/johnson/generic/version_test.rb
153
120
  test/johnson/generic/visitors/dot_visitor_test.rb
154
121
  test/johnson/generic/visitors/enumerating_visitor_test.rb
155
122
  test/johnson/generic/visitors/helper.rb
156
- test/johnson/spidermonkey/context_test.rb
157
- test/johnson/spidermonkey/immutable_node_test.rb
158
- test/johnson/spidermonkey/js_land_proxy_test.rb
159
- test/johnson/spidermonkey/ruby_land_proxy_test.rb
160
- test/johnson/spidermonkey/runtime_test.rb
161
123
  test/johnson/tracemonkey/context_test.rb
162
124
  test/johnson/tracemonkey/immutable_node_test.rb
163
125
  test/johnson/tracemonkey/js_land_proxy_test.rb
@@ -165,253 +127,6 @@ test/johnson/tracemonkey/ruby_land_proxy_test.rb
165
127
  test/johnson/tracemonkey/runtime_test.rb
166
128
  test/johnson/tracemonkey/split_global_test.html
167
129
  test/johnson/tracemonkey/split_global_test.rb
168
- vendor/spidermonkey/.cvsignore
169
- vendor/spidermonkey/Makefile.in
170
- vendor/spidermonkey/Makefile.ref
171
- vendor/spidermonkey/README.html
172
- vendor/spidermonkey/SpiderMonkey.rsp
173
- vendor/spidermonkey/Y.js
174
- vendor/spidermonkey/build.mk
175
- vendor/spidermonkey/config.mk
176
- vendor/spidermonkey/config/AIX4.1.mk
177
- vendor/spidermonkey/config/AIX4.2.mk
178
- vendor/spidermonkey/config/AIX4.3.mk
179
- vendor/spidermonkey/config/Darwin.mk
180
- vendor/spidermonkey/config/Darwin1.3.mk
181
- vendor/spidermonkey/config/Darwin1.4.mk
182
- vendor/spidermonkey/config/Darwin5.2.mk
183
- vendor/spidermonkey/config/Darwin5.3.mk
184
- vendor/spidermonkey/config/HP-UXB.10.10.mk
185
- vendor/spidermonkey/config/HP-UXB.10.20.mk
186
- vendor/spidermonkey/config/HP-UXB.11.00.mk
187
- vendor/spidermonkey/config/IRIX.mk
188
- vendor/spidermonkey/config/IRIX5.3.mk
189
- vendor/spidermonkey/config/IRIX6.1.mk
190
- vendor/spidermonkey/config/IRIX6.2.mk
191
- vendor/spidermonkey/config/IRIX6.3.mk
192
- vendor/spidermonkey/config/IRIX6.5.mk
193
- vendor/spidermonkey/config/Linux_All.mk
194
- vendor/spidermonkey/config/Mac_OS10.0.mk
195
- vendor/spidermonkey/config/OSF1V4.0.mk
196
- vendor/spidermonkey/config/OSF1V5.0.mk
197
- vendor/spidermonkey/config/SunOS4.1.4.mk
198
- vendor/spidermonkey/config/SunOS5.10.mk
199
- vendor/spidermonkey/config/SunOS5.3.mk
200
- vendor/spidermonkey/config/SunOS5.4.mk
201
- vendor/spidermonkey/config/SunOS5.5.1.mk
202
- vendor/spidermonkey/config/SunOS5.5.mk
203
- vendor/spidermonkey/config/SunOS5.6.mk
204
- vendor/spidermonkey/config/SunOS5.7.mk
205
- vendor/spidermonkey/config/SunOS5.8.mk
206
- vendor/spidermonkey/config/SunOS5.9.mk
207
- vendor/spidermonkey/config/WINNT4.0.mk
208
- vendor/spidermonkey/config/WINNT5.0.mk
209
- vendor/spidermonkey/config/WINNT5.1.mk
210
- vendor/spidermonkey/config/WINNT5.2.mk
211
- vendor/spidermonkey/config/WINNT6.0.mk
212
- vendor/spidermonkey/config/dgux.mk
213
- vendor/spidermonkey/editline/Makefile.ref
214
- vendor/spidermonkey/editline/README
215
- vendor/spidermonkey/editline/editline.3
216
- vendor/spidermonkey/editline/editline.c
217
- vendor/spidermonkey/editline/editline.h
218
- vendor/spidermonkey/editline/sysunix.c
219
- vendor/spidermonkey/editline/unix.h
220
- vendor/spidermonkey/fdlibm/.cvsignore
221
- vendor/spidermonkey/fdlibm/Makefile.in
222
- vendor/spidermonkey/fdlibm/Makefile.ref
223
- vendor/spidermonkey/fdlibm/e_acos.c
224
- vendor/spidermonkey/fdlibm/e_acosh.c
225
- vendor/spidermonkey/fdlibm/e_asin.c
226
- vendor/spidermonkey/fdlibm/e_atan2.c
227
- vendor/spidermonkey/fdlibm/e_atanh.c
228
- vendor/spidermonkey/fdlibm/e_cosh.c
229
- vendor/spidermonkey/fdlibm/e_exp.c
230
- vendor/spidermonkey/fdlibm/e_fmod.c
231
- vendor/spidermonkey/fdlibm/e_gamma.c
232
- vendor/spidermonkey/fdlibm/e_gamma_r.c
233
- vendor/spidermonkey/fdlibm/e_hypot.c
234
- vendor/spidermonkey/fdlibm/e_j0.c
235
- vendor/spidermonkey/fdlibm/e_j1.c
236
- vendor/spidermonkey/fdlibm/e_jn.c
237
- vendor/spidermonkey/fdlibm/e_lgamma.c
238
- vendor/spidermonkey/fdlibm/e_lgamma_r.c
239
- vendor/spidermonkey/fdlibm/e_log.c
240
- vendor/spidermonkey/fdlibm/e_log10.c
241
- vendor/spidermonkey/fdlibm/e_pow.c
242
- vendor/spidermonkey/fdlibm/e_rem_pio2.c
243
- vendor/spidermonkey/fdlibm/e_remainder.c
244
- vendor/spidermonkey/fdlibm/e_scalb.c
245
- vendor/spidermonkey/fdlibm/e_sinh.c
246
- vendor/spidermonkey/fdlibm/e_sqrt.c
247
- vendor/spidermonkey/fdlibm/fdlibm.h
248
- vendor/spidermonkey/fdlibm/fdlibm.mak
249
- vendor/spidermonkey/fdlibm/fdlibm.mdp
250
- vendor/spidermonkey/fdlibm/k_cos.c
251
- vendor/spidermonkey/fdlibm/k_rem_pio2.c
252
- vendor/spidermonkey/fdlibm/k_sin.c
253
- vendor/spidermonkey/fdlibm/k_standard.c
254
- vendor/spidermonkey/fdlibm/k_tan.c
255
- vendor/spidermonkey/fdlibm/s_asinh.c
256
- vendor/spidermonkey/fdlibm/s_atan.c
257
- vendor/spidermonkey/fdlibm/s_cbrt.c
258
- vendor/spidermonkey/fdlibm/s_ceil.c
259
- vendor/spidermonkey/fdlibm/s_copysign.c
260
- vendor/spidermonkey/fdlibm/s_cos.c
261
- vendor/spidermonkey/fdlibm/s_erf.c
262
- vendor/spidermonkey/fdlibm/s_expm1.c
263
- vendor/spidermonkey/fdlibm/s_fabs.c
264
- vendor/spidermonkey/fdlibm/s_finite.c
265
- vendor/spidermonkey/fdlibm/s_floor.c
266
- vendor/spidermonkey/fdlibm/s_frexp.c
267
- vendor/spidermonkey/fdlibm/s_ilogb.c
268
- vendor/spidermonkey/fdlibm/s_isnan.c
269
- vendor/spidermonkey/fdlibm/s_ldexp.c
270
- vendor/spidermonkey/fdlibm/s_lib_version.c
271
- vendor/spidermonkey/fdlibm/s_log1p.c
272
- vendor/spidermonkey/fdlibm/s_logb.c
273
- vendor/spidermonkey/fdlibm/s_matherr.c
274
- vendor/spidermonkey/fdlibm/s_modf.c
275
- vendor/spidermonkey/fdlibm/s_nextafter.c
276
- vendor/spidermonkey/fdlibm/s_rint.c
277
- vendor/spidermonkey/fdlibm/s_scalbn.c
278
- vendor/spidermonkey/fdlibm/s_signgam.c
279
- vendor/spidermonkey/fdlibm/s_significand.c
280
- vendor/spidermonkey/fdlibm/s_sin.c
281
- vendor/spidermonkey/fdlibm/s_tan.c
282
- vendor/spidermonkey/fdlibm/s_tanh.c
283
- vendor/spidermonkey/fdlibm/w_acos.c
284
- vendor/spidermonkey/fdlibm/w_acosh.c
285
- vendor/spidermonkey/fdlibm/w_asin.c
286
- vendor/spidermonkey/fdlibm/w_atan2.c
287
- vendor/spidermonkey/fdlibm/w_atanh.c
288
- vendor/spidermonkey/fdlibm/w_cosh.c
289
- vendor/spidermonkey/fdlibm/w_exp.c
290
- vendor/spidermonkey/fdlibm/w_fmod.c
291
- vendor/spidermonkey/fdlibm/w_gamma.c
292
- vendor/spidermonkey/fdlibm/w_gamma_r.c
293
- vendor/spidermonkey/fdlibm/w_hypot.c
294
- vendor/spidermonkey/fdlibm/w_j0.c
295
- vendor/spidermonkey/fdlibm/w_j1.c
296
- vendor/spidermonkey/fdlibm/w_jn.c
297
- vendor/spidermonkey/fdlibm/w_lgamma.c
298
- vendor/spidermonkey/fdlibm/w_lgamma_r.c
299
- vendor/spidermonkey/fdlibm/w_log.c
300
- vendor/spidermonkey/fdlibm/w_log10.c
301
- vendor/spidermonkey/fdlibm/w_pow.c
302
- vendor/spidermonkey/fdlibm/w_remainder.c
303
- vendor/spidermonkey/fdlibm/w_scalb.c
304
- vendor/spidermonkey/fdlibm/w_sinh.c
305
- vendor/spidermonkey/fdlibm/w_sqrt.c
306
- vendor/spidermonkey/javascript-trace.d
307
- vendor/spidermonkey/js.c
308
- vendor/spidermonkey/js.mdp
309
- vendor/spidermonkey/js.msg
310
- vendor/spidermonkey/js.pkg
311
- vendor/spidermonkey/js3240.rc
312
- vendor/spidermonkey/jsOS240.def
313
- vendor/spidermonkey/jsapi.c
314
- vendor/spidermonkey/jsapi.h
315
- vendor/spidermonkey/jsarena.c
316
- vendor/spidermonkey/jsarena.h
317
- vendor/spidermonkey/jsarray.c
318
- vendor/spidermonkey/jsarray.h
319
- vendor/spidermonkey/jsatom.c
320
- vendor/spidermonkey/jsatom.h
321
- vendor/spidermonkey/jsbit.h
322
- vendor/spidermonkey/jsbool.c
323
- vendor/spidermonkey/jsbool.h
324
- vendor/spidermonkey/jsclist.h
325
- vendor/spidermonkey/jscntxt.c
326
- vendor/spidermonkey/jscntxt.h
327
- vendor/spidermonkey/jscompat.h
328
- vendor/spidermonkey/jsconfig.h
329
- vendor/spidermonkey/jsconfig.mk
330
- vendor/spidermonkey/jscpucfg.c
331
- vendor/spidermonkey/jscpucfg.h
332
- vendor/spidermonkey/jsdate.c
333
- vendor/spidermonkey/jsdate.h
334
- vendor/spidermonkey/jsdbgapi.c
335
- vendor/spidermonkey/jsdbgapi.h
336
- vendor/spidermonkey/jsdhash.c
337
- vendor/spidermonkey/jsdhash.h
338
- vendor/spidermonkey/jsdtoa.c
339
- vendor/spidermonkey/jsdtoa.h
340
- vendor/spidermonkey/jsdtracef.c
341
- vendor/spidermonkey/jsdtracef.h
342
- vendor/spidermonkey/jsemit.c
343
- vendor/spidermonkey/jsemit.h
344
- vendor/spidermonkey/jsexn.c
345
- vendor/spidermonkey/jsexn.h
346
- vendor/spidermonkey/jsfile.c
347
- vendor/spidermonkey/jsfile.h
348
- vendor/spidermonkey/jsfile.msg
349
- vendor/spidermonkey/jsfun.c
350
- vendor/spidermonkey/jsfun.h
351
- vendor/spidermonkey/jsgc.c
352
- vendor/spidermonkey/jsgc.h
353
- vendor/spidermonkey/jshash.c
354
- vendor/spidermonkey/jshash.h
355
- vendor/spidermonkey/jsify.pl
356
- vendor/spidermonkey/jsinterp.c
357
- vendor/spidermonkey/jsinterp.h
358
- vendor/spidermonkey/jsinvoke.c
359
- vendor/spidermonkey/jsiter.c
360
- vendor/spidermonkey/jsiter.h
361
- vendor/spidermonkey/jskeyword.tbl
362
- vendor/spidermonkey/jskwgen.c
363
- vendor/spidermonkey/jslibmath.h
364
- vendor/spidermonkey/jslock.c
365
- vendor/spidermonkey/jslock.h
366
- vendor/spidermonkey/jslocko.asm
367
- vendor/spidermonkey/jslog2.c
368
- vendor/spidermonkey/jslong.c
369
- vendor/spidermonkey/jslong.h
370
- vendor/spidermonkey/jsmath.c
371
- vendor/spidermonkey/jsmath.h
372
- vendor/spidermonkey/jsnum.c
373
- vendor/spidermonkey/jsnum.h
374
- vendor/spidermonkey/jsobj.c
375
- vendor/spidermonkey/jsobj.h
376
- vendor/spidermonkey/jsopcode.c
377
- vendor/spidermonkey/jsopcode.h
378
- vendor/spidermonkey/jsopcode.tbl
379
- vendor/spidermonkey/jsotypes.h
380
- vendor/spidermonkey/jsparse.c
381
- vendor/spidermonkey/jsparse.h
382
- vendor/spidermonkey/jsprf.c
383
- vendor/spidermonkey/jsprf.h
384
- vendor/spidermonkey/jsproto.tbl
385
- vendor/spidermonkey/jsprvtd.h
386
- vendor/spidermonkey/jspubtd.h
387
- vendor/spidermonkey/jsregexp.c
388
- vendor/spidermonkey/jsregexp.h
389
- vendor/spidermonkey/jsreops.tbl
390
- vendor/spidermonkey/jsscan.c
391
- vendor/spidermonkey/jsscan.h
392
- vendor/spidermonkey/jsscope.c
393
- vendor/spidermonkey/jsscope.h
394
- vendor/spidermonkey/jsscript.c
395
- vendor/spidermonkey/jsscript.h
396
- vendor/spidermonkey/jsshell.msg
397
- vendor/spidermonkey/jsstddef.h
398
- vendor/spidermonkey/jsstr.c
399
- vendor/spidermonkey/jsstr.h
400
- vendor/spidermonkey/jstypes.h
401
- vendor/spidermonkey/jsutil.c
402
- vendor/spidermonkey/jsutil.h
403
- vendor/spidermonkey/jsxdrapi.c
404
- vendor/spidermonkey/jsxdrapi.h
405
- vendor/spidermonkey/jsxml.c
406
- vendor/spidermonkey/jsxml.h
407
- vendor/spidermonkey/lock_SunOS.s
408
- vendor/spidermonkey/perfect.js
409
- vendor/spidermonkey/plify_jsdhash.sed
410
- vendor/spidermonkey/prmjtime.c
411
- vendor/spidermonkey/prmjtime.h
412
- vendor/spidermonkey/resource.h
413
- vendor/spidermonkey/rules.mk
414
- vendor/spidermonkey/win32.order
415
130
  vendor/tracemonkey/Makefile.in
416
131
  vendor/tracemonkey/Makefile.ref
417
132
  vendor/tracemonkey/README.html
@@ -1622,6 +1337,8 @@ vendor/tracemonkey/tests/ecma/Math/15.8.2.8.js
1622
1337
  vendor/tracemonkey/tests/ecma/Math/15.8.2.9.js
1623
1338
  vendor/tracemonkey/tests/ecma/Math/jstests.list
1624
1339
  vendor/tracemonkey/tests/ecma/Math/shell.js
1340
+ vendor/tracemonkey/tests/ecma/NativeObjects/browser.js
1341
+ vendor/tracemonkey/tests/ecma/NativeObjects/jstests.list
1625
1342
  vendor/tracemonkey/tests/ecma/NativeObjects/shell.js
1626
1343
  vendor/tracemonkey/tests/ecma/Number/15.7.1.js
1627
1344
  vendor/tracemonkey/tests/ecma/Number/15.7.2.js
@@ -2466,6 +2183,8 @@ vendor/tracemonkey/tests/js1_3/inherit/proto_9.js
2466
2183
  vendor/tracemonkey/tests/js1_3/inherit/shell.js
2467
2184
  vendor/tracemonkey/tests/js1_3/jsref.js
2468
2185
  vendor/tracemonkey/tests/js1_3/jstests.list
2186
+ vendor/tracemonkey/tests/js1_3/misc/browser.js
2187
+ vendor/tracemonkey/tests/js1_3/misc/jstests.list
2469
2188
  vendor/tracemonkey/tests/js1_3/misc/shell.js
2470
2189
  vendor/tracemonkey/tests/js1_3/regress/delete-001.js
2471
2190
  vendor/tracemonkey/tests/js1_3/regress/function-001-n.js
data/Rakefile CHANGED
@@ -1,17 +1,16 @@
1
1
  require "rubygems"
2
2
 
3
- gem "hoe", "~> 2.3"
3
+ gem "hoe", "~> 2.5"
4
4
  require "hoe"
5
5
 
6
- gem "rake-compiler", "~> 0.6"
6
+ gem "rake-compiler", "~> 0.7"
7
7
  require "rake/extensiontask"
8
8
 
9
9
  FILTER = ENV['FILTER'] || ENV['TESTOPTS']
10
10
 
11
- INTERPRETERS = [ "spidermonkey", "tracemonkey" ]
11
+ INTERPRETERS = [ "tracemonkey" ]
12
12
 
13
13
  SUFFIXES = {}
14
- SUFFIXES[ "spidermonkey" ] = "c"
15
14
  SUFFIXES[ "tracemonkey" ] = "cc"
16
15
 
17
16
  generated_nodes = []
@@ -24,7 +23,8 @@ INTERPRETERS.each do |interpreter|
24
23
 
25
24
  generated_node = "ext/#{interpreter}/immutable_node.#{suffix}"
26
25
 
27
- file generated_node => "ext/#{interpreter}/immutable_node.#{suffix}.erb" do |t|
26
+ file generated_node => ["ext/#{interpreter}/immutable_node.#{suffix}.erb",
27
+ "vendor/#{interpreter}/.git"] do |t|
28
28
  template = ERB.new(File.open(t.prerequisites.first, "rb") { |x| x.read })
29
29
  jsops = jsops interpreter
30
30
  tokens = tokens interpreter
@@ -50,20 +50,17 @@ Hoe.spec "johnson" do
50
50
  self.extra_rdoc_files = FileList["*.rdoc"]
51
51
  self.history_file = "CHANGELOG.rdoc"
52
52
  self.readme_file = "README.rdoc"
53
- self.spec_extras[:extensions] = %w(ext/spidermonkey/extconf.rb
54
- ext/tracemonkey/extconf.rb)
53
+ self.spec_extras[:extensions] = %w(ext/tracemonkey/extconf.rb)
55
54
 
56
- extra_deps << ["stackdeck", "~> 0.1"]
55
+ extra_deps << ["stackdeck", "~> 0.2"]
57
56
  extra_dev_deps << ["rake-compiler", "~> 0.6"]
58
57
 
59
58
  clean_globs << "ext/**/Makefile"
60
59
  clean_globs << "ext/**/*.{o,so,dylib,bundle,a,log}"
61
60
  clean_globs << "vendor/**/*.{o,so,dylib,bundle,a,log}"
62
- clean_globs << "ext/spidermonkey/immutable_node.c"
63
61
  clean_globs << "ext/tracemonkey/immutable_node.cc"
64
62
  clean_globs << "lib/johnson/**/*.{bundle,so}"
65
63
  clean_globs << "tmp"
66
- clean_globs << "vendor/spidermonkey/**/*.OBJ"
67
64
 
68
65
  clean_globs << "vendor/tracemonkey/**/.deps"
69
66
  clean_globs << "vendor/tracemonkey/dist"
@@ -96,26 +93,22 @@ Hoe.spec "johnson" do
96
93
  clean_globs << "vendor/tracemonkey/{lirasm,shell,tests}/Makefile"
97
94
  clean_globs << "vendor/tracemonkey/unallmakefiles"
98
95
 
99
- Rake::ExtensionTask.new "spidermonkey", spec do |ext|
100
- ext.lib_dir = "lib/johnson/spidermonkey"
101
- ext.source_pattern = "*.{c,h}"
102
- end
103
-
104
96
  Rake::ExtensionTask.new "tracemonkey", spec do |ext|
105
97
  ext.lib_dir = "lib/johnson/tracemonkey"
106
98
  ext.source_pattern = "*.{cc,h}"
107
99
  end
108
100
  end
109
101
 
110
- task(:test).clear
102
+ file "vendor/tracemonkey/.git" do
103
+ sh "git submodule update --init"
104
+ end
105
+
106
+ task :compile => "vendor/tracemonkey/.git"
111
107
 
108
+ task(:test).clear
112
109
  task :test => :compile
113
110
 
114
111
  task :clean do
115
- Dir.chdir "vendor/spidermonkey" do
116
- sh "make clean -f Makefile.ref" unless Dir["**/libjs.a"].empty?
117
- end
118
-
119
112
  Dir.chdir "vendor/tracemonkey" do
120
113
  sh "make clean -f Makefile.ref" unless Dir["**/libjs.a"].empty?
121
114
  end
@@ -36,5 +36,8 @@ static JSClass OurGlobalClass = {
36
36
 
37
37
  JSObject* johnson_create_global_object(JSContext* context)
38
38
  {
39
- return JS_NewObject(context, &OurGlobalClass, NULL, NULL);
39
+ JSObject* obj = JS_NewObject(context, &OurGlobalClass, NULL, NULL);
40
+ JS_SetParent(context, obj, NULL);
41
+ JS_SetPrototype(context, obj, NULL);
42
+ return obj;
40
43
  }
@@ -70,6 +70,9 @@ split_create_inner(JSContext *cx, JSObject *outer);
70
70
  static ComplexObject *
71
71
  split_get_private(JSContext *cx, JSObject *obj);
72
72
 
73
+ int trace_split = 0;
74
+ int trace_mark = 0;
75
+
73
76
  static JSBool
74
77
  split_addProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
75
78
  {
@@ -85,6 +88,14 @@ split_addProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
85
88
 
86
89
  /* Patched. See https://bugzilla.mozilla.org/show_bug.cgi?id=542864 */
87
90
 
91
+ /*
92
+ JSString* s = JS_ValueToString(cx, id);
93
+ char* c = JS_GetStringBytes(s);
94
+ if(strcmp(c,"Document")==0){
95
+ fprintf(stderr,"%s\n",c );
96
+ }
97
+ */
98
+
88
99
  JSPropertyOp setter = 0;
89
100
  JSPropertyOp getter = 0;
90
101
  uintN attrs = 0;
@@ -92,15 +103,11 @@ split_addProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
92
103
 
93
104
  JS_GetPropertyAttrsGetterAndSetterById(cx, obj, id, &attrs, &found, &getter, &setter);
94
105
 
95
- if (attrs&(JSPROP_GETTER|JSPROP_SETTER)) {
96
- asId = id;
97
- } else {
98
- if (!JS_ValueToId(cx, *vp, &asId)) {
99
- return JS_FALSE;
100
- }
106
+ if (!JS_ValueToId(cx, *vp, &asId)) {
107
+ return JS_FALSE;
101
108
  }
102
109
 
103
- return JS_DefinePropertyById(cx, cpx->inner, asId, *vp, getter, setter, attrs | JSPROP_ENUMERATE);
110
+ return JS_DefinePropertyById(cx, cpx->inner, id, asId, getter, setter, attrs | JSPROP_ENUMERATE);
104
111
  }
105
112
  return JS_TRUE;
106
113
  }
@@ -271,6 +278,7 @@ split_resolve(JSContext *cx, JSObject *obj, jsval id, uintN flags,
271
278
  static void
272
279
  split_finalize(JSContext *cx, JSObject *obj)
273
280
  {
281
+ if (trace_split) fprintf(stderr,"finalize 0x%08x\n", obj);
274
282
  JS_free(cx, JS_GetPrivate(cx, obj));
275
283
  }
276
284
 
@@ -281,7 +289,16 @@ split_mark(JSContext *cx, JSObject *obj, void *arg)
281
289
 
282
290
  cpx = (ComplexObject *) JS_GetPrivate(cx, obj);
283
291
 
292
+ if (trace_mark) fprintf(stderr,"mark 0x%08x %s\n", obj, cpx->isInner ? "" : "outer");
293
+
294
+ /*
295
+ if (!cpx->isInner) {
296
+ fprintf(stderr,"mark %016x\n", obj);
297
+ }
298
+ */
299
+
284
300
  if (!cpx->isInner && cpx->inner) {
301
+ // if (trace_mark) fprintf(stderr,"mark inner 0x%08x\n", cpx->inner);
285
302
  /* Mark the inner object. */
286
303
  JS_MarkGCThing(cx, cpx->inner, "ComplexObject.inner", arg);
287
304
  }
@@ -357,7 +374,6 @@ static JSExtendedClass split_global_class = {
357
374
  NULL, NULL, NULL, NULL, NULL
358
375
  };
359
376
 
360
- #if 1
361
377
  static JSBool
362
378
  split_equality(JSContext *cx, JSObject *obj, jsval v, JSBool *bp)
363
379
  {
@@ -378,31 +394,6 @@ split_equality(JSContext *cx, JSObject *obj, jsval v, JSBool *bp)
378
394
  *bp = (cpx == ourCpx);
379
395
  return JS_TRUE;
380
396
  }
381
- #else
382
- static JSBool
383
- split_equality(JSContext *cx, JSObject *obj, jsval v, JSBool *bp)
384
- {
385
- *bp = JS_FALSE;
386
- if (JSVAL_IS_PRIMITIVE(v))
387
- return JS_TRUE;
388
-
389
- JSObject *obj2 = JSVAL_TO_OBJECT(v);
390
- if (JS_GET_CLASS(cx, obj2) != &split_global_class.base)
391
- return JS_TRUE;
392
-
393
- ComplexObject *cpx = (ComplexObject *) JS_GetPrivate(cx, obj2);
394
- ComplexObject *ourCpx = (ComplexObject *) JS_GetPrivate(cx, obj);
395
-
396
- if( cpx == ourCpx ) {
397
- *bp = JS_TRUE;
398
- } else if ( cpx->inner ) {
399
- *bp = ( cpx->inner == obj && ourCpx->outer == obj2);
400
- } else {
401
- *bp = ( cpx->outer == obj && ourCpx->inner == obj2);
402
- }
403
- return JS_TRUE;
404
- }
405
- #endif
406
397
 
407
398
  JSObject *
408
399
  split_create_outer(JSContext *cx)
@@ -429,6 +420,8 @@ split_create_outer(JSContext *cx)
429
420
  return NULL;
430
421
  }
431
422
 
423
+ if (trace_split) fprintf(stderr,"outer 0x%08x\n", obj);
424
+
432
425
  return obj;
433
426
  }
434
427
 
@@ -453,11 +446,15 @@ split_create_inner(JSContext *cx, JSObject *outer)
453
446
  JS_free(cx, cpx);
454
447
  return NULL;
455
448
  }
449
+
450
+ JS_SetPrototype(cx,obj,NULL);
456
451
 
457
452
  outercpx = (ComplexObject *) JS_GetPrivate(cx, outer);
458
453
  outercpx->inner = obj;
459
454
  outercpx->frozen = JS_FALSE;
460
455
 
456
+ if (trace_split) fprintf(stderr,"inner 0x%08x 0x%08x\n", outer, obj);
457
+
461
458
  return obj;
462
459
  }
463
460