class RubyRunJs::ObjectScope

Attributes

builtin[R]
own[R]
stack[R]
this_binding[R]

Public Class Methods

new(obj, parent, builtin) click to toggle source
# File lib/ruby_run_js/scope.rb, line 107
def initialize(obj, parent, builtin)
  @own = obj
  @parent = parent
  @stack = []
  @builtin = builtin
end

Public Instance Methods

create_binding(var_label) click to toggle source
# File lib/ruby_run_js/scope.rb, line 118
def create_binding(var_label)
  unless @own.has_binding(var_label)
    @own.define_own_property(var_label,
        {
          'value' => undefined,
          'configurable' => false,
          'writable' => true,
          'enumerable' => true
        },false)
  end
end
delete_binding(var_label) click to toggle source
# File lib/ruby_run_js/scope.rb, line 142
def delete_binding(var_label)
  @own.key?(var_label) ? @own.delete(var_label, false) : @parent.delete_binding(var_label)
end
get_binding_value(var_label,throw = false) click to toggle source
# File lib/ruby_run_js/scope.rb, line 138
def get_binding_value(var_label,throw = false)
  @own.key?(var_label) ? @own.get(var_label, throw) : @parent.get_binding_value(var_label, throw)
end
has_binding(var_label) click to toggle source
# File lib/ruby_run_js/scope.rb, line 114
def has_binding(var_label)
  @own.has_binding(var_label)
end
set_binding(var_label,var_value,throw = false) click to toggle source
# File lib/ruby_run_js/scope.rb, line 130
def set_binding(var_label,var_value,throw = false)
  if @own.key?(var_label)
    @own.put(var_label, var_value, throw)
  else
    @parent.set_binding(var_label,var_value,throw)
  end
end