Class: Opal::Nodes::GlobalVariableNode
- Defined in:
- opal/lib/opal/nodes/variables.rb
Constant Summary
Constants included from Helpers
Helpers::BASIC_IDENTIFIER_RULES , Helpers::ES3_RESERVED_WORD_EXCLUSIVE , Helpers::ES51_RESERVED_WORD , Helpers::IMMUTABLE_PROPS
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
- #compile ⇒ Object
- #handle_global_match ⇒ Object
- #handle_post_match ⇒ Object
- #handle_pre_match ⇒ Object
- #var_name ⇒ Object
Methods inherited from Base
#add_gvar , #add_ivar , #add_local , #add_temp , children , #children , #compile_to_fragments , #error , #expr , #expr? , #expr_or_nil , #fragment , handle , handlers , #helper , #in_while? , #initialize , #process , #push , #recv , #recv? , #s , #scope , #stmt , #stmt? , #unshift , #while_loop , #with_temp , #wrap
Methods included from Helpers
#current_indent , #empty_line , #indent , #js_falsy , #js_truthy , #js_truthy_optimize , #line , #lvar_to_js , #mid_to_jsid , #property , #valid_name? , #variable
Constructor Details
This class inherits a constructor from Opal::Nodes::Base
Instance Method Details
#compile ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
# File 'opal/lib/opal/nodes/variables.rb', line 89 def compile helper :gvars if var_name == '&' return handle_global_match elsif var_name == "'" return handle_post_match elsif var_name == '`' return handle_pre_match end name = property var_name add_gvar name push "$gvars#{name}" end
#handle_global_match ⇒ Object
105 106 107 108 109
# File 'opal/lib/opal/nodes/variables.rb', line 105 def handle_global_match with_temp do |tmp| push "((#{tmp} = $gvars['~']) === nil ? nil : #{tmp}['$[]'](0))" end end
#handle_post_match ⇒ Object
117 118 119 120 121
# File 'opal/lib/opal/nodes/variables.rb', line 117 def handle_post_match with_temp do |tmp| push "((#{tmp} = $gvars['~']) === nil ? nil : #{tmp}.$post_match())" end end
#handle_pre_match ⇒ Object
111 112 113 114 115
# File 'opal/lib/opal/nodes/variables.rb', line 111 def handle_pre_match with_temp do |tmp| push "((#{tmp} = $gvars['~']) === nil ? nil : #{tmp}.$pre_match())" end end
#var_name ⇒ Object
85 86 87
# File 'opal/lib/opal/nodes/variables.rb', line 85 def var_name name.to_s[1..-1] end