opal 0.6.0 → 0.6.1

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 (87) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.gitmodules +27 -3
  4. data/.rspec +1 -1
  5. data/CHANGELOG.md +29 -5
  6. data/README.md +30 -3
  7. data/Rakefile +18 -9
  8. data/bin/opal +1 -1
  9. data/bin/opal-build +70 -7
  10. data/lib/mspec/opal/rake_task.rb +6 -9
  11. data/lib/opal/cli.rb +2 -2
  12. data/lib/opal/nodes/call.rb +1 -1
  13. data/lib/opal/nodes/def.rb +1 -1
  14. data/lib/opal/nodes/rescue.rb +19 -18
  15. data/lib/opal/parser/grammar.rb +8 -3
  16. data/lib/opal/parser/grammar.y +4 -0
  17. data/lib/opal/parser/lexer.rb +10 -5
  18. data/lib/opal/sprockets/environment.rb +9 -0
  19. data/lib/opal/sprockets/erb.rb +9 -1
  20. data/lib/opal/sprockets/processor.rb +10 -14
  21. data/lib/opal/util.rb +50 -15
  22. data/lib/opal/version.rb +1 -1
  23. data/opal.gemspec +4 -4
  24. data/opal/corelib/enumerable.rb +1 -1
  25. data/opal/corelib/enumerator.rb +7 -3
  26. data/opal/corelib/hash.rb +38 -14
  27. data/opal/corelib/kernel.rb +6 -2
  28. data/opal/corelib/module.rb +15 -1
  29. data/opal/corelib/runtime.js +32 -2
  30. data/opal/corelib/string.rb +103 -53
  31. data/opal/corelib/variables.rb +3 -3
  32. data/spec/cli/fixtures/sprockets_file.js.rb +3 -0
  33. data/spec/cli/parser/literal_spec.rb +5 -0
  34. data/spec/cli/sprockets/environment_spec.rb +14 -0
  35. data/spec/cli/sprockets/erb_spec.rb +25 -0
  36. data/spec/cli/sprockets/processor_spec.rb +28 -0
  37. data/spec/{opal/filters → filters}/bugs/array.rb +29 -9
  38. data/spec/{opal/filters → filters}/bugs/basic_object.rb +2 -0
  39. data/spec/{opal/filters → filters}/bugs/class.rb +1 -0
  40. data/spec/{opal/filters → filters}/bugs/enumerable.rb +6 -2
  41. data/spec/filters/bugs/enumerator.rb +3 -0
  42. data/spec/{opal/filters → filters}/bugs/hash.rb +6 -24
  43. data/spec/{opal/filters → filters}/bugs/kernel.rb +0 -0
  44. data/spec/{opal/filters → filters}/bugs/language.rb +14 -3
  45. data/spec/{opal/filters → filters}/bugs/math.rb +3 -1
  46. data/spec/{opal/filters → filters}/bugs/module.rb +0 -0
  47. data/spec/{opal/filters → filters}/bugs/nil.rb +0 -0
  48. data/spec/{opal/filters → filters}/bugs/numeric.rb +1 -1
  49. data/spec/{opal/filters → filters}/bugs/opal.rb +0 -0
  50. data/spec/filters/bugs/regexp.rb +7 -0
  51. data/spec/{opal/filters → filters}/bugs/set.rb +0 -0
  52. data/spec/{opal/filters → filters}/bugs/singleton.rb +0 -0
  53. data/spec/{opal/filters → filters}/bugs/string.rb +40 -13
  54. data/spec/{opal/filters → filters}/bugs/stringscanner.rb +1 -0
  55. data/spec/{opal/filters → filters}/bugs/struct.rb +7 -2
  56. data/spec/{opal/filters → filters}/bugs/symbol.rb +0 -0
  57. data/spec/{opal/filters → filters}/bugs/time.rb +23 -0
  58. data/spec/{opal/filters → filters}/bugs/unknown.rb +0 -0
  59. data/spec/{opal/filters → filters}/unsupported/encoding.rb +34 -1
  60. data/spec/{opal/filters → filters}/unsupported/enumerator.rb +1 -0
  61. data/spec/{opal/filters → filters}/unsupported/float.rb +0 -0
  62. data/spec/{opal/filters → filters}/unsupported/frozen.rb +3 -2
  63. data/spec/{opal/filters → filters}/unsupported/hash_compare_by_identity.rb +0 -0
  64. data/spec/{opal/filters → filters}/unsupported/integer_size.rb +0 -0
  65. data/spec/{opal/filters → filters}/unsupported/method_added.rb +0 -0
  66. data/spec/{opal/filters → filters}/unsupported/mutable_strings.rb +14 -0
  67. data/spec/{opal/filters → filters}/unsupported/private_constants.rb +0 -0
  68. data/spec/{opal/filters → filters}/unsupported/private_methods.rb +0 -0
  69. data/spec/{opal/filters → filters}/unsupported/random.rb +0 -0
  70. data/spec/{opal/filters → filters}/unsupported/ruby_exe.rb +0 -0
  71. data/spec/{opal/filters → filters}/unsupported/tainted.rb +11 -0
  72. data/spec/{opal/filters → filters}/unsupported/time.rb +0 -0
  73. data/spec/{opal/filters → filters}/unsupported/trusted.rb +14 -0
  74. data/spec/opal/core/kernel/methods_spec.rb +16 -2
  75. data/spec/opal/core/language/string_spec.rb +29 -1
  76. data/spec/opal/core/module/remove_const_spec.rb +1 -1
  77. data/spec/opal/stdlib/erb/erb_spec.rb +3 -3
  78. data/spec/opal/stdlib/native/native_reader_spec.rb +22 -0
  79. data/spec/opal/stdlib/native/native_writer_spec.rb +30 -0
  80. data/spec/rubyspecs +285 -0
  81. data/spec/{opal/spec_helper.rb → spec_helper.rb} +0 -0
  82. data/stdlib/native.rb +21 -0
  83. data/stdlib/opal-parser.rb +14 -3
  84. data/stdlib/promise.rb +2 -2
  85. metadata +113 -97
  86. data/spec/opal/filters/bugs/regexp.rb +0 -5
  87. data/spec/opal/rubyspecs +0 -285
