opal 0.4.3 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. data/.rspec +3 -0
  2. data/.travis.yml +0 -4
  3. data/README.md +6 -0
  4. data/Rakefile +30 -6
  5. data/bin/opal +6 -82
  6. data/corelib/{opal/array.rb → array.rb} +40 -56
  7. data/corelib/{opal/basic_object.rb → basic_object.rb} +2 -2
  8. data/corelib/{opal/boolean.rb → boolean.rb} +0 -8
  9. data/corelib/class.rb +47 -0
  10. data/corelib/{opal/comparable.rb → comparable.rb} +0 -0
  11. data/corelib/{opal/enumerable.rb → enumerable.rb} +208 -141
  12. data/corelib/{opal/enumerator.rb → enumerator.rb} +3 -3
  13. data/corelib/{opal/error.rb → error.rb} +1 -0
  14. data/corelib/{opal/hash.rb → hash.rb} +67 -56
  15. data/corelib/io.rb +39 -0
  16. data/corelib/{opal/kernel.rb → kernel.rb} +35 -31
  17. data/corelib/{opal/class.rb → module.rb} +29 -57
  18. data/corelib/native.rb +148 -0
  19. data/corelib/{opal/nil_class.rb → nil_class.rb} +2 -10
  20. data/corelib/{opal/numeric.rb → numeric.rb} +39 -14
  21. data/corelib/opal.rb +42 -25
  22. data/corelib/{opal/proc.rb → proc.rb} +3 -3
  23. data/corelib/{opal/range.rb → range.rb} +5 -1
  24. data/corelib/{opal/regexp.rb → regexp.rb} +0 -0
  25. data/corelib/{opal/runtime.js → runtime.js} +96 -188
  26. data/corelib/{opal/string.rb → string.rb} +20 -15
  27. data/corelib/struct.rb +139 -0
  28. data/corelib/{opal/time.rb → time.rb} +0 -0
  29. data/lib/opal.rb +4 -0
  30. data/lib/opal/cli.rb +79 -32
  31. data/lib/opal/cli_options.rb +91 -0
  32. data/lib/opal/erb.rb +41 -8
  33. data/lib/opal/grammar.rb +24 -10
  34. data/lib/opal/grammar.y +15 -4
  35. data/lib/opal/grammar_helpers.rb +4 -0
  36. data/lib/opal/lexer.rb +214 -143
  37. data/lib/opal/parser.rb +596 -562
  38. data/lib/opal/require_parser.rb +1 -1
  39. data/lib/opal/source_map.rb +15 -30
  40. data/lib/opal/target_scope.rb +24 -5
  41. data/lib/opal/version.rb +1 -1
  42. data/mri_spec/cli_spec.rb +18 -0
  43. data/mri_spec/fixtures/opal_file.rb +2 -0
  44. data/mri_spec/spec_helper.rb +17 -0
  45. data/opal.gemspec +5 -2
  46. data/spec/{rubyspec/filters → filters}/bugs/alias.rb +0 -0
  47. data/spec/{rubyspec/filters → filters}/bugs/ancestors.rb +0 -0
  48. data/spec/{rubyspec/filters → filters}/bugs/array.rb +0 -0
  49. data/spec/filters/bugs/array/combination.rb +11 -0
  50. data/spec/filters/bugs/array/count.rb +3 -0
  51. data/spec/filters/bugs/array/delete_if.rb +3 -0
  52. data/spec/filters/bugs/array/drop.rb +3 -0
  53. data/spec/filters/bugs/array/drop_while.rb +5 -0
  54. data/spec/filters/bugs/array/eql.rb +3 -0
  55. data/spec/filters/bugs/array/flatten.rb +9 -0
  56. data/spec/filters/bugs/array/minus.rb +5 -0
  57. data/spec/filters/bugs/array/multipliy.rb +9 -0
  58. data/spec/filters/bugs/array/new.rb +3 -0
  59. data/spec/filters/bugs/array/pop.rb +6 -0
  60. data/spec/filters/bugs/array/rassoc.rb +4 -0
  61. data/spec/filters/bugs/array/rindex.rb +6 -0
  62. data/spec/filters/bugs/array/select.rb +3 -0
  63. data/spec/filters/bugs/array/shift.rb +7 -0
  64. data/spec/filters/bugs/array/shuffle.rb +11 -0
  65. data/spec/filters/bugs/array/slice.rb +7 -0
  66. data/spec/filters/bugs/array/take.rb +3 -0
  67. data/spec/filters/bugs/array/to_a.rb +3 -0
  68. data/spec/filters/bugs/array/try_convert.rb +7 -0
  69. data/spec/filters/bugs/array/uniq.rb +10 -0
  70. data/spec/filters/bugs/array/zip.rb +4 -0
  71. data/spec/{rubyspec/filters → filters}/bugs/array_delete.rb +1 -0
  72. data/spec/{rubyspec/filters → filters}/bugs/array_fetch.rb +0 -0
  73. data/spec/{rubyspec/filters → filters}/bugs/array_first.rb +0 -0
  74. data/spec/{rubyspec/filters → filters}/bugs/array_flatten.rb +0 -0
  75. data/spec/{rubyspec/filters → filters}/bugs/array_intersection.rb +0 -0
  76. data/spec/{rubyspec/filters → filters}/bugs/array_join.rb +0 -0
  77. data/spec/{rubyspec/filters → filters}/bugs/break.rb +0 -0
  78. data/spec/filters/bugs/case.rb +4 -0
  79. data/spec/{rubyspec/filters → filters}/bugs/coerce_integer.rb +0 -0
  80. data/spec/filters/bugs/enumerable_sort_by.rb +3 -0
  81. data/spec/{rubyspec/filters → filters}/bugs/kernel/instance_variables.rb +0 -0
  82. data/spec/filters/bugs/kernel/rand.rb +4 -0
  83. data/spec/filters/bugs/language/array.rb +3 -0
  84. data/spec/filters/bugs/language/block.rb +6 -0
  85. data/spec/filters/bugs/language/break.rb +3 -0
  86. data/spec/{rubyspec/filters → filters}/bugs/language/class.rb +3 -0
  87. data/spec/{rubyspec/filters → filters}/bugs/language/class_variables.rb +0 -0
  88. data/spec/filters/bugs/language/def.rb +27 -0
  89. data/spec/filters/bugs/language/defined.rb +3 -0
  90. data/spec/filters/bugs/language/ensure.rb +4 -0
  91. data/spec/filters/bugs/language/execution.rb +4 -0
  92. data/spec/filters/bugs/language/for.rb +18 -0
  93. data/spec/filters/bugs/language/if.rb +13 -0
  94. data/spec/filters/bugs/language/loop.rb +4 -0
  95. data/spec/filters/bugs/language/metaclass.rb +14 -0
  96. data/spec/filters/bugs/language/module.rb +6 -0
  97. data/spec/filters/bugs/language/next.rb +3 -0
  98. data/spec/filters/bugs/language/or.rb +3 -0
  99. data/spec/filters/bugs/language/order.rb +4 -0
  100. data/spec/filters/bugs/language/precedence.rb +10 -0
  101. data/spec/filters/bugs/language/proc.rb +24 -0
  102. data/spec/filters/bugs/language/redo.rb +5 -0
  103. data/spec/filters/bugs/language/rescue.rb +9 -0
  104. data/spec/filters/bugs/language/retry.rb +5 -0
  105. data/spec/filters/bugs/language/send.rb +10 -0
  106. data/spec/filters/bugs/language/super.rb +9 -0
  107. data/spec/filters/bugs/language/until.rb +8 -0
  108. data/spec/filters/bugs/language/variables.rb +37 -0
  109. data/spec/filters/bugs/language/while.rb +6 -0
  110. data/spec/filters/bugs/language/yield.rb +5 -0
  111. data/spec/{rubyspec/filters → filters}/bugs/module/class_variables.rb +0 -0
  112. data/spec/filters/bugs/module/method_defined.rb +6 -0
  113. data/spec/filters/bugs/parser.rb +10 -0
  114. data/spec/{rubyspec/filters → filters}/bugs/public_methods.rb +1 -0
  115. data/spec/filters/bugs/return.rb +7 -0
  116. data/spec/filters/bugs/singleton/instance.rb +4 -0
  117. data/spec/filters/bugs/source_map.rb +3 -0
  118. data/spec/filters/bugs/string/center.rb +4 -0
  119. data/spec/filters/bugs/string/lines.rb +3 -0
  120. data/spec/{rubyspec/filters → filters}/mspec/mocks.rb +0 -0
  121. data/spec/{rubyspec/filters → filters}/mspec/ruby_exe.rb +0 -0
  122. data/spec/{rubyspec/filters → filters}/mspec/should_receive.rb +0 -0
  123. data/spec/{rubyspec/filters → filters}/parser/block_args.rb +0 -0
  124. data/spec/{rubyspec/filters → filters}/unsupported/array_subclasses.rb +1 -0
  125. data/spec/filters/unsupported/frozen.rb +32 -0
  126. data/spec/filters/unsupported/immutable_strings.rb +3 -0
  127. data/spec/filters/unsupported/tainted.rb +17 -0
  128. data/spec/filters/unsupported/trusted.rb +15 -0
  129. data/spec/opal/class/constants_spec.rb +7 -0
  130. data/spec/opal/erb/erb_spec.rb +7 -1
  131. data/spec/opal/erb/inline_block.opalerb +3 -0
  132. data/spec/opal/hash/allocate_spec.rb +16 -0
  133. data/spec/opal/hash/new_spec.rb +10 -0
  134. data/spec/opal/hash/to_s_spec.rb +9 -0
  135. data/spec/opal/kernel/instance_variable_defined_spec.rb +15 -0
  136. data/spec/opal/kernel/rand_spec.rb +5 -5
  137. data/spec/opal/kernel/respond_to_spec.rb +14 -1
  138. data/spec/opal/language/block_spec.rb +13 -0
  139. data/spec/opal/language/rescue_spec.rb +27 -0
  140. data/spec/opal/language/return_spec.rb +38 -0
  141. data/spec/opal/language/singleton_class_spec.rb +13 -0
  142. data/spec/opal/language/super_spec.rb +99 -0
  143. data/spec/opal/language/variables_spec.rb +20 -0
  144. data/spec/opal/module/attr_accessor_spec.rb +8 -0
  145. data/spec/opal/module/constants_spec.rb +2 -2
  146. data/spec/opal/native/alias_native_spec.rb +18 -0
  147. data/spec/opal/native/each_spec.rb +14 -0
  148. data/spec/opal/native/element_reference_spec.rb +14 -0
  149. data/spec/opal/native/method_missing_spec.rb +39 -0
  150. data/spec/opal/native/new_spec.rb +19 -0
  151. data/spec/opal/native/nil_spec.rb +14 -0
  152. data/spec/opal/runtime2/class_hierarchy_spec.rb +2 -2
  153. data/spec/opal/source_map_spec.rb +3 -7
  154. data/spec/ospec/main.rb.erb +2 -5
  155. data/spec/parser/alias_spec.rb +4 -4
  156. data/spec/parser/and_spec.rb +2 -2
  157. data/spec/parser/array_spec.rb +6 -6
  158. data/spec/parser/attrasgn_spec.rb +8 -8
  159. data/spec/parser/begin_spec.rb +11 -11
  160. data/spec/parser/block_spec.rb +3 -3
  161. data/spec/parser/break_spec.rb +4 -4
  162. data/spec/parser/call_spec.rb +50 -48
  163. data/spec/parser/class_spec.rb +2 -2
  164. data/spec/parser/const_spec.rb +1 -1
  165. data/spec/parser/cvar_spec.rb +1 -1
  166. data/spec/parser/def_spec.rb +5 -5
  167. data/spec/parser/gvar_spec.rb +2 -2
  168. data/spec/parser/hash_spec.rb +4 -4
  169. data/spec/parser/iasgn_spec.rb +3 -3
  170. data/spec/parser/if_spec.rb +6 -6
  171. data/spec/parser/iter_spec.rb +6 -6
  172. data/spec/parser/lambda_spec.rb +5 -5
  173. data/spec/parser/lasgn_spec.rb +2 -2
  174. data/spec/parser/line_spec.rb +2 -2
  175. data/spec/parser/lvar_spec.rb +5 -5
  176. data/spec/parser/masgn_spec.rb +1 -1
  177. data/spec/parser/module_spec.rb +2 -2
  178. data/spec/parser/not_spec.rb +4 -4
  179. data/spec/parser/op_asgn1_spec.rb +2 -2
  180. data/spec/parser/op_asgn2_spec.rb +2 -2
  181. data/spec/parser/or_spec.rb +2 -2
  182. data/spec/parser/parse_spec.rb +66 -0
  183. data/spec/parser/parser_spec.rb +32 -38
  184. data/spec/parser/regexp_spec.rb +4 -4
  185. data/spec/parser/return_spec.rb +4 -4
  186. data/spec/parser/sclass_spec.rb +4 -4
  187. data/spec/parser/str_spec.rb +3 -3
  188. data/spec/parser/super_spec.rb +6 -6
  189. data/spec/parser/undef_spec.rb +3 -3
  190. data/spec/parser/unless_spec.rb +4 -4
  191. data/spec/parser/while_spec.rb +3 -3
  192. data/spec/parser/xstr_spec.rb +3 -3
  193. data/spec/parser/yield_spec.rb +6 -6
  194. data/spec/rubyspec/core/array/drop_spec.rb +1 -1
  195. data/spec/rubyspec/core/array/keep_if_spec.rb +1 -3
  196. data/spec/rubyspec/core/array/length_spec.rb +1 -3
  197. data/spec/rubyspec/core/array/map_spec.rb +2 -6
  198. data/spec/rubyspec/core/array/minus_spec.rb +3 -3
  199. data/spec/rubyspec/core/array/multiply_spec.rb +14 -16
  200. data/spec/rubyspec/core/array/new_spec.rb +3 -5
  201. data/spec/rubyspec/core/array/plus_spec.rb +2 -2
  202. data/spec/rubyspec/core/array/pop_spec.rb +4 -4
  203. data/spec/rubyspec/core/array/rassoc_spec.rb +2 -2
  204. data/spec/rubyspec/core/array/reject_spec.rb +2 -6
  205. data/spec/rubyspec/core/array/replace_spec.rb +1 -3
  206. data/spec/rubyspec/core/array/reverse_each_spec.rb +1 -3
  207. data/spec/rubyspec/core/array/reverse_spec.rb +4 -4
  208. data/spec/rubyspec/core/array/rindex_spec.rb +1 -1
  209. data/spec/rubyspec/core/array/select_spec.rb +3 -7
  210. data/spec/rubyspec/core/array/shared/collect.rb +7 -0
  211. data/spec/rubyspec/core/array/shared/index.rb +1 -1
  212. data/spec/rubyspec/core/array/shared/keep_if.rb +3 -0
  213. data/spec/rubyspec/core/array/shared/length.rb +3 -0
  214. data/spec/rubyspec/core/array/shared/replace.rb +3 -0
  215. data/spec/rubyspec/core/array/shared/slice.rb +3 -0
  216. data/spec/rubyspec/core/array/shuffle_spec.rb +1 -1
  217. data/spec/rubyspec/core/array/size_spec.rb +1 -3
  218. data/spec/rubyspec/core/array/slice_spec.rb +4 -6
  219. data/spec/rubyspec/core/array/sort_spec.rb +2 -2
  220. data/spec/rubyspec/core/array/to_a_spec.rb +1 -1
  221. data/spec/rubyspec/core/array/try_convert_spec.rb +7 -7
  222. data/spec/rubyspec/core/array/uniq_spec.rb +7 -7
  223. data/spec/rubyspec/core/array/zip_spec.rb +1 -1
  224. data/spec/rubyspec/core/enumerable/collect_spec.rb +24 -0
  225. data/spec/rubyspec/core/enumerable/count_spec.rb +35 -19
  226. data/spec/rubyspec/core/enumerable/find_spec.rb +5 -0
  227. data/spec/rubyspec/core/hash/each_pair_spec.rb +7 -7
  228. data/spec/rubyspec/core/hash/each_spec.rb +13 -7
  229. data/spec/rubyspec/core/module/method_defined_spec.rb +4 -4
  230. data/spec/rubyspec/core/module/public_method_defined_spec.rb +19 -0
  231. data/spec/rubyspec/core/module/remove_const_spec.rb +23 -0
  232. data/spec/rubyspec/core/numeric/step_spec.rb +14 -0
  233. data/spec/rubyspec/core/string/center_spec.rb +43 -65
  234. data/spec/rubyspec/core/string/lines_spec.rb +1 -1
  235. data/spec/rubyspec/core/string/ljust_spec.rb +25 -9
  236. data/spec/rubyspec/core/string/rjust_spec.rb +26 -10
  237. data/spec/rubyspec/core/struct/fixtures/classes.rb +26 -0
  238. data/spec/rubyspec/core/struct/initialize_spec.rb +11 -0
  239. data/spec/rubyspec/core/struct/new_spec.rb +24 -0
  240. data/spec/rubyspec/fixtures/constants.rb +7 -0
  241. data/spec/rubyspec/language/break_spec.rb +1 -1
  242. data/spec/rubyspec/language/case_spec.rb +30 -30
  243. data/spec/rubyspec/language/def_spec.rb +34 -34
  244. data/spec/rubyspec/language/defined_spec.rb +2 -2
  245. data/spec/rubyspec/language/ensure_spec.rb +2 -2
  246. data/spec/rubyspec/language/execution_spec.rb +2 -2
  247. data/spec/rubyspec/language/for_spec.rb +17 -17
  248. data/spec/rubyspec/language/hash_spec.rb +3 -3
  249. data/spec/rubyspec/language/if_spec.rb +11 -11
  250. data/spec/rubyspec/language/loop_spec.rb +3 -3
  251. data/spec/rubyspec/language/metaclass_spec.rb +14 -14
  252. data/spec/rubyspec/language/module_spec.rb +6 -6
  253. data/spec/rubyspec/language/next_spec.rb +5 -5
  254. data/spec/rubyspec/language/not_spec.rb +1 -1
  255. data/spec/rubyspec/language/or_spec.rb +1 -1
  256. data/spec/rubyspec/language/order_spec.rb +3 -5
  257. data/spec/rubyspec/language/precedence_spec.rb +19 -19
  258. data/spec/rubyspec/language/proc_spec.rb +29 -29
  259. data/spec/rubyspec/language/redo_spec.rb +3 -5
  260. data/spec/rubyspec/language/rescue_spec.rb +7 -7
  261. data/spec/rubyspec/language/retry_spec.rb +2 -2
  262. data/spec/rubyspec/language/return_spec.rb +12 -12
  263. data/spec/rubyspec/language/send_spec.rb +9 -9
  264. data/spec/rubyspec/language/singleton_class_spec.rb +3 -4
  265. data/spec/rubyspec/language/super_spec.rb +7 -11
  266. data/spec/rubyspec/language/until_spec.rb +10 -10
  267. data/spec/rubyspec/language/variables_spec.rb +59 -67
  268. data/spec/rubyspec/language/versions/array_1.9.rb +1 -1
  269. data/spec/rubyspec/language/versions/block_1.9.rb +0 -0
  270. data/spec/rubyspec/language/versions/break_1.9.rb +0 -0
  271. data/spec/rubyspec/language/versions/literal_lambda_1.9.rb +12 -12
  272. data/spec/rubyspec/language/versions/send_1.9.rb +23 -23
  273. data/spec/rubyspec/language/versions/symbol_1.9.rb +2 -2
  274. data/spec/rubyspec/language/versions/variables_1.9.rb +1 -1
  275. data/spec/rubyspec/language/while_spec.rb +4 -4
  276. data/spec/rubyspec/language/yield_spec.rb +3 -3
  277. data/spec/rubyspec/library/erb/util/html_escape_spec.rb +10 -0
  278. data/spec/rubyspec/library/singleton/clone_spec.rb +8 -0
  279. data/spec/rubyspec/library/singleton/dup_spec.rb +8 -0
  280. data/spec/rubyspec/library/singleton/fixtures/classes.rb +18 -0
  281. data/spec/rubyspec/library/singleton/instance_spec.rb +30 -0
  282. data/spec/spec_helper.rb +214 -0
  283. data/stdlib/buffer.rb +40 -0
  284. data/stdlib/buffer/array.rb +66 -0
  285. data/stdlib/buffer/view.rb +70 -0
  286. data/stdlib/erb.rb +11 -20
  287. data/stdlib/forwardable.rb +71 -0
  288. data/stdlib/json.rb +78 -0
  289. data/stdlib/ostruct.rb +69 -0
  290. data/stdlib/rbconfig.rb +1 -0
  291. data/stdlib/singleton.rb +40 -0
  292. data/stdlib/stringio.rb +173 -0
  293. data/stdlib/template.rb +44 -0
  294. metadata +285 -79
  295. data/corelib/opal/native.rb +0 -31
  296. data/spec/opal/class/bridge_class_spec.rb +0 -39
  297. data/spec/opal/native_spec.rb +0 -209
  298. data/spec/ospec/runner.rb +0 -223
  299. data/spec/rubyspec/filters/bugs/block_args.rb +0 -3
  300. data/spec/rubyspec/filters/bugs/case.rb +0 -8
  301. data/spec/rubyspec/filters/bugs/language/module.rb +0 -3
  302. data/spec/rubyspec/filters/unsupported/frozen.rb +0 -4
  303. data/spec/rubyspec/filters/unsupported/tainted.rb +0 -7
