Sha256: df4d6c2e7f95d19e51bd40dd8f3bba28c71ba55ec1d88d51fc2278c7a363c94f
Contents?: true
Size: 966 Bytes
Versions: 4
Compression:
Stored size: 966 Bytes
Contents
class Class def self.new(sup = Object, &block) %x{ if (!sup._isClass || sup.__mod__) { #{raise TypeError, "superclass must be a Class"}; } function AnonClass(){}; var klass = Opal.boot(sup, AnonClass) klass._name = nil; klass.__parent = sup; // inherit scope from parent $opal.create_scope(sup._scope, klass); sup.$inherited(klass); if (block !== nil) { var block_self = block._s; block._s = null; block.call(klass); block._s = block_self; } return klass; } end def allocate %x{ var obj = new self._alloc; obj._id = Opal.uid(); return obj; } end def inherited(cls) end def new(*args, &block) %x{ var obj = #{allocate}; obj.$initialize._p = block; obj.$initialize.apply(obj, args); return obj; } end def superclass `self._super || nil` end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
opal-0.5.5 | opal/corelib/class.rb |
opal-0.5.4 | opal/core/class.rb |
opal-0.5.2 | opal/core/class.rb |
opal-0.5.0 | corelib/class.rb |