Sha256: b4081d78c9838f8e727c010ab7a053df9fe70eaa16c6396c242351dd5506ce66

Contents?: true

Size: 499 Bytes

Versions: 7

Compression:

Stored size: 499 Bytes

Contents

# frozen_string_literal: true
require 'opal/nodes/base'

module Opal
  module Nodes
    # A node responsible for extracting a single
    # optional argument
    #
    # def m(a=1)
    #
    class OptargNode < Base
      handle :optarg
      children :name, :default_value

      def compile
        return if default_value.children[1] == :undefined

        line "if (#{name} == null) {"
        line "  #{name} = ", expr(default_value)
        push ";"
        line "}"
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
opal-0.11.4 lib/opal/nodes/args/optarg.rb
opal-0.11.3 lib/opal/nodes/args/optarg.rb
opal-0.11.2 lib/opal/nodes/args/optarg.rb
opal-0.11.1 lib/opal/nodes/args/optarg.rb
opal-0.11.1.pre lib/opal/nodes/args/optarg.rb
opal-0.11.0 lib/opal/nodes/args/optarg.rb
opal-0.11.0.rc1 lib/opal/nodes/args/optarg.rb