Sha256: 4cb085e5114500db44858ac1184c1e33875baaa551a0144267a6a1f732d62d9b

Contents?: true

Size: 596 Bytes

Versions: 14

Compression:

Stored size: 596 Bytes

Contents

require 'opal/nodes/base'

module Opal
  module Nodes
    # A ndoe responsible for extracting
    # a single argument
    #
    # def m(a)
    #
    class NormargNode < Base
      handle :arg

      def compile
        arg_name = @sexp[1].to_sym
        var_name = variable(arg_name)

        if @sexp.meta[:post]
          add_temp var_name
          line "#{var_name} = #{scope.working_arguments}.splice(0,1)[0];"
        end

        if scope.in_mlhs?
          line "if (#{var_name} == null) {"
          line "  #{var_name} = nil;"
          line "}"
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
opal-0.10.6 lib/opal/nodes/args/normarg.rb
opal-0.10.6.beta lib/opal/nodes/args/normarg.rb
opal-0.10.5 lib/opal/nodes/args/normarg.rb
opal-0.10.4 lib/opal/nodes/args/normarg.rb
opal-0.10.3 lib/opal/nodes/args/normarg.rb
opal-0.10.2 lib/opal/nodes/args/normarg.rb
opal-0.10.1 lib/opal/nodes/args/normarg.rb
opal-0.10.0 lib/opal/nodes/args/normarg.rb
opal-0.10.0.rc2 lib/opal/nodes/args/normarg.rb
opal-0.10.0.rc1 lib/opal/nodes/args/normarg.rb
opal-0.10.0.beta5 lib/opal/nodes/args/normarg.rb
opal-0.10.0.beta4 lib/opal/nodes/args/normarg.rb
opal-0.10.0.beta3 lib/opal/nodes/args/normarg.rb
opal-0.10.0.beta2 lib/opal/nodes/args/normarg.rb