@@ -0,0 +1,40 @@
1
+ module Singleton
2
+ def clone
3
+ raise TypeError, "can't clone instance of singleton #{self.class}"
4
+ end
5
+
6
+ def dup
7
+ raise TypeError, "can't dup instance of singleton #{self.class}"
8
+ end
9
+
10
+ module SingletonClassMethods
11
+
12
+ def clone
13
+ Singleton.__init__(super)
14
+ end
15
+
16
+ def inherited(sub_klass)
17
+ super
18
+ Singleton.__init__(sub_klass)
19
+ end
20
+ end
21
+
22
+ class << Singleton
23
+ def __init__(klass)
24
+ klass.instance_eval {
25
+ @singleton__instance__ = nil
26
+ }
27
+ def klass.instance
28
+ return @singleton__instance__ if @singleton__instance__
29
+ @singleton__instance__ = new()
30
+ end
31
+ klass
32
+ end
33
+
34
+ def included(klass)
35
+ super
36
+ klass.extend SingletonClassMethods
37
+ Singleton.__init__(klass)
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,173 @@
1
+ class StringIO < IO
2
+ include IO::Readable
3
+ include IO::Writable
4
+
5
+ def self.open(string = "", mode = nil, &block)
6
+ io = new(string, mode)
7
+ res = block.call(io)
8
+ io.close
9
+
10
+ res
11
+ end
12
+
13
+ attr_accessor :string
14
+
15
+ def initialize(string = "", mode = 'rw')
16
+ @string = string
17
+ @position = string.length
18
+
19
+ if mode.include?('r') and not mode.include?('w')
20
+ @closed = :write
21
+ elsif mode.include?('w') and not mode.include?('r')
22
+ @closed = :read
23
+ end
24
+ end
25
+
26
+ def eof?
27
+ check_readable
28
+
29
+ @position == @string.length
30
+ end
31
+
32
+ alias eof eof?
33
+
34
+ def seek(pos, whence = IO::SEEK_SET)
35
+ case whence
36
+ when IO::SEEK_SET
37
+ @position = pos
38
+
39
+ when IO::SEEK_CUR
40
+ if @position + pos > @string.length
41
+ @position = @string.length
42
+ else
43
+ @position += pos
44
+ end
45
+
46
+ when IO::SEEK_END
47
+ if pos > @string.length
48
+ @position = 0
49
+ else
50
+ @position -= pos
51
+ end
52
+ end
53
+
54
+ 0
55
+ end
56
+
57
+ def tell
58
+ @position
59
+ end
60
+
61
+ alias pos tell
62
+
63
+ alias pos= seek
64
+
65
+ def rewind
66
+ seek 0
67
+ end
68
+
69
+ def each_byte(&block)
70
+ return enum_for :each_byte unless block
71
+
72
+ check_readable
73
+
74
+ i = @position
75
+ until eof?
76
+ block.call(@string[i].ord)
77
+ i += 1
78
+ end
79
+
80
+ self
81
+ end
82
+
83
+ def each_char(&block)
84
+ return enum_for :each_char unless block
85
+
86
+ check_readable
87
+
88
+ i = @position
89
+ until eof?
90
+ block.call(@string[i])
91
+ i += 1
92
+ end
93
+
94
+ self
95
+ end
96
+
97
+ def write(string)
98
+ check_writable
99
+
100
+ string = String(string)
101
+
102
+ if @string.length == @position
103
+ @string += string
104
+ else
105
+ before = @string[0 .. @position - 1]
106
+ after = @string[@position + string.length .. -1]
107
+
108
+ @string = before + string + after
109
+ end
110
+ end
111
+
112
+ def read(length = nil, outbuf = nil)
113
+ check_readable
114
+
115
+ return if eof?
116
+
117
+ string = if length
118
+ @string[@position, length]
119
+ else
120
+ @string[@position .. -1]
121
+ end
122
+
123
+ if outbuf
124
+ outbuf.write(string)
125
+ else
126
+ string
127
+ end
128
+ end
129
+
130
+ def close
131
+ @closed = :both
132
+ end
133
+
134
+ def close_read
135
+ if @closed == :write
136
+ @closed = :both
137
+ else
138
+ @closed = :read
139
+ end
140
+ end
141
+
142
+ def close_write
143
+ if @closed == :read
144
+ @closed = :both
145
+ else
146
+ @closed = :write
147
+ end
148
+ end
149
+
150
+ def closed?
151
+ @closed == :both
152
+ end
153
+
154
+ def closed_read?
155
+ @closed == :read || @closed == :both
156
+ end
157
+
158
+ def closed_write?
159
+ @closed == :write || @closed == :both
160
+ end
161
+
162
+ def check_writable
163
+ if closed_write?
164
+ raise IOError, "not opened for writing"
165
+ end
166
+ end
167
+
168
+ def check_readable
169
+ if closed_read?
170
+ raise IOError, "not opened for reading"
171
+ end
172
+ end
173
+ end
@@ -0,0 +1,44 @@
1
+ class Template
2
+ @_cache = {}
3
+ def self.[](name)
4
+ @_cache[name]
5
+ end
6
+
7
+ def self.[]=(name, instance)
8
+ @_cache[name] = instance
9
+ end
10
+
11
+ attr_reader :body
12
+
13
+ def initialize(name, &body)
14
+ @name, @body = name, body
15
+ Template[name] = self
16
+ end
17
+
18
+ def inspect
19
+ "#<Template: '#@name'>"
20
+ end
21
+
22
+ def render(ctx = self)
23
+ ctx.instance_exec(OutputBuffer.new, &@body)
24
+ end
25
+
26
+ class OutputBuffer
27
+ def initialize
28
+ @buffer = []
29
+ end
30
+
31
+ def append(str)
32
+ @buffer << str
33
+ end
34
+
35
+ def append=(content)
36
+ @buffer << content
37
+ end
38
+
39
+ def join
40
+ @buffer.join
41
+ end
42
+ end
43
+ end
44
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-24 00:00:00.000000000 Z
12
+ date: 2013-08-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: source_map
@@ -107,6 +107,22 @@ dependencies:
107
107
  - - ~>