@@ -1,5 +0,0 @@
1
- opal_filter "RegExp" do
2
- fails "Regexp#~ matches against the contents of $_"
3
- fails "Regexp#match uses the start as a character offset"
4
- fails "Regexp#match matches the input at a given position"
5
- end
data/spec/opal/rubyspecs DELETED
@@ -1,285 +0,0 @@
1
- # all spec files inside these directories are loaded (matching *_spec.rb)
2
- core/array
3
- core/basicobject
4
- core/class
5
- core/comparable
6
- core/enumerable
7
- core/false
8
- core/hash
9
- core/nil
10
- core/struct
11
- core/true
12
- core/math
13
-
14
- library/singleton
15
- library/observer
16
-
17
- core/fixnum/abs_spec
18
- core/fixnum/case_compare_spec
19
- core/fixnum/comparison_spec
20
- core/fixnum/equal_value_spec
21
- core/fixnum/element_reference_spec
22
- core/fixnum/even_spec
23
- core/fixnum/gt_spec
24
- core/fixnum/gte_spec
25
- core/fixnum/left_shift_spec
26
- core/fixnum/lt_spec
27
- core/fixnum/lte_spec
28
- core/fixnum/magnitude_spec
29
- core/fixnum/minus_spec
30
- core/fixnum/odd_spec
31
- core/fixnum/plus_spec
32
- core/fixnum/to_s_spec
33
- core/fixnum/zero_spec
34
-
35
- core/integer/downto_spec
36
-
37
- core/enumerator/each_spec
38
- core/enumerator/new_spec
39
- core/enumerator/next_spec
40
- core/enumerator/rewind_spec
41
-
42
- core/kernel/comparison_spec
43
- core/kernel/eql_spec
44
- core/kernel/equal_spec
45
- core/kernel/equal_value_spec
46
- core/kernel/tap_spec
47
- core/kernel/to_s_spec
48
-
49
- core/matchdata/to_a_spec
50
-
51
- core/range/begin_spec
52
- core/range/end_spec
53
-
54
- core/string/allocate_spec
55
- core/string/append_spec
56
- core/string/ascii_only_spec
57
- core/string/bytes_spec
58
- core/string/bytesize_spec
59
- core/string/byteslice_spec
60
- core/string/capitalize_spec
61
- core/string/case_compare_spec
62
- core/string/casecmp_spec
63
- core/string/center_spec
64
- core/string/chars_spec
65
- core/string/chomp_spec
66
- core/string/chop_spec
67
- core/string/chr_spec
68
- core/string/clear_spec
69
- core/string/codepoints_spec
70
- core/string/comparison_spec
71
- core/string/concat_spec
72
- core/string/count_spec
73
- # core/string/crypt_spec - not supported (can add these)
74
- core/string/delete_spec
75
- core/string/downcase_spec
76
- # core/string/dump_spec - parse error on "\\x05"
77
- core/string/dup_spec
78
- core/string/each_byte_spec
79
- core/string/each_char_spec
80
- core/string/each_codepoint_spec
81
- core/string/each_line_spec
82
- core/string/each_spec
83
- # core/string/element_reference_spec - fails to find a shared group - "String#[] with Regexp"
84
- core/string/element_set_spec
85
- core/string/empty_spec
86
- core/string/encode_spec
87
- core/string/encoding_spec
88
- core/string/end_with_spec
89
- core/string/entries_spec
90
- core/string/eql_spec
91
- core/string/equal_value_spec
92
- core/string/force_encoding_spec
93
- # core/string/getbyte_spec - parse error - "UTF-8 (\u{9865}} characters and hex escapes (\xDE)"
94
- core/string/gsub_spec
95
- core/string/hash_spec
96
- core/string/hex_spec
97
- core/string/include_spec
98
- core/string/index_spec
99
- core/string/initialize_spec
100
- core/string/insert_spec
101
- # core/string/inspect_spec - Encoding::CompatibilityError: incompatible character encodings: UTF-8 and ASCII-8BIT
102
- core/string/intern_spec
103
- core/string/length_spec
104
- core/string/lines_spec
105
- core/string/ljust_spec
106
- core/string/lstrip_spec
107
- #core/string/match_spec - fails to find a shared group
108
- # core/string/modulo_spec - lots of failing specs
109
- core/string/multiply_spec
110
- core/string/new_spec
111
- core/string/next_spec
112
- # core/string/oct_spec - parse error on -01234
113
- core/string/ord_spec
114
- core/string/partition_spec
115
- core/string/plus_spec
116
- core/string/prepend_spec
117
- core/string/replace_spec
118
- core/string/reverse_spec
119
- core/string/rindex_spec
120
- core/string/rjust_spec
121
- core/string/rpartition_spec
122
- core/string/rstrip_spec
123
- # core/string/scan_spec - infinite loop on parsing
124
- core/string/setbyte_spec
125
- core/string/size_spec
126
- #core/string/slice_spec - fails to find a shared thing (same as element_reference_spec)
127
- core/string/split_spec
128
- core/string/squeeze_spec
129
- core/string/start_with_spec
130
- core/string/strip_spec
131
- core/string/sub_spec
132
- core/string/succ_spec
133
- core/string/sum_spec
134
- core/string/swapcase_spec
135
- core/string/to_a_spec
136
- # core/string/to_c_spec - lots of failing specs
137
- core/string/to_f_spec
138
- # core/string/to_i_spec
139
- # core/string/to_r_spec
140
- core/string/to_str_spec
141
- core/string/to_sym_spec
142
- core/string/to_s_spec
143
- core/string/tr_s_spec
144
- core/string/tr_spec
145
- # core/string/try_convert_spec
146
- core/string/upcase_spec
147
- # core/string/upto_spec
148
- # core/string/valid_encoding_spec
149
-
150
- core/symbol/to_proc_spec
151
-
152
- core/time/asctime_spec
153
- core/time/at_spec
154
- core/time/ctime_spec
155
- core/time/day_spec
156
- core/time/eql_spec
157
- core/time/friday_spec
158
- core/time/getgm_spec
159
- core/time/gm_spec
160
- core/time/gmt_offset_spec
161
- core/time/hour_spec
162
- core/time/inspect_spec
163
- core/time/local_spec
164
- core/time/mday_spec
165
- core/time/min_spec
166
- core/time/minus_spec
167
- core/time/mktime_spec
168
- core/time/mon_spec
169
- core/time/monday_spec
170
- core/time/month_spec
171
- # core/time/new_spec - js parse error (xstring in shared/now)
172
- # core/time/now_spec - js parse error (xstring in shared/now)
173
- core/time/plus_spec
174
- core/time/saturday_spec
175
- core/time/sec_spec
176
- core/time/strftime_spec
177
- core/time/sunday_spec
178
- core/time/thursday_spec
179
- core/time/times_spec
180
- core/time/to_i_spec
181
- core/time/to_s_spec
182
- core/time/tuesday_spec
183
- core/time/utc_offset_spec
184
- core/time/utc_spec
185
- core/time/wday_spec
186
- core/time/wednesday_spec
187
- core/time/yday_spec
188
- core/time/year_spec
189
-
190
- core/regexp/escape_spec
191
- core/regexp/match_spec
192
- core/regexp/quote_spec
193
-
194
- language/BEGIN_spec
195
- language/alias_spec
196
- language/and_spec
197
- language/array_spec
198
- # language/block_spec - can't parse |(a, (b, c))| args, or |a, b; c, d|
199
- language/break_spec
200
- language/case_spec
201
- language/class_spec
202
- language/class_variable_spec
203
- language/constants_spec
204
- language/def_spec
205
- language/defined_spec
206
- # language/encoding_spec - can't parse encodings
207
- language/ensure_spec
208
- # language/execution_spec - can't parse x-strings with shell commands
209
- # language/file_spec - $LOADED_FEATURES not present
210
- # language/for_spec - can't parse for-in expressions
211
- language/hash_spec
212
- language/if_spec
213
- # language/line_spec - $LOADED_FEATURES not present
214
- language/literal_lambda_spec
215
- language/loop_spec
216
- language/magic_comment_spec
217
- language/match_spec
218
- language/metaclass_spec
219
- language/module_spec
220
- language/next_spec
221
- language/not_spec
222
- # language/numbers_spec - can't parse numbers using control characters
223
- language/or_spec
224
- language/order_spec
225
- language/precedence_spec
226
- # language/predefined_spec - ruby_exe() specs all failing
227
- language/private_spec
228
- # language/proc_spec - javascript Parse error
229
- language/redo_spec
230
- # language/regexp_spec - invalid javascript Regexp
231
- language/rescue_spec
232
- language/retry_spec
233
- language/return_spec
234
- language/send_spec
235
- language/singleton_class_spec
236
- # language/splat_spec - can't parse all splats
237
- # language/string_spec - can't parse strings using control-characters
238
- language/super_spec
239
- # language/symbol_spec - lots fail
240
- # language/throw_spec - unsupported
241
- language/undef_spec
242
- language/unless_spec
243
- language/until_spec
244
- # language/variables_spec - can't parse whole file
245
- language/while_spec
246
- language/yield_spec
247
-
248
- library/stringscanner/bol_spec
249
- library/stringscanner/check_spec
250
- library/stringscanner/element_reference_spec
251
- library/stringscanner/get_byte_spec
252
- library/stringscanner/pos_spec
253
- library/stringscanner/scan_spec
254
- library/stringscanner/skip_spec
255
- library/stringscanner/terminate_spec
256
-
257
- library/delegate/delegator/send_spec
258
-
259
- library/erb/util/html_escape_spec
260
-
261
- library/set/initialize_spec
262
- library/set/add_spec
263
- library/set/append_spec
264
- library/set/clear_spec
265
- library/set/constructor_spec
266
- library/set/each_spec
267
- library/set/empty_spec
268
- library/set/equal_value_spec
269
- library/set/include_spec
270
- library/set/length_spec
271
- library/set/member_spec
272
- library/set/merge_spec
273
- library/set/size_spec
274
- library/set/to_a_spec
275
- library/set/enumerable/to_set_spec
276
-
277
- library/pathname/new_spec
278
- library/pathname/equal_value_spec
279
- library/pathname/absolute_spec
280
- library/pathname/relative_spec
281
-
282
- library/date/add_spec
283
- library/date/eql_spec
284
- library/date/minus_spec
285
- library/date/plus_spec