@@ -1677,9 +1677,7 @@ public RubyNode visitIndexAndWriteNode(Nodes.IndexAndWriteNode node) {
1677
1677
final RubyNode readNode = read .accept (this );
1678
1678
1679
1679
final Nodes .Node [] readArgumentsAndValue = new Nodes .Node [argumentsCount + 1 ];
1680
- for (int i = 0 ; i < argumentsCount ; i ++) {
1681
- readArgumentsAndValue [i ] = readArguments [i ];
1682
- }
1680
+ System .arraycopy (readArguments , 0 , readArgumentsAndValue , 0 , argumentsCount );
1683
1681
readArgumentsAndValue [argumentsCount ] = node .value ;
1684
1682
1685
1683
final Nodes .Node write = new Nodes .CallNode (readReceiver , "[]=" ,
@@ -1749,9 +1747,7 @@ public RubyNode visitIndexOperatorWriteNode(Nodes.IndexOperatorWriteNode node) {
1749
1747
final Nodes .Node executeOperator = callNode (node , read , node .operator , node .value );
1750
1748
1751
1749
final Nodes .Node [] readArgumentsAndResult = new Nodes .Node [argumentsCount + 1 ];
1752
- for (int i = 0 ; i < argumentsCount ; i ++) {
1753
- readArgumentsAndResult [i ] = readArguments [i ];
1754
- }
1750
+ System .arraycopy (readArguments , 0 , readArgumentsAndResult , 0 , argumentsCount );
1755
1751
readArgumentsAndResult [argumentsCount ] = executeOperator ;
1756
1752
1757
1753
final Nodes .Node write = new Nodes .CallNode (readReceiver , "[]=" ,
@@ -1820,9 +1816,7 @@ public RubyNode visitIndexOrWriteNode(Nodes.IndexOrWriteNode node) {
1820
1816
final RubyNode readNode = read .accept (this );
1821
1817
1822
1818
final Nodes .Node [] readArgumentsAndValue = new Nodes .Node [argumentsCount + 1 ];
1823
- for (int i = 0 ; i < argumentsCount ; i ++) {
1824
- readArgumentsAndValue [i ] = readArguments [i ];
1825
- }
1819
+ System .arraycopy (readArguments , 0 , readArgumentsAndValue , 0 , argumentsCount );
1826
1820
readArgumentsAndValue [argumentsCount ] = node .value ;
1827
1821
1828
1822
final Nodes .Node write = new Nodes .CallNode (readReceiver , "[]=" ,
0 commit comments