108
108
  - !ruby/object:Gem::Version
109
109
  version: 0.1.1
110
+ - !ruby/object:Gem::Dependency
111
+ name: rspec
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '2.14'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: '2.14'
110
126
  description: Ruby runtime and core library for javascript.
111
127
  email: adam.beynon@gmail.com
112
128
  executables:
@@ -115,6 +131,7 @@ extensions: []
115
131
  extra_rdoc_files: []
116
132
  files:
117
133
  - .gitignore
134
+ - .rspec
118
135
  - .travis.yml
119
136
  - CONTRIBUTING.md
120
137
  - Gemfile
@@ -122,29 +139,33 @@ files:
122
139
  - README.md
123
140
  - Rakefile
124
141
  - bin/opal
142
+ - corelib/array.rb
143
+ - corelib/basic_object.rb
144
+ - corelib/boolean.rb
145
+ - corelib/class.rb
146
+ - corelib/comparable.rb
147
+ - corelib/enumerable.rb
148
+ - corelib/enumerator.rb
149
+ - corelib/error.rb
150
+ - corelib/hash.rb
151
+ - corelib/io.rb
152
+ - corelib/kernel.rb
153
+ - corelib/module.rb
154
+ - corelib/native.rb
155
+ - corelib/nil_class.rb
156
+ - corelib/numeric.rb
125
157
  - corelib/opal.rb
