Sha256: eca6fc1893d57ca7bfdb05e0d613f62d1b41fc4397097c69eeffbdb35e31597f

Contents?: true

Size: 553 Bytes

Versions: 18

Compression:

Stored size: 553 Bytes

Contents

# frozen_string_literal: true

require 'opal/nodes/scope'

module Opal
  module Nodes
    class SingletonClassNode < ScopeNode
      handle :sclass

      children :object, :body

      def compile
        push '(function(self, $parent_nesting) {'

        in_scope do
          add_temp '$nesting = [self].concat($parent_nesting)'

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

        line '})(Opal.get_singleton_class(', recv(object), '), $nesting)'
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
opal-1.3.2 lib/opal/nodes/singleton_class.rb
opal-1.3.1 lib/opal/nodes/singleton_class.rb
opal-1.3.0 lib/opal/nodes/singleton_class.rb
opal-1.3.0.rc1 lib/opal/nodes/singleton_class.rb
opal-1.3.0.alpha1 lib/opal/nodes/singleton_class.rb
opal-1.2.0 lib/opal/nodes/singleton_class.rb
opal-1.2.0.beta1 lib/opal/nodes/singleton_class.rb
opal-1.1.1 lib/opal/nodes/singleton_class.rb
opal-1.1.1.rc1 lib/opal/nodes/singleton_class.rb
opal-1.1.0 lib/opal/nodes/singleton_class.rb
opal-1.1.0.rc1 lib/opal/nodes/singleton_class.rb
opal-1.0.5 lib/opal/nodes/singleton_class.rb
opal-1.0.4 lib/opal/nodes/singleton_class.rb
opal-1.0.3 lib/opal/nodes/singleton_class.rb
opal-1.0.2 lib/opal/nodes/singleton_class.rb
opal-1.0.1 lib/opal/nodes/singleton_class.rb
opal-1.0.0 lib/opal/nodes/singleton_class.rb
opal-1.0.0.beta1 lib/opal/nodes/singleton_class.rb