rkelly-remix 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|