126
- - corelib/opal/array.rb
127
- - corelib/opal/basic_object.rb
128
- - corelib/opal/boolean.rb
129
- - corelib/opal/class.rb
130
- - corelib/opal/comparable.rb
131
- - corelib/opal/enumerable.rb
132
- - corelib/opal/enumerator.rb
133
- - corelib/opal/error.rb
134
- - corelib/opal/hash.rb
135
- - corelib/opal/kernel.rb
136
- - corelib/opal/native.rb
137
- - corelib/opal/nil_class.rb
138
- - corelib/opal/numeric.rb
139
- - corelib/opal/proc.rb
140
- - corelib/opal/range.rb
141
- - corelib/opal/regexp.rb
142
- - corelib/opal/runtime.js
143
- - corelib/opal/string.rb
144
- - corelib/opal/time.rb
158
+ - corelib/proc.rb
159
+ - corelib/range.rb
160
+ - corelib/regexp.rb
161
+ - corelib/runtime.js
162
+ - corelib/string.rb
163
+ - corelib/struct.rb
164
+ - corelib/time.rb
145
165
  - lib/opal.rb
146
166
  - lib/opal/builder.rb
147
167
  - lib/opal/cli.rb
168
+ - lib/opal/cli_options.rb
148
169
  - lib/opal/core_ext.rb
149
170
  - lib/opal/erb.rb
150
171
  - lib/opal/grammar.rb
@@ -157,8 +178,94 @@ files:
157
178
  - lib/opal/source_map.rb
158
179
  - lib/opal/target_scope.rb
159
180
  - lib/opal/version.rb
181
+ - mri_spec/cli_spec.rb
182
+ - mri_spec/fixtures/opal_file.rb
183
+ - mri_spec/spec_helper.rb
160
184
  - opal.gemspec
161
185
  - spec/config.ru
