Sha256: a8550443bd7eaf4ad1dd8eecc566555f73b7063adfb3d7a0f2770a5b2756a364

Contents?: true

Size: 566 Bytes

Versions: 18

Compression:

Stored size: 566 Bytes

Contents

# frozen_string_literal: true

require 'opal/nodes/base'

module Opal
  module Nodes
    module Args
      # This node is responsible for extracting a single
      # required post-argument from $post_args
      #
      class ExtractPostArg < Base
        handle :extract_post_arg
        children :name

        def compile
          add_temp name

          line "#{name} = $post_args[0];"
          line "$post_args.splice(0, 1);"

          line "if (#{name} == null) {"
          line "  #{name} = nil"
          line "}"
        end
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
opal-1.3.2 lib/opal/nodes/args/extract_post_arg.rb
opal-1.3.1 lib/opal/nodes/args/extract_post_arg.rb
opal-1.3.0 lib/opal/nodes/args/extract_post_arg.rb
opal-1.3.0.rc1 lib/opal/nodes/args/extract_post_arg.rb
opal-1.3.0.alpha1 lib/opal/nodes/args/extract_post_arg.rb
opal-1.2.0 lib/opal/nodes/args/extract_post_arg.rb
opal-1.2.0.beta1 lib/opal/nodes/args/extract_post_arg.rb
opal-1.1.1 lib/opal/nodes/args/extract_post_arg.rb
opal-1.1.1.rc1 lib/opal/nodes/args/extract_post_arg.rb
opal-1.1.0 lib/opal/nodes/args/extract_post_arg.rb
opal-1.1.0.rc1 lib/opal/nodes/args/extract_post_arg.rb
opal-1.0.5 lib/opal/nodes/args/extract_post_arg.rb
opal-1.0.4 lib/opal/nodes/args/extract_post_arg.rb
opal-1.0.3 lib/opal/nodes/args/extract_post_arg.rb
opal-1.0.2 lib/opal/nodes/args/extract_post_arg.rb
opal-1.0.1 lib/opal/nodes/args/extract_post_arg.rb
opal-1.0.0 lib/opal/nodes/args/extract_post_arg.rb
opal-1.0.0.beta1 lib/opal/nodes/args/extract_post_arg.rb