Sha256: 6ce0045033a5f47fe06a580f6c190e2d8bf42f22bc111a758fadf96a3bb89a72
Contents?: true
Size: 857 Bytes
Versions: 24
Compression:
Stored size: 857 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 keyword argument from $kwargs # # $kwargs always exist (as argument when inlining is possible # and as a local variable when it's not) # class ExtractKwarg < Base handle :extract_kwarg children :lvar_name def compile key_name = @sexp.meta[:arg_name] scope.used_kwargs << key_name add_temp lvar_name line "if (!Opal.hasOwnProperty.call($kwargs.$$smap, '#{key_name}')) {" line " throw Opal.ArgumentError.$new('missing keyword: #{key_name}');" line '}' line "#{lvar_name} = $kwargs.$$smap[#{key_name.to_s.inspect}];" end end end end end
Version data entries
24 entries across 24 versions & 1 rubygems