code: function bridge_class(name, constructor) {
      var klass = boot_class_meta(RubyObject, constructor);
  
      klass._name = name;
  
      create_scope(Opal, klass, name);
      bridged_classes.push(klass);
  
      var object_methods = RubyBasicObject._methods.concat(RubyObject._methods);
  
      for (var i = 0, len = object_methods.length; i < len; i++) {
        var meth = object_methods[i];
        constructor.prototype[meth] = RubyObject._proto[meth];
      }
  
      return klass;
    }
docs: /*
  For performance, some core ruby classes are toll-free bridged to their
  native javascript counterparts (e.g. a ruby Array is a javascript Array).
  
  This method is used to setup a native constructor (e.g. Array), to have
  its prototype act like a normal ruby class. Firstly, a new ruby class is
  created using the native constructor so that its prototype is set as the
  target for th new class. Note: all bridged classes are set to inherit
  from Object.
  
  Bridged classes are tracked in `bridged_classes` array so that methods
  defined on Object can be "donated" to all bridged classes. This allows
  us to fake the inheritance of a native prototype from our Object
  prototype.
  
  Example:
  
  bridge_class("Proc", Function);
  
  @param [String] name the name of the ruby class to create
  @param [Function] constructor native javascript constructor to use
  @return [Class] returns new ruby class