@@ -33,7 +33,7 @@ defmodule ElixirScript.Translate.Forms.Remote do
3333 :orddict ,
3434 :filelib ,
3535 :net_adm ,
36- :net_kernel ,
36+ :net_kernel
3737 ]
3838
3939 @ doc """
@@ -46,31 +46,32 @@ defmodule ElixirScript.Translate.Forms.Remote do
4646
4747 def compile ( { :. , _ , [ :erlang , :++ ] } , state ) do
4848 ast = erlang_compat_function ( "erlang" , "list_concatenation" )
49- { ast , state }
49+ { ast , state }
5050 end
5151
5252 def compile ( { :. , _ , [ :erlang , :-- ] } , state ) do
5353 ast = erlang_compat_function ( "erlang" , "list_substraction" )
54- { ast , state }
54+ { ast , state }
5555 end
5656
5757 def compile ( { :. , _ , [ :erlang , :"=<" ] } , state ) do
5858 ast = erlang_compat_function ( "erlang" , "lessThanEqualTo" )
59- { ast , state }
59+ { ast , state }
6060 end
6161
6262 def compile ( { :. , _ , [ :erlang , :+ ] } , state ) do
6363 ast = erlang_compat_function ( "erlang" , "add" )
64- { ast , state }
64+ { ast , state }
6565 end
6666
6767 def compile ( { :. , _ , [ module , function ] } , state ) when module in @ erlang_modules do
68- ast = J . member_expression (
69- Helpers . core_module ( module ) ,
70- J . identifier ( function )
71- )
68+ ast =
69+ J . member_expression (
70+ Helpers . core_module ( module ) ,
71+ J . identifier ( function )
72+ )
7273
73- { ast , state }
74+ { ast , state }
7475 end
7576
7677 def compile ( { :. , _ , [ function_name ] } , state ) do
@@ -80,30 +81,39 @@ defmodule ElixirScript.Translate.Forms.Remote do
8081 def compile ( { :. , _ , [ module , function ] } , state ) do
8182 function_name = ElixirScript.Translate.Identifier . make_function_name ( function )
8283
83- ast = J . member_expression (
84- process_module_name ( module , state ) ,
85- function_name
86- )
84+ ast =
85+ J . member_expression (
86+ process_module_name ( module , state ) ,
87+ function_name
88+ )
8789
8890 { ast , state }
8991 end
9092
9193 def process_module_name ( module , state ) when is_atom ( module ) do
9294 cond do
95+ ElixirScript.Translate.Module . is_js_module ( module , state ) and
96+ ModuleState . is_global_module ( state . pid , module ) ->
97+ ElixirScript.Translate.Identifier . make_alias ( Module . split ( module ) |> Enum . reverse ( ) )
98+
9399 ElixirScript.Translate.Module . is_js_module ( module , state ) ->
94100 process_js_module_name ( module , state )
101+
95102 module === Elixir ->
96103 module
97104 |> ElixirScript.Output . module_to_name ( )
98- |> J . identifier
105+ |> J . identifier ( )
106+
99107 module === :ElixirScript ->
100108 module
101109 |> ElixirScript.Output . module_to_name ( )
102- |> J . identifier
110+ |> J . identifier ( )
111+
103112 ElixirScript.Translate.Module . is_elixir_module ( module ) ->
104113 module
105114 |> ElixirScript.Output . module_to_name ( )
106- |> J . identifier
115+ |> J . identifier ( )
116+
107117 true ->
108118 ElixirScript.Translate.Identifier . make_identifier ( module )
109119 end
@@ -117,12 +127,14 @@ defmodule ElixirScript.Translate.Forms.Remote do
117127 case ModuleState . get_js_module_name ( state . pid , module ) do
118128 name when is_binary ( name ) ->
119129 J . identifier ( name )
130+
120131 name when is_atom ( name ) ->
121132 case to_string ( name ) do
122133 "Elixir." <> _ ->
123134 module
124135 |> ElixirScript.Output . module_to_name ( )
125- |> J . identifier
136+ |> J . identifier ( )
137+
126138 x ->
127139 J . identifier ( x )
128140 end
0 commit comments