186
+ - spec/filters/bugs/alias.rb
187
+ - spec/filters/bugs/ancestors.rb
188
+ - spec/filters/bugs/array.rb
189
+ - spec/filters/bugs/array/combination.rb
190
+ - spec/filters/bugs/array/count.rb
191
+ - spec/filters/bugs/array/delete_if.rb
192
+ - spec/filters/bugs/array/drop.rb
193
+ - spec/filters/bugs/array/drop_while.rb
194
+ - spec/filters/bugs/array/eql.rb
195
+ - spec/filters/bugs/array/flatten.rb
196
+ - spec/filters/bugs/array/minus.rb
197
+ - spec/filters/bugs/array/multipliy.rb
198
+ - spec/filters/bugs/array/new.rb
199
+ - spec/filters/bugs/array/pop.rb
200
+ - spec/filters/bugs/array/rassoc.rb
201
+ - spec/filters/bugs/array/rindex.rb
202
+ - spec/filters/bugs/array/select.rb
203
+ - spec/filters/bugs/array/shift.rb
204
+ - spec/filters/bugs/array/shuffle.rb
205
+ - spec/filters/bugs/array/slice.rb
206
+ - spec/filters/bugs/array/take.rb
207
+ - spec/filters/bugs/array/to_a.rb
208
+ - spec/filters/bugs/array/try_convert.rb
209
+ - spec/filters/bugs/array/uniq.rb
210
+ - spec/filters/bugs/array/zip.rb
211
+ - spec/filters/bugs/array_delete.rb
212
+ - spec/filters/bugs/array_fetch.rb
213
+ - spec/filters/bugs/array_first.rb
214
+ - spec/filters/bugs/array_flatten.rb
215
+ - spec/filters/bugs/array_intersection.rb
216
+ - spec/filters/bugs/array_join.rb
217
+ - spec/filters/bugs/break.rb
218
+ - spec/filters/bugs/case.rb
219
+ - spec/filters/bugs/coerce_integer.rb
220
+ - spec/filters/bugs/enumerable_sort_by.rb
221
+ - spec/filters/bugs/kernel/instance_variables.rb
222
+ - spec/filters/bugs/kernel/rand.rb
223
+ - spec/filters/bugs/language/array.rb
224
+ - spec/filters/bugs/language/block.rb
225
+ - spec/filters/bugs/language/break.rb
226
+ - spec/filters/bugs/language/class.rb
227
+ - spec/filters/bugs/language/class_variables.rb
228
+ - spec/filters/bugs/language/def.rb
229
+ - spec/filters/bugs/language/defined.rb
230
+ - spec/filters/bugs/language/ensure.rb
231
+ - spec/filters/bugs/language/execution.rb
232
+ - spec/filters/bugs/language/for.rb
233
+ - spec/filters/bugs/language/if.rb
234
+ - spec/filters/bugs/language/loop.rb
235
+ - spec/filters/bugs/language/metaclass.rb
236
+ - spec/filters/bugs/language/module.rb
237
+ - spec/filters/bugs/language/next.rb
238
+ - spec/filters/bugs/language/or.rb
239
+ - spec/filters/bugs/language/order.rb
240
+ - spec/filters/bugs/language/precedence.rb
241
+ - spec/filters/bugs/language/proc.rb
242
+ - spec/filters/bugs/language/redo.rb
243
+ - spec/filters/bugs/language/rescue.rb
244
+ - spec/filters/bugs/language/retry.rb
245
+ - spec/filters/bugs/language/send.rb
246
+ - spec/filters/bugs/language/super.rb
247
+ - spec/filters/bugs/language/until.rb
248
+ - spec/filters/bugs/language/variables.rb
249
+ - spec/filters/bugs/language/while.rb
250
+ - spec/filters/bugs/language/yield.rb
251
+ - spec/filters/bugs/module/class_variables.rb
252
+ - spec/filters/bugs/module/method_defined.rb
253
+ - spec/filters/bugs/parser.rb
254
+ - spec/filters/bugs/public_methods.rb
255
+ - spec/filters/bugs/return.rb
256
+ - spec/filters/bugs/singleton/instance.rb
257
+ - spec/filters/bugs/source_map.rb
258
+ - spec/filters/bugs/string/center.rb
259
+ - spec/filters/bugs/string/lines.rb
260
+ - spec/filters/mspec/mocks.rb
261
+ - spec/filters/mspec/ruby_exe.rb
262
+ - spec/filters/mspec/should_receive.rb
263
+ - spec/filters/parser/block_args.rb
264
+ - spec/filters/unsupported/array_subclasses.rb
265
+ - spec/filters/unsupported/frozen.rb
266
+ - spec/filters/unsupported/immutable_strings.rb
267
+ - spec/filters/unsupported/tainted.rb
268
+ - spec/filters/unsupported/trusted.rb
162
269
  - spec/index.html
163
270
  - spec/mspec/guards/block_device.rb
164
271
  - spec/mspec/guards/endian.rb
@@ -174,7 +281,7 @@ files:
174
281
  - spec/opal/boolean/singleton_class_spec.rb
175
282
  - spec/opal/boolean/to_json_spec.rb
176
283
  - spec/opal/browser/local_storage_spec.rb
177
- - spec/opal/class/bridge_class_spec.rb
284
+ - spec/opal/class/constants_spec.rb
178
285
  - spec/opal/class/extend_spec.rb
179
286
  - spec/opal/class/instance_methods_spec.rb
180
287
  - spec/opal/class/last_value_spec.rb
@@ -182,14 +289,19 @@ files:
182
289
  - spec/opal/class/singleton_methods_spec.rb
183
290
  - spec/opal/constants_spec.rb
184
291
  - spec/opal/erb/erb_spec.rb
292
+ - spec/opal/erb/inline_block.opalerb
185
293
  - spec/opal/erb/quoted.opalerb
186
294
  - spec/opal/erb/simple.opalerb
295
+ - spec/opal/hash/allocate_spec.rb
296
+ - spec/opal/hash/new_spec.rb
297
+ - spec/opal/hash/to_s_spec.rb
187
298
  - spec/opal/json/parse_spec.rb
188
299
  - spec/opal/kernel/block_given_spec.rb
189
300
  - spec/opal/kernel/class_spec.rb
190
301
  - spec/opal/kernel/extend_spec.rb
191
302
  - spec/opal/kernel/format_spec.rb
192
303
  - spec/opal/kernel/freeze_spec.rb
304
+ - spec/opal/kernel/instance_variable_defined_spec.rb
193
305
  - spec/opal/kernel/match_spec.rb
194
306
  - spec/opal/kernel/method_spec.rb
195
307
  - spec/opal/kernel/methods_spec.rb
@@ -201,13 +313,25 @@ files:
201
313
  - spec/opal/kernel/respond_to_spec.rb
202
314
  - spec/opal/kernel/sprintf_spec.rb
203
315
  - spec/opal/kernel/to_json_spec.rb
316
+ - spec/opal/language/block_spec.rb
317
+ - spec/opal/language/rescue_spec.rb
318
+ - spec/opal/language/return_spec.rb
319
+ - spec/opal/language/singleton_class_spec.rb
320
+ - spec/opal/language/super_spec.rb
321
+ - spec/opal/language/variables_spec.rb
204
322
  - spec/opal/method_missing_spec.rb
205
323
  - spec/opal/module/alias_method_spec.rb
206
324
  - spec/opal/module/ancestors_spec.rb
207
325
  - spec/opal/module/append_features_spec.rb
326
+ - spec/opal/module/attr_accessor_spec.rb
208
327
  - spec/opal/module/constants_spec.rb
209
328
  - spec/opal/module/module_function_spec.rb
210
- - spec/opal/native_spec.rb
329
+ - spec/opal/native/alias_native_spec.rb
330
+ - spec/opal/native/each_spec.rb
331
+ - spec/opal/native/element_reference_spec.rb
332
+ - spec/opal/native/method_missing_spec.rb
333
+ - spec/opal/native/new_spec.rb
334
+ - spec/opal/native/nil_spec.rb
211
335
  - spec/opal/nil/to_json_spec.rb
212
336
  - spec/opal/numeric/equal_spec.rb
213
337
  - spec/opal/parser/irb_spec.rb
@@ -224,7 +348,6 @@ files:
224
348
  - spec/opal/string/freeze_spec.rb
225
349
  - spec/opal/string/to_json_spec.rb
226
350
  - spec/ospec/main.rb.erb
227
- - spec/ospec/runner.rb
228
351
  - spec/ospec/sprockets.js
229
352
  - spec/parser/alias_spec.rb
