Class: Minjs::ECMA262::ECMA262Array

Inherits:
Literal show all
Defined in:
lib/minjs/ecma262/lit.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Literal

#lt?, #priority, #to_exp?, #ws?

Methods inherited from Base

#add_remove_paren, #concat, #replace, #to_s

Constructor Details

#initialize(val) ⇒ ECMA262Array

Returns a new instance of ECMA262Array.



714
715
716
# File 'lib/minjs/ecma262/lit.rb', line 714

def initialize(val)
  @val = val # val is Array
end

Instance Attribute Details

#valObject (readonly)

Returns the value of attribute val.



712
713
714
# File 'lib/minjs/ecma262/lit.rb', line 712

def val
  @val
end

Instance Method Details

#==(obj) ⇒ Object



729
730
731
# File 'lib/minjs/ecma262/lit.rb', line 729

def ==(obj)
  self.class == obj.class and @val == obj.val
end

#deep_dupObject



718
719
720
# File 'lib/minjs/ecma262/lit.rb', line 718

def deep_dup
  self.class.new(@val.collect{|x| x ? x.deep_dup : nil})
end

#left_hand_side_exp?Boolean

Returns:



737
738
739
# File 'lib/minjs/ecma262/lit.rb', line 737

def left_hand_side_exp?
  true
end

#to_ecma262_booleanObject



741
742
743
# File 'lib/minjs/ecma262/lit.rb', line 741

def to_ecma262_boolean
  true
end

#to_js(options = {}) ⇒ Object



733
734
735
# File 'lib/minjs/ecma262/lit.rb', line 733

def to_js(options = {})
  "[" + @val.collect{|x| x.to_s}.join(",") + "]"
end

#traverse(parent) {|_self, parent| ... } ⇒ Object

Yields:

  • (_self, parent)

Yield Parameters:



722
723
724
725
726
727
# File 'lib/minjs/ecma262/lit.rb', line 722

def traverse(parent, &block)
  yield self, parent
  @val.each do |k|
    k.traverse(parent, &block) if k
  end
end