Sha256: a64b2c7325e6907390571c6f255ddc08d4fb6e33a481e76463e8e5434b352932
Contents?: true
Size: 841 Bytes
Versions: 11
Compression:
Stored size: 841 Bytes
Contents
# frozen_string_literal: true require 'opal/nodes/module' module Opal module Nodes class ClassNode < ModuleNode handle :class children :cid, :sup, :body def compile name, base = name_and_base helper :klass push '(function($base, $super, $parent_nesting) {' line " var self = $klass($base, $super, '#{name}');" in_scope do scope.name = name add_temp '$nesting = [self].concat($parent_nesting)' body_code = self.body_code empty_line line scope.to_vars line body_code end line '})(', base, ', ', super_code, ', $nesting)' end def super_code sup ? expr(sup) : 'null' end def body_code stmt(compiler.returns(body || s(:nil))) end end end end
Version data entries
11 entries across 11 versions & 1 rubygems