Changeset 4221 for lang/javascript/jsruby
- Timestamp:
- 01/08/08 19:26:12 (5 years ago)
- Location:
- lang/javascript/jsruby/trunk/src
- Files:
-
- 2 modified
-
builtinobjects.js (modified) (1 diff)
-
interpreter.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/jsruby/trunk/src/builtinobjects.js
r4197 r4221 299 299 RubyEngine.RubyObject.JSObject.prototype.toValue = function(){ return this.obj; } 300 300 RubyEngine.RubyObject.JSObject.methods = { 301 "method_missing": function(self, args, block) { 301 "new": function(self, args, block) { 302 var jsargs = []; 303 if(args) for (var i=1;i<args.length;i++) jsargs.push( this.run(args[i]).toValue() ); 304 return RubyEngine.RubyObject.js2r(new self.obj()); 305 }, 306 "method_missing": function(self, args, block) { 302 307 var name = this.run(args[0]).str; 303 308 if (args.length==1) { 304 309 return RubyEngine.RubyObject.js2r(self.obj[name]); 305 310 } else if (name[name.length-1] == "=") { 306 self.obj[name.slice(0, name.length-1)] = this.run(args[1]).toValue(); 311 var v=this.run(args[1]) 312 self.obj[name.slice(0, name.length-1)] = v.toValue(); 313 return v; 307 314 } else { 308 315 if (name in self.obj) { -
lang/javascript/jsruby/trunk/src/interpreter.js
r4193 r4221 46 46 if (typeof(ref) == "function") { 47 47 return ref.apply(this, [args, block]); 48 } else if (RubyEngine.RubyObject.JSObject.prototype.isPrototypeOf(ref)) { 49 return RubyEngine.RubyObject.js2r(ref.obj.apply(ref.obj, args)); 48 50 } else if (RubyEngine.Node.Block.prototype.isPrototypeOf(ref)) { 49 51 var block = ref; … … 193 195 194 196 RubyEngine.Interpreter.prototype.kernelMethod = function(node){ 195 var method = RubyEngine.Interpreter.KernelMethod[node.name]; 197 //var method = RubyEngine.Interpreter.KernelMethod[node.name]; 198 var method = this.scope.reference(node.name); 196 199 if (typeof(method)=="function") { 197 200 return method.apply(this, [node.args, node.block]);
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)