230
353
  - spec/parser/and_spec.rb
@@ -259,6 +382,7 @@ files:
259
382
  - spec/parser/op_asgn1_spec.rb
260
383
  - spec/parser/op_asgn2_spec.rb
261
384
  - spec/parser/or_spec.rb
385
+ - spec/parser/parse_spec.rb
262
386
  - spec/parser/parser_spec.rb
263
387
  - spec/parser/regexp_spec.rb
264
388
  - spec/parser/return_spec.rb
@@ -456,6 +580,8 @@ files:
456
580
  - spec/rubyspec/core/module/const_set_spec.rb
457
581
  - spec/rubyspec/core/module/fixtures/classes.rb
458
582
  - spec/rubyspec/core/module/method_defined_spec.rb
583
+ - spec/rubyspec/core/module/public_method_defined_spec.rb
584
+ - spec/rubyspec/core/module/remove_const_spec.rb
459
585
  - spec/rubyspec/core/module/undef_method_spec.rb
460
586
  - spec/rubyspec/core/nil/and_spec.rb
461
587
  - spec/rubyspec/core/nil/dup_spec.rb
@@ -499,6 +625,7 @@ files:
499
625
  - spec/rubyspec/core/numeric/plus_spec.rb
500
626
  - spec/rubyspec/core/numeric/pred_spec.rb
501
627
  - spec/rubyspec/core/numeric/right_shift_spec.rb
628
+ - spec/rubyspec/core/numeric/step_spec.rb
502
629
  - spec/rubyspec/core/numeric/succ_spec.rb
503
630
  - spec/rubyspec/core/numeric/times_spec.rb
504
631
  - spec/rubyspec/core/numeric/to_f_spec.rb
@@ -564,6 +691,9 @@ files:
564
691
  - spec/rubyspec/core/string/tr_s_spec.rb
565
692
  - spec/rubyspec/core/string/tr_spec.rb
566
693
  - spec/rubyspec/core/string/upcase_spec.rb
694
+ - spec/rubyspec/core/struct/fixtures/classes.rb
695
+ - spec/rubyspec/core/struct/initialize_spec.rb
696
+ - spec/rubyspec/core/struct/new_spec.rb
567
697
  - spec/rubyspec/core/symbol/to_proc_spec.rb
568
698
  - spec/rubyspec/core/time/at_spec.rb
569
699
  - spec/rubyspec/core/time/day_spec.rb
@@ -579,32 +709,6 @@ files:
579
709
  - spec/rubyspec/core/true/or_spec.rb
580
710
  - spec/rubyspec/core/true/to_s_spec.rb
581
711
  - spec/rubyspec/core/true/xor_spec.rb
582
- - spec/rubyspec/filters/bugs/alias.rb
583
- - spec/rubyspec/filters/bugs/ancestors.rb
584
- - spec/rubyspec/filters/bugs/array.rb
585
- - spec/rubyspec/filters/bugs/array_delete.rb
586
- - spec/rubyspec/filters/bugs/array_fetch.rb
587
- - spec/rubyspec/filters/bugs/array_first.rb
588
- - spec/rubyspec/filters/bugs/array_flatten.rb
589
- - spec/rubyspec/filters/bugs/array_intersection.rb
590
- - spec/rubyspec/filters/bugs/array_join.rb
591
- - spec/rubyspec/filters/bugs/block_args.rb
592
- - spec/rubyspec/filters/bugs/break.rb
593
- - spec/rubyspec/filters/bugs/case.rb
594
- - spec/rubyspec/filters/bugs/coerce_integer.rb
595
- - spec/rubyspec/filters/bugs/kernel/instance_variables.rb
596
- - spec/rubyspec/filters/bugs/language/class.rb
597
- - spec/rubyspec/filters/bugs/language/class_variables.rb
598
- - spec/rubyspec/filters/bugs/language/module.rb
599
- - spec/rubyspec/filters/bugs/module/class_variables.rb
600
- - spec/rubyspec/filters/bugs/public_methods.rb
601
- - spec/rubyspec/filters/mspec/mocks.rb
602
- - spec/rubyspec/filters/mspec/ruby_exe.rb
603
- - spec/rubyspec/filters/mspec/should_receive.rb
604
- - spec/rubyspec/filters/parser/block_args.rb
605
- - spec/rubyspec/filters/unsupported/array_subclasses.rb
606
- - spec/rubyspec/filters/unsupported/frozen.rb
607
- - spec/rubyspec/filters/unsupported/tainted.rb
608
712
  - spec/rubyspec/fixtures/class.rb
609
713
  - spec/rubyspec/fixtures/class_variables.rb
610
714
  - spec/rubyspec/fixtures/constants.rb
@@ -664,6 +768,8 @@ files:
664
768
  - spec/rubyspec/language/until_spec.rb
665
769
  - spec/rubyspec/language/variables_spec.rb
666
770
  - spec/rubyspec/language/versions/array_1.9.rb
771
+ - spec/rubyspec/language/versions/block_1.9.rb
772
+ - spec/rubyspec/language/versions/break_1.9.rb
667
773
  - spec/rubyspec/language/versions/case_1.9.rb
668
774
  - spec/rubyspec/language/versions/hash_1.9.rb
669
775
  - spec/rubyspec/language/versions/literal_lambda_1.9.rb
@@ -676,6 +782,7 @@ files:
676
782
  - spec/rubyspec/library/date/new_spec.rb
677
783
  - spec/rubyspec/library/date/to_s_spec.rb
678
784
  - spec/rubyspec/library/date/today_spec.rb
785
+ - spec/rubyspec/library/erb/util/html_escape_spec.rb
679
786
  - spec/rubyspec/library/observer/add_observer_spec.rb
680
787
  - spec/rubyspec/library/observer/count_observers_spec.rb
681
788
  - spec/rubyspec/library/observer/delete_observer_spec.rb
@@ -683,13 +790,21 @@ files:
683
790
  - spec/rubyspec/library/observer/fixtures/classes.rb
684
791
  - spec/rubyspec/library/observer/notify_observers_spec.rb
685
792
  - spec/rubyspec/library/rbconfig/config_spec.rb
793
+ - spec/rubyspec/library/singleton/clone_spec.rb
794
+ - spec/rubyspec/library/singleton/dup_spec.rb
795
+ - spec/rubyspec/library/singleton/fixtures/classes.rb
796
+ - spec/rubyspec/library/singleton/instance_spec.rb
686
797
  - spec/rubyspec/library/stringscanner/element_reference_spec.rb
687
798
  - spec/rubyspec/library/stringscanner/pos_spec.rb
688
799
  - spec/rubyspec/spec_helper.rb
689
800
  - spec/spec_helper.rb
801
+ - stdlib/buffer.rb
802
+ - stdlib/buffer/array.rb
803
+ - stdlib/buffer/view.rb
690
804
  - stdlib/date.rb
691
805
  - stdlib/erb.rb
692
806
  - stdlib/fileutils.rb
807
+ - stdlib/forwardable.rb
693
808
  - stdlib/iconv.rb
694
809
  - stdlib/json.rb
695
810
  - stdlib/observer.rb
@@ -697,14 +812,18 @@ files:
697
812
  - stdlib/opal-browser/script_loader.rb
698
813
  - stdlib/opal-parser.js.erb
699
814
  - stdlib/opal-source-maps.js.erb
815
+ - stdlib/ostruct.rb
700
816
  - stdlib/pp.rb
701
817
  - stdlib/racc.rb
702
818
  - stdlib/rbconfig.rb
819
+ - stdlib/singleton.rb
703
820
  - stdlib/source_map.rb
704
821
  - stdlib/source_map/generator.rb
705
822
  - stdlib/source_map/parser.rb
706
823
  - stdlib/source_map/vlq.rb
824
+ - stdlib/stringio.rb
707
825
  - stdlib/strscan.rb
826
+ - stdlib/template.rb
708
827
  - stdlib/yaml.rb
709
828
  homepage: http://opalrb.org
