Sha256: c3ce0ce7625e3e339dbaf54dbae9344970a747cc9f557d8f25ad3a25bbfa258a
Contents?: true
Size: 1.74 KB
Versions: 4
Compression:
Stored size: 1.74 KB
Contents
require 'opal/nodes/base' module Opal module Nodes class ConstNode < Base handle :const children :name def compile if compiler.const_missing? with_temp do |tmp| push "((#{tmp} = $scope.#{name}) == null ? $opal.cm('#{name}') : #{tmp})" end else push "$scope.#{name}" end end end class ConstDeclarationNode < Base handle :cdecl children :name, :base def compile push expr(base) wrap "$opal.cdecl($scope, '#{name}', ", ")" end end class ConstAssignNode < Base handle :casgn children :base, :name, :value def compile push "$opal.casgn(" push expr(base) push ", '#{name}', " push expr(value) push ")" end end class ConstGetNode < Base handle :colon2 children :base, :name def compile if compiler.const_missing? with_temp do |tmp| push "((#{tmp} = (" push expr(base) push ")._scope).#{name} == null ? #{tmp}.cm('#{name}') : " push "#{tmp}.#{name})" end else push expr(base) wrap '(', ")._scope.#{name}" end end end class TopConstNode < Base handle :colon3 children :name def compile with_temp do |tmp| push "((#{tmp} = $opal.Object._scope.#{name}) == null ? " push "$opal.cm('#{name}') : #{tmp})" end end end class TopConstAssignNode < Base handle :casgn3 children :name, :value def compile push "$opal.casgn($opal.Object, '#{name}', " push expr(value) push ")" end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
opal-0.5.5 | lib/opal/nodes/constants.rb |
opal-0.5.4 | lib/opal/nodes/constants.rb |
opal-0.5.2 | lib/opal/nodes/constants.rb |
opal-0.5.0 | lib/opal/nodes/constants.rb |