@@ -71,6 +71,18 @@ defmodule ElixirScript.Translator do
7171 js_ast
7272 end
7373
74+ defp do_translate ( { { :. , _ , [ { :__aliases__ , _ , [ :JS ] } , function_name ] } , _ , params } , env ) when function_name in @ generator_types do
75+ do_translate ( { function_name , [ ] , params } , env )
76+ end
77+
78+ defp do_translate ( { { :. , _ , [ { :__aliases__ , _ , [ :JS ] } , function_name ] } , _ , params } , env ) do
79+ JSLib . translate_js_function ( function_name , params , env )
80+ end
81+
82+ defp do_translate ( { { :. , _ , [ { :__aliases__ , context , [ :JS | rest ] } , function_name ] } , _ , params } , env ) do
83+ JSLib . translate_js_function ( { :__aliases__ , context , rest } , function_name , params , env )
84+ end
85+
7486 defp do_translate ( ast , env ) when is_number ( ast ) or is_binary ( ast ) or is_boolean ( ast ) or is_nil ( ast ) do
7587 { Primitive . make_literal ( ast ) , env }
7688 end
@@ -247,7 +259,7 @@ defmodule ElixirScript.Translator do
247259 { name , _ } = env . function
248260 super_name = String . to_atom ( "__super__" <> to_string ( name ) )
249261
250- Call . make_local_function_call ( super_name , params , env )
262+ Call . make_local_function_call ( super_name , params , env )
251263 end
252264
253265 defp do_translate ( { { :. , _ , [ function_name ] } , _ , params } , env ) do
@@ -292,14 +304,6 @@ defmodule ElixirScript.Translator do
292304 translate ( { { :. , context1 , [ { :__aliases__ , context2 , [ :Bootstrap , :Enum ] } , function_name ] } , context3 , params } , env )
293305 end
294306
295- defp do_translate ( { { :. , _ , [ { :__aliases__ , _ , [ :JS ] } , function_name ] } , _ , params } , env ) when function_name in @ generator_types do
296- do_translate ( { function_name , [ ] , params } , env )
297- end
298-
299- defp do_translate ( { { :. , _ , [ { :__aliases__ , _ , [ :JS ] } , function_name ] } , _ , params } , env ) do
300- JSLib . translate_js_function ( function_name , params , env )
301- end
302-
303307 defp do_translate ( { { :. , _ , [ { :__aliases__ , _ , _ } = module_name , function_name ] } , _ , params } = ast , env ) do
304308 expanded_ast = Macro . expand ( ast , env . env )
305309
@@ -324,7 +328,7 @@ defmodule ElixirScript.Translator do
324328 else
325329 translate ( expanded_ast , env )
326330 end
327- end
331+ end
328332
329333 defp do_translate ( { { :. , _ , [ module_name , function_name ] } , _ , params } = ast , env ) do
330334 expanded_ast = Macro . expand ( ast , env . env )
@@ -696,7 +700,7 @@ defmodule ElixirScript.Translator do
696700 else
697701 module_name
698702 end
699- end
703+ end
700704
701705 def has_function? ( module_name , name_arity , env ) do
702706 case ElixirScript.Translator.State . get_module ( env . state , module_name ) do
0 commit comments