Sha256: e27fc02f07a33c7beaaace2c61cbafcfcfdbd4103e74f4768d4174d0608de4c6

Contents?: true

Size: 515 Bytes

Versions: 22

Compression:

Stored size: 515 Bytes

Contents

require 'opal/nodes/scope'

module Opal
  module Nodes
    class SingletonClassNode < ScopeNode
      handle :sclass

      children :object, :body

      def compile
        push "(function(self) {"

        in_scope do
          add_temp '$scope = self.$$scope'
          add_temp 'def = self.$$proto'

          body_stmt = stmt(compiler.returns(body))
          line scope.to_vars
          line body_stmt
        end

        line "})(Opal.get_singleton_class(", recv(object), "))"
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
opal-0.10.6 lib/opal/nodes/singleton_class.rb
opal-0.10.6.beta lib/opal/nodes/singleton_class.rb
opal-0.10.5 lib/opal/nodes/singleton_class.rb
opal-0.10.4 lib/opal/nodes/singleton_class.rb
opal-0.10.3 lib/opal/nodes/singleton_class.rb
opal-0.10.2 lib/opal/nodes/singleton_class.rb
opal-0.10.1 lib/opal/nodes/singleton_class.rb
opal-0.10.0 lib/opal/nodes/singleton_class.rb
opal-0.10.0.rc2 lib/opal/nodes/singleton_class.rb
opal-0.9.4 lib/opal/nodes/singleton_class.rb
opal-0.9.3 lib/opal/nodes/singleton_class.rb
opal-0.10.0.rc1 lib/opal/nodes/singleton_class.rb
opal-0.10.0.beta5 lib/opal/nodes/singleton_class.rb
opal-0.10.0.beta4 lib/opal/nodes/singleton_class.rb
opal-0.10.0.beta3 lib/opal/nodes/singleton_class.rb
opal-0.10.0.beta2 lib/opal/nodes/singleton_class.rb
opal-0.10.0.beta1 lib/opal/nodes/singleton_class.rb
opal-0.9.2 lib/opal/nodes/singleton_class.rb
opal-0.9.0 lib/opal/nodes/singleton_class.rb
opal-0.9.0.rc1 lib/opal/nodes/singleton_class.rb