Sha256: b67a3ced571c1d44d61ee4fbfa11cc44e71db62f3f8fd57db47f4ec10a65b643

Contents?: true

Size: 474 Bytes

Versions: 6

Compression:

Stored size: 474 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

6 entries across 6 versions & 1 rubygems

Version Path
opal-0.6.3 lib/opal/nodes/singleton_class.rb
opal-0.6.2 lib/opal/nodes/singleton_class.rb
opal-0.6.1 lib/opal/nodes/singleton_class.rb
opal-0.6.0 lib/opal/nodes/singleton_class.rb
opal-0.5.5 lib/opal/nodes/singleton_class.rb
opal-0.5.4 lib/opal/nodes/singleton_class.rb