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.
@@ -14,7 +14,7 @@ module Minjs
14
14
  false
15
15
  end
16
16
 
17
- def priority(exp)
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
- attr_accessor :val
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