Sha256: 2c70768e8efd4413f257422571c97c334c52f5a63fb4384b454174ead1bf0227

Contents?: true

Size: 476 Bytes

Versions: 10

Compression:

Stored size: 476 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'

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

        line "})(", recv(object), ".$singleton_class())"
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
opal-0.8.0.beta1 lib/opal/nodes/singleton_class.rb
opal-0.7.2 lib/opal/nodes/singleton_class.rb
opal-0.7.1 lib/opal/nodes/singleton_class.rb
opal-0.7.0 lib/opal/nodes/singleton_class.rb
opal-0.7.0.rc1 lib/opal/nodes/singleton_class.rb
opal-0.7.0.beta3 lib/opal/nodes/singleton_class.rb
opal-0.7.0.beta2 lib/opal/nodes/singleton_class.rb
opal-cj-0.7.0.beta2 lib/opal/nodes/singleton_class.rb
opal-cj-0.7.0.beta1 lib/opal/nodes/singleton_class.rb
opal-0.7.0.beta1 lib/opal/nodes/singleton_class.rb