Object
# File lib/rkelly/js/base.rb, line 15 def [](name) return self.properties[name] if has_property?(name) if self.properties['prototype'].value != :undefined self.properties['prototype'].value[name] else RKelly::Runtime::UNDEFINED end end
# File lib/rkelly/js/base.rb, line 24 def []=(name, value) return unless can_put?(name) if has_property?(name) self.properties[name].value = value else self.properties[name] = Property.new(name, value, self) end end
# File lib/rkelly/js/base.rb, line 33 def can_put?(name) if !has_property?(name) return true if self.properties['prototype'].nil? return true if self.properties['prototype'].value.nil? return true if self.properties['prototype'].value == :undefined return self.properties['prototype'].value.can_put?(name) end !self.properties[name].read_only? end
# File lib/rkelly/js/base.rb, line 58 def default_value(hint) case hint when 'Number' value_of = self['valueOf'] if value_of.function || value_of.value.is_a?(RKelly::JS::Function) return value_of end to_string = self['toString'] if to_string.function || to_string.value.is_a?(RKelly::JS::Function) return to_string end end end
# File lib/rkelly/js/base.rb, line 51 def delete(name) return true unless has_property?(name) return false if self.properties[name].dont_delete? self.properties.delete(name) true end
# File lib/rkelly/js/base.rb, line 43 def has_property?(name) return true if self.properties.has_key?(name) return false if self.properties['prototype'].nil? return false if self.properties['prototype'].value.nil? return false if self.properties['prototype'].value == :undefined self.properties['prototype'].value.has_property?(name) end
Generated with the Darkfish Rdoc Generator 2.