@@ -297,6 +297,25 @@ defmodule ElixirScript.Translator.Rewriter do
297297 quote do: true
298298 end
299299
300+ def rewrite ( { { :. , _ , [ :erlang , :make_tuple ] } , _ , [ size , data ] } ) do
301+ quote do: JS . new ( Elixir.Core.Tuple , List . duplicate ( unquote ( size ) , unquote ( data ) ) )
302+ end
303+
304+ def rewrite ( { { :. , _ , [ :erlang , :insert_element ] } , _ , [ index , tuple , term ] } ) do
305+ quote do: unquote ( tuple ) . put_elem ( unquote ( index ) - 1 , unquote ( term ) )
306+ end
307+
308+ def rewrite ( { { :. , _ , [ :erlang , :tuple_to_list ] } , _ , [ tuple ] } ) do
309+ quote do: unquote ( tuple ) . values
310+ end
311+
312+ def rewrite ( { { :. , _ , [ :erlang , :append_element ] } , _ , [ tuple , value ] } ) do
313+ quote do: unquote ( tuple ) . put_elem ( unquote ( tuple ) . length , unquote ( value ) )
314+ end
315+
316+ def rewrite ( { { :. , _ , [ :erlang , :delete_element ] } , _ , [ index , tuple ] } ) do
317+ quote do: unquote ( tuple ) . remove_elem ( unquote ( index ) )
318+ end
300319
301320 def rewrite ( { { :. , _ , [ :lists , :map ] } , _ , [ fun , list ] } ) do
302321 quote do: unquote ( list ) . map ( unquote ( fun ) )
0 commit comments