Sha256: 4973e4bd89aebde7abf99d0713e23d304c519e51be77a8a91e697c02c12b1a1b
Contents?: true
Size: 896 Bytes
Versions: 16
Compression:
Stored size: 896 Bytes
Contents
# frozen_string_literal: true require 'opal/nodes/base' module Opal module Nodes module Args # Compiles extraction of a single inline optional argument # def m(a = 1); end # ^^^^^ # # This node doesn't exist in the original AST, # InlineArgs rewriter creates it to simplify compilation # # Sometimes the argument can't be inlined. # In such cases InlineArgs rewriter replaces # s(:optarg, :arg_name, ...default value...) # to: # s(:fakearg) + s(:extract_post_optarg, :arg_name, ...default value...) # class ExtractOptargNode < Base handle :extract_optarg children :name, :default_value def compile return if default_value.children[1] == :undefined push "if (#{name} == null) #{name} = ", expr(default_value) end end end end end
Version data entries
16 entries across 16 versions & 1 rubygems