rkelly-remix 0.0.3 → 0.0.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.
- data/CHANGELOG.rdoc +4 -0
- data/lib/parser.y +20 -8
- data/lib/rkelly/constants.rb +1 -1
- data/lib/rkelly/generated_parser.rb +1595 -1453
- data/test/test_parser.rb +74 -1
- metadata +2 -2
data/test/test_parser.rb
CHANGED
@@ -175,6 +175,79 @@ class ParserTest < Test::Unit::TestCase
|
|
175
175
|
@parser.parse('var foo = { bar: 10, baz: 1, }'))
|
176
176
|
end
|
177
177
|
|
178
|
+
# ECMAScript 5.1 allows use of keywords for property names.
|
179
|
+
|
180
|
+
def test_object_literal_with_keywords_as_property_names
|
181
|
+
assert_sexp(
|
182
|
+
[[:var,
|
183
|
+
[[:var_decl, :foo, [:assign,
|
184
|
+
[:object, [[:property, :"var", [:lit, 10]]]]
|
185
|
+
]]]
|
186
|
+
]],
|
187
|
+
@parser.parse('var foo = { var: 10 }'))
|
188
|
+
end
|
189
|
+
|
190
|
+
def test_object_literal_with_literal_as_property_name
|
191
|
+
assert_sexp(
|
192
|
+
[[:var,
|
193
|
+
[[:var_decl, :foo, [:assign,
|
194
|
+
[:object, [[:property, :"null", [:lit, 10]]]]
|
195
|
+
]]]
|
196
|
+
]],
|
197
|
+
@parser.parse('var foo = { null: 10 }'))
|
198
|
+
end
|
199
|
+
|
200
|
+
def test_object_literal_with_reserved_keyword_as_property_name
|
201
|
+
assert_sexp(
|
202
|
+
[[:var,
|
203
|
+
[[:var_decl, :foo, [:assign,
|
204
|
+
[:object, [[:property, :"class", [:lit, 10]]]]
|
205
|
+
]]]
|
206
|
+
]],
|
207
|
+
@parser.parse('var foo = { class: 10 }'))
|
208
|
+
end
|
209
|
+
|
210
|
+
def test_object_literal_getter_with_keyword_as_getter_name
|
211
|
+
assert_sexp(
|
212
|
+
[[:var,
|
213
|
+
[[:var_decl, :foo, [:assign,
|
214
|
+
[:object, [[:getter, :if, [:func_expr, nil, [], [:func_body, []]]]]]
|
215
|
+
]]]
|
216
|
+
]],
|
217
|
+
@parser.parse('var foo = { get if() { } }'))
|
218
|
+
end
|
219
|
+
|
220
|
+
def test_object_literal_setter_with_keyword_as_setter_name
|
221
|
+
assert_sexp(
|
222
|
+
[[:var,
|
223
|
+
[[:var_decl, :foo, [:assign,
|
224
|
+
[:object, [[:setter, :return, [:func_expr, nil, [[:param, "v"]], [:func_body, []]]]]]
|
225
|
+
]]]
|
226
|
+
]],
|
227
|
+
@parser.parse('var foo = { set return(v) { } }'))
|
228
|
+
end
|
229
|
+
|
230
|
+
def test_dot_access_with_keyword
|
231
|
+
assert_sexp([[:expression,
|
232
|
+
[:dot_access,
|
233
|
+
[:resolve, "bar"],
|
234
|
+
'var',
|
235
|
+
]
|
236
|
+
]],
|
237
|
+
@parser.parse('bar.var;'))
|
238
|
+
end
|
239
|
+
|
240
|
+
def test_dot_access_with_keyword_on_function_call
|
241
|
+
assert_sexp([[:expression,
|
242
|
+
[:dot_access,
|
243
|
+
[:function_call, [:resolve, "bar"], [:args, []]],
|
244
|
+
'var',
|
245
|
+
]
|
246
|
+
]],
|
247
|
+
@parser.parse('bar().var;'))
|
248
|
+
end
|
249
|
+
|
250
|
+
|
178
251
|
def test_this
|
179
252
|
assert_sexp(
|
180
253
|
[[:var, [[:var_decl, :foo, [:assign, [:this]]]]]],
|
@@ -1156,7 +1229,7 @@ class ParserTest < Test::Unit::TestCase
|
|
1156
1229
|
assert_sexp([[:var,
|
1157
1230
|
[[:var_decl,
|
1158
1231
|
:x,
|
1159
|
-
[:assign, [:function_call,
|
1232
|
+
[:assign, [:function_call,
|
1160
1233
|
[:function_call, [:resolve, "bar"], [:args, []]],
|
1161
1234
|
[:args, []]]]
|
1162
1235
|
]]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rkelly-remix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-07-
|
13
|
+
date: 2013-07-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rdoc
|