710
829
  licenses: []
@@ -732,6 +851,89 @@ specification_version: 3
732
851
  summary: Ruby runtime and core library for javascript
733
852
  test_files:
734
853
  - spec/config.ru
854
+ - spec/filters/bugs/alias.rb
855
+ - spec/filters/bugs/ancestors.rb
856
+ - spec/filters/bugs/array.rb
857
+ - spec/filters/bugs/array/combination.rb
858
+ - spec/filters/bugs/array/count.rb
859
+ - spec/filters/bugs/array/delete_if.rb
860
+ - spec/filters/bugs/array/drop.rb
861
+ - spec/filters/bugs/array/drop_while.rb
862
+ - spec/filters/bugs/array/eql.rb
863
+ - spec/filters/bugs/array/flatten.rb
864
+ - spec/filters/bugs/array/minus.rb
865
+ - spec/filters/bugs/array/multipliy.rb
866
+ - spec/filters/bugs/array/new.rb
867
+ - spec/filters/bugs/array/pop.rb
868
+ - spec/filters/bugs/array/rassoc.rb
869
+ - spec/filters/bugs/array/rindex.rb
870
+ - spec/filters/bugs/array/select.rb
871
+ - spec/filters/bugs/array/shift.rb
872
+ - spec/filters/bugs/array/shuffle.rb
873
+ - spec/filters/bugs/array/slice.rb
874
+ - spec/filters/bugs/array/take.rb
875
+ - spec/filters/bugs/array/to_a.rb
876
+ - spec/filters/bugs/array/try_convert.rb
877
+ - spec/filters/bugs/array/uniq.rb
878
+ - spec/filters/bugs/array/zip.rb
879
+ - spec/filters/bugs/array_delete.rb
880
+ - spec/filters/bugs/array_fetch.rb
881
+ - spec/filters/bugs/array_first.rb
882
+ - spec/filters/bugs/array_flatten.rb
883
+ - spec/filters/bugs/array_intersection.rb
884
+ - spec/filters/bugs/array_join.rb
885
+ - spec/filters/bugs/break.rb
886
+ - spec/filters/bugs/case.rb
887
+ - spec/filters/bugs/coerce_integer.rb
888
+ - spec/filters/bugs/enumerable_sort_by.rb
889
+ - spec/filters/bugs/kernel/instance_variables.rb
890
+ - spec/filters/bugs/kernel/rand.rb
891
+ - spec/filters/bugs/language/array.rb
892
+ - spec/filters/bugs/language/block.rb
893
+ - spec/filters/bugs/language/break.rb
894
+ - spec/filters/bugs/language/class.rb
895
+ - spec/filters/bugs/language/class_variables.rb
896
+ - spec/filters/bugs/language/def.rb
897
+ - spec/filters/bugs/language/defined.rb
898
+ - spec/filters/bugs/language/ensure.rb
899
+ - spec/filters/bugs/language/execution.rb
900
+ - spec/filters/bugs/language/for.rb
901
+ - spec/filters/bugs/language/if.rb
902
+ - spec/filters/bugs/language/loop.rb
903
+ - spec/filters/bugs/language/metaclass.rb
904
+ - spec/filters/bugs/language/module.rb
905
+ - spec/filters/bugs/language/next.rb
906
+ - spec/filters/bugs/language/or.rb
907
+ - spec/filters/bugs/language/order.rb
908
+ - spec/filters/bugs/language/precedence.rb
909
+ - spec/filters/bugs/language/proc.rb
910
+ - spec/filters/bugs/language/redo.rb
911
+ - spec/filters/bugs/language/rescue.rb
912
+ - spec/filters/bugs/language/retry.rb
913
+ - spec/filters/bugs/language/send.rb
914
+ - spec/filters/bugs/language/super.rb
915
+ - spec/filters/bugs/language/until.rb
916
+ - spec/filters/bugs/language/variables.rb
917
+ - spec/filters/bugs/language/while.rb
918
+ - spec/filters/bugs/language/yield.rb
919
+ - spec/filters/bugs/module/class_variables.rb
920
+ - spec/filters/bugs/module/method_defined.rb
921
+ - spec/filters/bugs/parser.rb
922
+ - spec/filters/bugs/public_methods.rb
923
+ - spec/filters/bugs/return.rb
924
+ - spec/filters/bugs/singleton/instance.rb
925
+ - spec/filters/bugs/source_map.rb
926
+ - spec/filters/bugs/string/center.rb
927
+ - spec/filters/bugs/string/lines.rb
928
+ - spec/filters/mspec/mocks.rb
929
+ - spec/filters/mspec/ruby_exe.rb
930
+ - spec/filters/mspec/should_receive.rb
931
+ - spec/filters/parser/block_args.rb
932
+ - spec/filters/unsupported/array_subclasses.rb
933
+ - spec/filters/unsupported/frozen.rb
934
+ - spec/filters/unsupported/immutable_strings.rb
935
+ - spec/filters/unsupported/tainted.rb
936
+ - spec/filters/unsupported/trusted.rb
735
937
  - spec/index.html
736
938
  - spec/mspec/guards/block_device.rb
737
939
  - spec/mspec/guards/endian.rb
@@ -747,7 +949,7 @@ test_files:
747
949
  - spec/opal/boolean/singleton_class_spec.rb
748
950
  - spec/opal/boolean/to_json_spec.rb
749
951
  - spec/opal/browser/local_storage_spec.rb
750
- - spec/opal/class/bridge_class_spec.rb
952
+ - spec/opal/class/constants_spec.rb
751
953
  - spec/opal/class/extend_spec.rb
752
954
  - spec/opal/class/instance_methods_spec.rb
753
955
  - spec/opal/class/last_value_spec.rb
@@ -755,14 +957,19 @@ test_files:
755
957
  - spec/opal/class/singleton_methods_spec.rb
756
958
  - spec/opal/constants_spec.rb
757
959
  - spec/opal/erb/erb_spec.rb
960
+ - spec/opal/erb/inline_block.opalerb
758
961
  - spec/opal/erb/quoted.opalerb
759
962
  - spec/opal/erb/simple.opalerb
963
+ - spec/opal/hash/allocate_spec.rb
964
+ - spec/opal/hash/new_spec.rb
965
+ - spec/opal/hash/to_s_spec.rb
760
966
  - spec/opal/json/parse_spec.rb
761
967
  - spec/opal/kernel/block_given_spec.rb
762
968
  - spec/opal/kernel/class_spec.rb
763
969
  - spec/opal/kernel/extend_spec.rb
764
970
  - spec/opal/kernel/format_spec.rb
765
971
  - spec/opal/kernel/freeze_spec.rb
972
+ - spec/opal/kernel/instance_variable_defined_spec.rb
766
973
  - spec/opal/kernel/match_spec.rb
767
974
  - spec/opal/kernel/method_spec.rb
768
975
  - spec/opal/kernel/methods_spec.rb
@@ -774,13 +981,25 @@ test_files:
774
981
  - spec/opal/kernel/respond_to_spec.rb
775
982
  - spec/opal/kernel/sprintf_spec.rb
776
983
  - spec/opal/kernel/to_json_spec.rb
984
+ - spec/opal/language/block_spec.rb
985
+ - spec/opal/language/rescue_spec.rb
986
+ - spec/opal/language/return_spec.rb
987
+ - spec/opal/language/singleton_class_spec.rb
988
+ - spec/opal/language/super_spec.rb
989
+ - spec/opal/language/variables_spec.rb
777
990
  - spec/opal/method_missing_spec.rb
778
991
  - spec/opal/module/alias_method_spec.rb
779
992
  - spec/opal/module/ancestors_spec.rb
780
993
  - spec/opal/module/append_features_spec.rb
994
+ - spec/opal/module/attr_accessor_spec.rb
781
995
  - spec/opal/module/constants_spec.rb
782
996
  - spec/opal/module/module_function_spec.rb
