Sha256: f8e0e74dfc1fe5f8d8e1563b401ca5ac36b3deb5e1cb311a717e575f35bac1cb
Contents?: true
Size: 985 Bytes
Versions: 4
Compression:
Stored size: 985 Bytes
Contents
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) {" line " var self = $module($base, '#{name}');" in_scope do scope.name = name add_temp "#{scope.proto} = self._proto" add_temp '$scope = self._scope' body_code = stmt(body || s(:nil)) empty_line line scope.to_vars line body_code line scope.to_donate_methods end line "})(", base, ")" end def name_and_base if cid.type == :const [cid[1].to_s, 'self'] elsif cid.type == :colon2 [cid[2].to_s, expr(cid[1])] elsif cid.type == :colon3 [cid[1].to_s, '$opal.Object'] else raise "Bad receiver in module" end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
opal-0.6.3 | lib/opal/nodes/module.rb |
opal-0.6.2 | lib/opal/nodes/module.rb |
opal-0.6.1 | lib/opal/nodes/module.rb |
opal-0.6.0 | lib/opal/nodes/module.rb |