class Minjs::ECMA262::ECMA262Array

Class of ECMA262 Array element

@see www.ecma-international.org/ecma-262 ECMA262 11.1.4

Attributes

val[R]

Public Class Methods

new(val) click to toggle source
# File lib/minjs/ecma262/literal.rb, line 972
def initialize(val)
  @val = val # val is Array
end

Public Instance Methods

==(obj) click to toggle source

compare object

# File lib/minjs/ecma262/literal.rb, line 993
def ==(obj)
  self.class == obj.class and @val == obj.val
end
deep_dup() click to toggle source

duplicate object @see Base#deep_dup

# File lib/minjs/ecma262/literal.rb, line 978
def deep_dup
  self.class.new(@val.collect{|x| x ? x.deep_dup : nil})
end
left_hand_side_exp?() click to toggle source

@return [Boolean] true if expression is kind of LeftHandSideExpression.

# File lib/minjs/ecma262/literal.rb, line 1004
def left_hand_side_exp?
  true
end
to_ecma262_boolean() click to toggle source

Returns results of ToBoolean()

Returns true or false if trivial, otherwise nil.

@return [Boolean]

@see www.ecma-international.org/ecma-262 ECMA262 9.2

# File lib/minjs/ecma262/literal.rb, line 1016
def to_ecma262_boolean
  true
end
to_js(options = {}) click to toggle source

Returns a ECMAScript string containg the representation of element. @see Base#to_js

# File lib/minjs/ecma262/literal.rb, line 999
def to_js(options = {})
  "[" + @val.collect{|x| x ? x.to_js : ""}.join(",") + "]"
end
traverse(parent) { |parent, self| ... } click to toggle source

Traverses this children and itself with given block.

@see Base#traverse

# File lib/minjs/ecma262/literal.rb, line 985
def traverse(parent, &block)
  yield parent, self
  @val.each do |k|
    k.traverse(parent, &block) if k
  end
end