minjs 0.1.3 → 0.1.5
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.
- checksums.yaml +4 -4
- data/lib/minjs/compressor.rb +130 -121
- data/lib/minjs/ctype.rb +2 -0
- data/lib/minjs/ecma262/base.rb +172 -34
- data/lib/minjs/ecma262/exp.rb +644 -388
- data/lib/minjs/ecma262/lit.rb +39 -3
- data/lib/minjs/ecma262/st.rb +388 -157
- data/lib/minjs/exceptions.rb +1 -1
- data/lib/minjs/expression.rb +88 -76
- data/lib/minjs/func.rb +1 -2
- data/lib/minjs/lex.rb +7 -7
- data/lib/minjs/minjs_compressor.rb +8 -4
- data/lib/minjs/program.rb +1 -1
- data/lib/minjs/statement.rb +32 -15
- data/lib/minjs/version.rb +1 -1
- metadata +2 -2
data/lib/minjs/ecma262/lit.rb
CHANGED
@@ -14,7 +14,7 @@ module Minjs
|
|
14
14
|
false
|
15
15
|
end
|
16
16
|
|
17
|
-
def priority
|
17
|
+
def priority
|
18
18
|
10
|
19
19
|
end
|
20
20
|
end
|
@@ -78,6 +78,10 @@ module Minjs
|
|
78
78
|
@val = :null
|
79
79
|
end
|
80
80
|
|
81
|
+
def deep_dup
|
82
|
+
self #not dup
|
83
|
+
end
|
84
|
+
|
81
85
|
def traverse(parent, &block)
|
82
86
|
yield self, parent
|
83
87
|
end
|
@@ -107,6 +111,10 @@ module Minjs
|
|
107
111
|
end
|
108
112
|
end
|
109
113
|
|
114
|
+
def deep_dup
|
115
|
+
self #//not dup
|
116
|
+
end
|
117
|
+
|
110
118
|
def traverse(parent, &block)
|
111
119
|
yield self, parent
|
112
120
|
end
|
@@ -136,6 +144,11 @@ module Minjs
|
|
136
144
|
def initialize(val)
|
137
145
|
@val = val
|
138
146
|
end
|
147
|
+
|
148
|
+
def deep_dup
|
149
|
+
self.class.new(@val)
|
150
|
+
end
|
151
|
+
|
139
152
|
def traverse(parent)
|
140
153
|
yield self, parent
|
141
154
|
end
|
@@ -197,6 +210,10 @@ module Minjs
|
|
197
210
|
@decimal = nil if @decimal == 0
|
198
211
|
end
|
199
212
|
|
213
|
+
def deep_dup
|
214
|
+
self.class.new(@integer, @decimal, @exp)
|
215
|
+
end
|
216
|
+
|
200
217
|
def traverse(parent, &block)
|
201
218
|
yield self, parent
|
202
219
|
end
|
@@ -299,6 +316,10 @@ module Minjs
|
|
299
316
|
@flags = flags
|
300
317
|
end
|
301
318
|
|
319
|
+
def deep_dup
|
320
|
+
self.class.new(@body, @flags)
|
321
|
+
end
|
322
|
+
|
302
323
|
def traverse(parent)
|
303
324
|
yield self, parent
|
304
325
|
end
|
@@ -313,8 +334,13 @@ module Minjs
|
|
313
334
|
|
314
335
|
class ECMA262Array < Literal
|
315
336
|
def initialize(val)
|
316
|
-
@val = val
|
337
|
+
@val = val # val is Array
|
338
|
+
end
|
339
|
+
|
340
|
+
def deep_dup
|
341
|
+
self.class.new(@val.collect{|x| x ? x.deep_dup : nil})
|
317
342
|
end
|
343
|
+
|
318
344
|
def traverse(parent, &block)
|
319
345
|
yield self, parent
|
320
346
|
@val.each do |k|
|
@@ -344,6 +370,11 @@ module Minjs
|
|
344
370
|
def initialize(val)
|
345
371
|
@val = val
|
346
372
|
end
|
373
|
+
|
374
|
+
def deep_dup
|
375
|
+
self.class.new(@val.collect{|x, y| [x.deep_dup, y ? y.deep_dup : y]})
|
376
|
+
end
|
377
|
+
|
347
378
|
def traverse(parent, &block)
|
348
379
|
yield self, parent
|
349
380
|
@val.each do |k, v|
|
@@ -424,11 +455,12 @@ module Minjs
|
|
424
455
|
|
425
456
|
class IdentifierName < Literal
|
426
457
|
attr_accessor :context
|
427
|
-
|
458
|
+
attr_reader :val
|
428
459
|
|
429
460
|
@@sym = {}
|
430
461
|
|
431
462
|
def initialize(context, val)
|
463
|
+
@context = context
|
432
464
|
@val = val.to_sym
|
433
465
|
end
|
434
466
|
|
@@ -458,6 +490,10 @@ module Minjs
|
|
458
490
|
yield self, parent
|
459
491
|
end
|
460
492
|
|
493
|
+
def deep_dup
|
494
|
+
self.class.new(@context, @val)
|
495
|
+
end
|
496
|
+
|
461
497
|
def to_js(options = {})
|
462
498
|
val.to_s
|
463
499
|
end
|