@@ -278,7 +278,7 @@ private RubyString getCreateId(ThreadContext context) {
278
278
}
279
279
280
280
private RubyFloat createFloat (final ThreadContext context , final ByteList num ) {
281
- return RubyFloat .newFloat (context .runtime , ConvertDouble . byteListToDouble19 (num , true ));
281
+ return RubyFloat .newFloat (context .runtime , new DoubleConverter (). parse (num , true , true ));
282
282
}
283
283
284
284
private IRubyObject createBigDecimal (final ThreadContext context , final ByteList num ) {
@@ -957,13 +957,11 @@ RubyInteger createInteger(int p, int new_p) {
957
957
}
958
958
959
959
RubyInteger bytesToInum (Ruby runtime , ByteList num ) {
960
- return runtime .is1_9 () ?
961
- ConvertBytes .byteListToInum19 (runtime , num , 10 , true ) :
962
- ConvertBytes .byteListToInum (runtime , num , 10 , true );
960
+ return ConvertBytes .byteListToInum (runtime , num , 10 , true );
963
961
}
964
962
965
963
966
- // line 967 "Parser.java"
964
+ // line 965 "Parser.java"
967
965
private static byte [] init__JSON_float_actions_0 ()
968
966
{
969
967
return new byte [] {
@@ -1065,7 +1063,7 @@ private static byte[] init__JSON_float_trans_actions_0()
1065
1063
static final int JSON_float_en_main = 1 ;
1066
1064
1067
1065
1068
- // line 555 "Parser.rl"
1066
+ // line 553 "Parser.rl"
1069
1067
1070
1068
1071
1069
void parseFloat (ParserResult res , int p , int pe ) {
@@ -1084,15 +1082,15 @@ int parseFloatInternal(int p, int pe) {
1084
1082
int cs = EVIL ;
1085
1083
1086
1084
1087
- // line 1088 "Parser.java"
1085
+ // line 1086 "Parser.java"
1088
1086
{
1089
1087
cs = JSON_float_start ;
1090
1088
}
1091
1089
1092
- // line 573 "Parser.rl"
1090
+ // line 571 "Parser.rl"
1093
1091
int memo = p ;
1094
1092
1095
- // line 1096 "Parser.java"
1093
+ // line 1094 "Parser.java"
1096
1094
{
1097
1095
int _klen ;
1098
1096
int _trans = 0 ;
@@ -1173,13 +1171,13 @@ else if ( data[p] > _JSON_float_trans_keys[_mid+1] )
1173
1171
switch ( _JSON_float_actions [_acts ++] )
1174
1172
{
1175
1173
case 0 :
1176
- // line 546 "Parser.rl"
1174
+ // line 544 "Parser.rl"
1177
1175
{
1178
1176
p --;
1179
1177
{ p += 1 ; _goto_targ = 5 ; if (true ) continue _goto ;}
1180
1178
}
1181
1179
break ;
1182
- // line 1183 "Parser.java"
1180
+ // line 1181 "Parser.java"
1183
1181
}
1184
1182
}
1185
1183
}
@@ -1199,7 +1197,7 @@ else if ( data[p] > _JSON_float_trans_keys[_mid+1] )
1199
1197
break ; }
1200
1198
}
1201
1199
1202
- // line 575 "Parser.rl"
1200
+ // line 573 "Parser.rl"
1203
1201
1204
1202
if (cs < JSON_float_first_final ) {
1205
1203
return -1 ;
@@ -1209,7 +1207,7 @@ else if ( data[p] > _JSON_float_trans_keys[_mid+1] )
1209
1207
}
1210
1208
1211
1209
1212
- // line 1213 "Parser.java"
1210
+ // line 1211 "Parser.java"
1213
1211
private static byte [] init__JSON_string_actions_0 ()
1214
1212
{
1215
1213
return new byte [] {
@@ -1311,23 +1309,23 @@ private static byte[] init__JSON_string_trans_actions_0()
1311
1309
static final int JSON_string_en_main = 1 ;
1312
1310
1313
1311
1314
- // line 614 "Parser.rl"
1312
+ // line 612 "Parser.rl"
1315
1313
1316
1314
1317
1315
void parseString (ParserResult res , int p , int pe ) {
1318
1316
int cs = EVIL ;
1319
1317
IRubyObject result = null ;
1320
1318
1321
1319
1322
- // line 1323 "Parser.java"
1320
+ // line 1321 "Parser.java"
1323
1321
{
1324
1322
cs = JSON_string_start ;
1325
1323
}
1326
1324
1327
- // line 621 "Parser.rl"
1325
+ // line 619 "Parser.rl"
1328
1326
int memo = p ;
1329
1327
1330
- // line 1331 "Parser.java"
1328
+ // line 1329 "Parser.java"
1331
1329
{
1332
1330
int _klen ;
1333
1331
int _trans = 0 ;
@@ -1408,7 +1406,7 @@ else if ( data[p] > _JSON_string_trans_keys[_mid+1] )
1408
1406
switch ( _JSON_string_actions [_acts ++] )
1409
1407
{
1410
1408
case 0 :
1411
- // line 589 "Parser.rl"
1409
+ // line 587 "Parser.rl"
1412
1410
{
1413
1411
int offset = byteList .begin ();
1414
1412
ByteList decoded = decoder .decode (byteList , memo + 1 - offset ,
@@ -1423,13 +1421,13 @@ else if ( data[p] > _JSON_string_trans_keys[_mid+1] )
1423
1421
}
1424
1422
break ;
1425
1423
case 1 :
1426
- // line 602 "Parser.rl"
1424
+ // line 600 "Parser.rl"
1427
1425
{
1428
1426
p --;
1429
1427
{ p += 1 ; _goto_targ = 5 ; if (true ) continue _goto ;}
1430
1428
}
1431
1429
break ;
1432
- // line 1433 "Parser.java"
1430
+ // line 1431 "Parser.java"
1433
1431
}
1434
1432
}
1435
1433
}
@@ -1449,7 +1447,7 @@ else if ( data[p] > _JSON_string_trans_keys[_mid+1] )
1449
1447
break ; }
1450
1448
}
1451
1449
1452
- // line 623 "Parser.rl"
1450
+ // line 621 "Parser.rl"
1453
1451
1454
1452
if (parser .createAdditions ) {
1455
1453
RubyHash matchString = parser .match_string ;
@@ -1494,7 +1492,7 @@ public void visit(IRubyObject pattern, IRubyObject klass) {
1494
1492
}
1495
1493
1496
1494
1497
- // line 1498 "Parser.java"
1495
+ // line 1496 "Parser.java"
1498
1496
private static byte [] init__JSON_array_actions_0 ()
1499
1497
{
1500
1498
return new byte [] {
@@ -1607,7 +1605,7 @@ private static byte[] init__JSON_array_trans_actions_0()
1607
1605
static final int JSON_array_en_main = 1 ;
1608
1606
1609
1607
1610
- // line 703 "Parser.rl"
1608
+ // line 701 "Parser.rl"
1611
1609
1612
1610
1613
1611
void parseArray (ParserResult res , int p , int pe ) {
@@ -1627,14 +1625,14 @@ void parseArray(ParserResult res, int p, int pe) {
1627
1625
}
1628
1626
1629
1627
1630
- // line 1631 "Parser.java"
1628
+ // line 1629 "Parser.java"
1631
1629
{
1632
1630
cs = JSON_array_start ;
1633
1631
}
1634
1632
1635
- // line 722 "Parser.rl"
1633
+ // line 720 "Parser.rl"
1636
1634
1637
- // line 1638 "Parser.java"
1635
+ // line 1636 "Parser.java"
1638
1636
{
1639
1637
int _klen ;
1640
1638
int _trans = 0 ;
@@ -1715,7 +1713,7 @@ else if ( data[p] > _JSON_array_trans_keys[_mid+1] )
1715
1713
switch ( _JSON_array_actions [_acts ++] )
1716
1714
{
1717
1715
case 0 :
1718
- // line 672 "Parser.rl"
1716
+ // line 670 "Parser.rl"
1719
1717
{
1720
1718
parseValue (res , p , pe );
1721
1719
if (res .result == null ) {
@@ -1732,13 +1730,13 @@ else if ( data[p] > _JSON_array_trans_keys[_mid+1] )
1732
1730
}
1733
1731
break ;
1734
1732
case 1 :
1735
- // line 687 "Parser.rl"
1733
+ // line 685 "Parser.rl"
1736
1734
{
1737
1735
p --;
1738
1736
{ p += 1 ; _goto_targ = 5 ; if (true ) continue _goto ;}
1739
1737
}
1740
1738
break ;
1741
- // line 1742 "Parser.java"
1739
+ // line 1740 "Parser.java"
1742
1740
}
1743
1741
}
1744
1742
}
@@ -1758,7 +1756,7 @@ else if ( data[p] > _JSON_array_trans_keys[_mid+1] )
1758
1756
break ; }
1759
1757
}
1760
1758
1761
- // line 723 "Parser.rl"
1759
+ // line 721 "Parser.rl"
1762
1760
1763
1761
if (cs >= JSON_array_first_final ) {
1764
1762
res .update (result , p + 1 );
@@ -1768,7 +1766,7 @@ else if ( data[p] > _JSON_array_trans_keys[_mid+1] )
1768
1766
}
1769
1767
1770
1768
1771
- // line 1772 "Parser.java"
1769
+ // line 1770 "Parser.java"
1772
1770
private static byte [] init__JSON_object_actions_0 ()
1773
1771
{
1774
1772
return new byte [] {
@@ -1891,7 +1889,7 @@ private static byte[] init__JSON_object_trans_actions_0()
1891
1889
static final int JSON_object_en_main = 1 ;
1892
1890
1893
1891
1894
- // line 782 "Parser.rl"
1892
+ // line 778 "Parser.rl"
1895
1893
1896
1894
1897
1895
void parseObject (ParserResult res , int p , int pe ) {
@@ -1916,14 +1914,14 @@ void parseObject(ParserResult res, int p, int pe) {
1916
1914
}
1917
1915
1918
1916
1919
- // line 1920 "Parser.java"
1917
+ // line 1918 "Parser.java"
1920
1918
{
1921
1919
cs = JSON_object_start ;
1922
1920
}
1923
1921
1924
- // line 806 "Parser.rl"
1922
+ // line 802 "Parser.rl"
1925
1923
1926
- // line 1927 "Parser.java"
1924
+ // line 1925 "Parser.java"
1927
1925
{
1928
1926
int _klen ;
1929
1927
int _trans = 0 ;
@@ -2004,7 +2002,7 @@ else if ( data[p] > _JSON_object_trans_keys[_mid+1] )
2004
2002
switch ( _JSON_object_actions [_acts ++] )
2005
2003
{
2006
2004
case 0 :
2007
- // line 737 "Parser.rl"
2005
+ // line 735 "Parser.rl"
2008
2006
{
2009
2007
parseValue (res , p , pe );
2010
2008
if (res .result == null ) {
@@ -2021,7 +2019,7 @@ else if ( data[p] > _JSON_object_trans_keys[_mid+1] )
2021
2019
}
2022
2020
break ;
2023
2021
case 1 :
2024
- // line 752 "Parser.rl"
2022
+ // line 750 "Parser.rl"
2025
2023
{
2026
2024
parseString (res , p , pe );
2027
2025
if (res .result == null ) {
@@ -2030,9 +2028,7 @@ else if ( data[p] > _JSON_object_trans_keys[_mid+1] )
2030
2028
} else {
2031
2029
RubyString name = (RubyString )res .result ;
2032
2030
if (parser .symbolizeNames ) {
2033
- lastName = context .getRuntime ().is1_9 ()
2034
- ? name .intern19 ()
2035
- : name .intern ();
2031
+ lastName = name .intern ();
2036
2032
} else {
2037
2033
lastName = name ;
2038
2034
}
@@ -2041,13 +2037,13 @@ else if ( data[p] > _JSON_object_trans_keys[_mid+1] )
2041
2037
}
2042
2038
break ;
2043
2039
case 2 :
2044
- // line 770 "Parser.rl"
2040
+ // line 766 "Parser.rl"
2045
2041
{
2046
2042
p --;
2047
2043
{ p += 1 ; _goto_targ = 5 ; if (true ) continue _goto ;}
2048
2044
}
2049
2045
break ;
2050
- // line 2051 "Parser.java"
2046
+ // line 2047 "Parser.java"
2051
2047
}
2052
2048
}
2053
2049
}
@@ -2067,7 +2063,7 @@ else if ( data[p] > _JSON_object_trans_keys[_mid+1] )
2067
2063
break ; }
2068
2064
}
2069
2065
2070
- // line 807 "Parser.rl"
2066
+ // line 803 "Parser.rl"
2071
2067
2072
2068
if (cs < JSON_object_first_final ) {
2073
2069
res .update (null , p + 1 );
@@ -2100,7 +2096,7 @@ else if ( data[p] > _JSON_object_trans_keys[_mid+1] )
2100
2096
}
2101
2097
2102
2098
2103
- // line 2104 "Parser.java"
2099
+ // line 2100 "Parser.java"
2104
2100
private static byte [] init__JSON_actions_0 ()
2105
2101
{
2106
2102
return new byte [] {
@@ -2203,7 +2199,7 @@ private static byte[] init__JSON_trans_actions_0()
2203
2199
static final int JSON_en_main = 1 ;
2204
2200
2205
2201
2206
- // line 858 "Parser.rl"
2202
+ // line 854 "Parser.rl"
2207
2203
2208
2204
2209
2205
public IRubyObject parseImplemetation () {
@@ -2213,16 +2209,16 @@ public IRubyObject parseImplemetation() {
2213
2209
ParserResult res = new ParserResult ();
2214
2210
2215
2211
2216
- // line 2217 "Parser.java"
2212
+ // line 2213 "Parser.java"
2217
2213
{
2218
2214
cs = JSON_start ;
2219
2215
}
2220
2216
2221
- // line 867 "Parser.rl"
2217
+ // line 863 "Parser.rl"
2222
2218
p = byteList .begin ();
2223
2219
pe = p + byteList .length ();
2224
2220
2225
- // line 2226 "Parser.java"
2221
+ // line 2222 "Parser.java"
2226
2222
{
2227
2223
int _klen ;
2228
2224
int _trans = 0 ;
@@ -2303,7 +2299,7 @@ else if ( data[p] > _JSON_trans_keys[_mid+1] )
2303
2299
switch ( _JSON_actions [_acts ++] )
2304
2300
{
2305
2301
case 0 :
2306
- // line 844 "Parser.rl"
2302
+ // line 840 "Parser.rl"
2307
2303
{
2308
2304
parseValue (res , p , pe );
2309
2305
if (res .result == null ) {
@@ -2315,7 +2311,7 @@ else if ( data[p] > _JSON_trans_keys[_mid+1] )
2315
2311
}
2316
2312
}
2317
2313
break ;
2318
- // line 2319 "Parser.java"
2314
+ // line 2315 "Parser.java"
2319
2315
}
2320
2316
}
2321
2317
}
@@ -2335,7 +2331,7 @@ else if ( data[p] > _JSON_trans_keys[_mid+1] )
2335
2331
break ; }
2336
2332
}
2337
2333
2338
- // line 870 "Parser.rl"
2334
+ // line 866 "Parser.rl"
2339
2335
2340
2336
if (cs >= JSON_first_final && p == pe ) {
2341
2337
return result ;
0 commit comments