Revision: 1290 http://trac.macosforge.org/projects/ruby/changeset/1290 Author: lsansonetti@apple.com Date: 2009-04-02 19:35:45 -0700 (Thu, 02 Apr 2009) Log Message: ----------- implemented TOPLEVEL_BINDING Modified Paths: -------------- MacRuby/branches/experimental/eval.c MacRuby/branches/experimental/proc.c Modified: MacRuby/branches/experimental/eval.c =================================================================== --- MacRuby/branches/experimental/eval.c 2009-04-03 02:27:16 UTC (rev 1289) +++ MacRuby/branches/experimental/eval.c 2009-04-03 02:35:45 UTC (rev 1290) @@ -18,7 +18,6 @@ #include "id.h" VALUE proc_invoke(VALUE, VALUE, VALUE, VALUE); -VALUE rb_binding_new(void); ID rb_frame_callee(void); VALUE rb_eLocalJumpError; Modified: MacRuby/branches/experimental/proc.c =================================================================== --- MacRuby/branches/experimental/proc.c 2009-04-03 02:27:16 UTC (rev 1289) +++ MacRuby/branches/experimental/proc.c 2009-04-03 02:35:45 UTC (rev 1290) @@ -233,6 +233,12 @@ return Data_Wrap_Struct(rb_cBinding, NULL, NULL, bind); } +static VALUE +rb_binding_new_from_binding(rb_vm_binding_t *bind) +{ + return Data_Wrap_Struct(rb_cBinding, NULL, NULL, bind); +} + /* * call-seq: * binding -> a_binding @@ -1748,5 +1754,11 @@ rb_objc_define_method(rb_cBinding, "dup", binding_dup, 0); rb_objc_define_method(rb_cBinding, "eval", bind_eval, -1); rb_objc_define_method(rb_mKernel, "binding", rb_f_binding, 0); + + rb_vm_binding_t *binding = (rb_vm_binding_t *)xmalloc( + sizeof(rb_vm_binding_t)); + GC_WB(&binding->self, rb_vm_top_self()); + rb_define_global_const("TOPLEVEL_BINDING", + rb_binding_new_from_binding(binding)); }
participants (1)
-
source_changes@macosforge.org