class Minjs::ECMA262::Prog

Class of ECMA262 Program

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

Attributes

exe_context[RW]
source_elements[R]
var_env[R]

Public Class Methods

new(var_env, source_elements) click to toggle source
# File lib/minjs/ecma262/base.rb, line 324
def initialize(var_env, source_elements)
  @source_elements = source_elements
  @var_env = var_env
end

Public Instance Methods

==(obj) click to toggle source

compare object

# File lib/minjs/ecma262/base.rb, line 351
def ==(obj)
  self.class == obj.class and self.source_elements == obj.source_elements
end
deep_dup() click to toggle source

duplicate object @see Base#deep_dup

# File lib/minjs/ecma262/base.rb, line 331
def deep_dup
  self.class.new(var_env, source_elements.deep_dup)
end
replace(from, to) click to toggle source

Replaces children object @see Base#replace

# File lib/minjs/ecma262/base.rb, line 337
def replace(from, to)
  if from == @source_elements
    @source_elements = to
  end
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/base.rb, line 357
def to_js(options = {})
  concat options, @source_elements
end
traverse(parent) { |parent, self| ... } click to toggle source

Traverses this children and itself with given block. @see Base#traverse

# File lib/minjs/ecma262/base.rb, line 345
def traverse(parent, &block)
  @source_elements.traverse(self, &block)
  yield parent, self
end