783
- - spec/opal/native_spec.rb
997
+ - spec/opal/native/alias_native_spec.rb
998
+ - spec/opal/native/each_spec.rb
999
+ - spec/opal/native/element_reference_spec.rb
1000
+ - spec/opal/native/method_missing_spec.rb
1001
+ - spec/opal/native/new_spec.rb
1002
+ - spec/opal/native/nil_spec.rb
784
1003
  - spec/opal/nil/to_json_spec.rb
785
1004
  - spec/opal/numeric/equal_spec.rb
786
1005
  - spec/opal/parser/irb_spec.rb
@@ -797,7 +1016,6 @@ test_files:
797
1016
  - spec/opal/string/freeze_spec.rb
798
1017
  - spec/opal/string/to_json_spec.rb
799
1018
  - spec/ospec/main.rb.erb
800
- - spec/ospec/runner.rb
801
1019
  - spec/ospec/sprockets.js
802
1020
  - spec/parser/alias_spec.rb
803
1021
  - spec/parser/and_spec.rb
@@ -832,6 +1050,7 @@ test_files:
832
1050
  - spec/parser/op_asgn1_spec.rb
833
1051
  - spec/parser/op_asgn2_spec.rb
834
1052
  - spec/parser/or_spec.rb
1053
+ - spec/parser/parse_spec.rb
835
1054
  - spec/parser/parser_spec.rb
836
1055
  - spec/parser/regexp_spec.rb
837
1056
  - spec/parser/return_spec.rb
@@ -1029,6 +1248,8 @@ test_files:
1029
1248
  - spec/rubyspec/core/module/const_set_spec.rb
1030
1249
  - spec/rubyspec/core/module/fixtures/classes.rb
1031
1250
  - spec/rubyspec/core/module/method_defined_spec.rb
1251
+ - spec/rubyspec/core/module/public_method_defined_spec.rb
1252
+ - spec/rubyspec/core/module/remove_const_spec.rb
1032
1253
  - spec/rubyspec/core/module/undef_method_spec.rb
1033
1254
  - spec/rubyspec/core/nil/and_spec.rb
1034
1255
  - spec/rubyspec/core/nil/dup_spec.rb
@@ -1072,6 +1293,7 @@ test_files:
1072
1293
  - spec/rubyspec/core/numeric/plus_spec.rb
1073
1294
  - spec/rubyspec/core/numeric/pred_spec.rb
1074
1295
  - spec/rubyspec/core/numeric/right_shift_spec.rb
1296
+ - spec/rubyspec/core/numeric/step_spec.rb
1075
1297
  - spec/rubyspec/core/numeric/succ_spec.rb
1076
1298
  - spec/rubyspec/core/numeric/times_spec.rb
1077
1299
  - spec/rubyspec/core/numeric/to_f_spec.rb
@@ -1137,6 +1359,9 @@ test_files:
1137
1359
  - spec/rubyspec/core/string/tr_s_spec.rb
1138
1360
  - spec/rubyspec/core/string/tr_spec.rb
1139
1361
  - spec/rubyspec/core/string/upcase_spec.rb
1362
+ - spec/rubyspec/core/struct/fixtures/classes.rb
1363
+ - spec/rubyspec/core/struct/initialize_spec.rb
1364
+ - spec/rubyspec/core/struct/new_spec.rb
1140
1365
  - spec/rubyspec/core/symbol/to_proc_spec.rb
1141
1366
  - spec/rubyspec/core/time/at_spec.rb
1142
1367
  - spec/rubyspec/core/time/day_spec.rb
@@ -1152,32 +1377,6 @@ test_files:
1152
1377
  - spec/rubyspec/core/true/or_spec.rb
1153
1378
  - spec/rubyspec/core/true/to_s_spec.rb
1154
1379
  - spec/rubyspec/core/true/xor_spec.rb
1155
- - spec/rubyspec/filters/bugs/alias.rb
1156
- - spec/rubyspec/filters/bugs/ancestors.rb
1157
- - spec/rubyspec/filters/bugs/array.rb
1158
- - spec/rubyspec/filters/bugs/array_delete.rb
1159
- - spec/rubyspec/filters/bugs/array_fetch.rb
1160
- - spec/rubyspec/filters/bugs/array_first.rb
1161
- - spec/rubyspec/filters/bugs/array_flatten.rb
1162
- - spec/rubyspec/filters/bugs/array_intersection.rb
1163
- - spec/rubyspec/filters/bugs/array_join.rb
1164
- - spec/rubyspec/filters/bugs/block_args.rb
1165
- - spec/rubyspec/filters/bugs/break.rb
1166
- - spec/rubyspec/filters/bugs/case.rb
1167
- - spec/rubyspec/filters/bugs/coerce_integer.rb
1168
- - spec/rubyspec/filters/bugs/kernel/instance_variables.rb
1169
- - spec/rubyspec/filters/bugs/language/class.rb
1170
- - spec/rubyspec/filters/bugs/language/class_variables.rb
1171
- - spec/rubyspec/filters/bugs/language/module.rb
1172
- - spec/rubyspec/filters/bugs/module/class_variables.rb
1173
- - spec/rubyspec/filters/bugs/public_methods.rb
1174
- - spec/rubyspec/filters/mspec/mocks.rb
1175
- - spec/rubyspec/filters/mspec/ruby_exe.rb
1176
- - spec/rubyspec/filters/mspec/should_receive.rb
1177
- - spec/rubyspec/filters/parser/block_args.rb
1178
- - spec/rubyspec/filters/unsupported/array_subclasses.rb
1179
- - spec/rubyspec/filters/unsupported/frozen.rb
1180
- - spec/rubyspec/filters/unsupported/tainted.rb
1181
1380
  - spec/rubyspec/fixtures/class.rb
1182
1381
  - spec/rubyspec/fixtures/class_variables.rb
1183
1382
  - spec/rubyspec/fixtures/constants.rb
@@ -1237,6 +1436,8 @@ test_files:
1237
1436
  - spec/rubyspec/language/until_spec.rb
1238
1437
  - spec/rubyspec/language/variables_spec.rb
1239
1438
  - spec/rubyspec/language/versions/array_1.9.rb
1439
+ - spec/rubyspec/language/versions/block_1.9.rb
1440
+ - spec/rubyspec/language/versions/break_1.9.rb
1240
1441
  - spec/rubyspec/language/versions/case_1.9.rb
1241
1442
  - spec/rubyspec/language/versions/hash_1.9.rb
1242
1443
  - spec/rubyspec/language/versions/literal_lambda_1.9.rb
@@ -1249,6 +1450,7 @@ test_files:
1249
1450
  - spec/rubyspec/library/date/new_spec.rb
1250
1451
  - spec/rubyspec/library/date/to_s_spec.rb
1251
1452
  - spec/rubyspec/library/date/today_spec.rb
1453
+ - spec/rubyspec/library/erb/util/html_escape_spec.rb
1252
1454
  - spec/rubyspec/library/observer/add_observer_spec.rb
1253
1455
  - spec/rubyspec/library/observer/count_observers_spec.rb
1254
1456
  - spec/rubyspec/library/observer/delete_observer_spec.rb
@@ -1256,6 +1458,10 @@ test_files:
1256
1458
  - spec/rubyspec/library/observer/fixtures/classes.rb
1257
1459
  - spec/rubyspec/library/observer/notify_observers_spec.rb
1258
1460
  - spec/rubyspec/library/rbconfig/config_spec.rb
1461
+ - spec/rubyspec/library/singleton/clone_spec.rb
1462
+ - spec/rubyspec/library/singleton/dup_spec.rb
1463
+ - spec/rubyspec/library/singleton/fixtures/classes.rb
1464
+ - spec/rubyspec/library/singleton/instance_spec.rb
1259
1465
  - spec/rubyspec/library/stringscanner/element_reference_spec.rb
1260
1466
  - spec/rubyspec/library/stringscanner/pos_spec.rb
1261
1467
  - spec/rubyspec/spec_helper.rb