Sha256: a4785286baf6cf0449ca1b2b542d8f9463b291d08801960557ac6b687896a4cf
Contents?: true
Size: 906 Bytes
Versions: 11
Compression:
Stored size: 906 Bytes
Contents
# frozen_string_literal: true require 'opal/nodes/scope' module Opal module Nodes class ModuleNode < ScopeNode handle :module children :cid, :body def compile name, base = name_and_base helper :module push '(function($base, $parent_nesting) {' line " var self = $module($base, '#{name}');" in_scope do scope.name = name add_temp '$nesting = [self].concat($parent_nesting)' body_code = stmt(body || s(:nil)) empty_line line scope.to_vars line body_code end line '})(', base, ', $nesting)' end # cid is always s(:const, scope_sexp_or_nil, :ConstName) def name_and_base base, name = cid.children if base.nil? [name, '$nesting[0]'] else [name, expr(base)] end end end end end
Version data entries
11 entries across 11 versions & 1 rubygems