@@ -43,8 +43,6 @@ import * as os from "os";
4343
4444 /* XXX: use preprocessor ? */
4545 var config_numcalc = ( typeof os . open === "undefined" ) ;
46- var has_jscalc = ( typeof Fraction === "function" ) ;
47- var has_bignum = ( typeof BigFloat === "function" ) ;
4846
4947 var colors = {
5048 none : "\x1b[0m" ,
@@ -913,48 +911,6 @@ import * as os from "os";
913911 }
914912 }
915913
916- function bigfloat_to_string ( a , radix ) {
917- var s ;
918- if ( ! BigFloat . isFinite ( a ) ) {
919- /* NaN, Infinite */
920- if ( eval_mode !== "math" ) {
921- return "BigFloat(" + a . toString ( ) + ")" ;
922- } else {
923- return a . toString ( ) ;
924- }
925- } else {
926- if ( a == 0 ) {
927- if ( 1 / a < 0 )
928- s = "-0" ;
929- else
930- s = "0" ;
931- } else {
932- if ( radix == 16 ) {
933- var s ;
934- if ( a < 0 ) {
935- a = - a ;
936- s = "-" ;
937- } else {
938- s = "" ;
939- }
940- s += "0x" + a . toString ( 16 ) ;
941- } else {
942- s = a . toString ( ) ;
943- }
944- }
945- if ( typeof a === "bigfloat" && eval_mode !== "math" ) {
946- s += "l" ;
947- } else if ( eval_mode !== "std" && s . indexOf ( "." ) < 0 &&
948- ( ( radix == 16 && s . indexOf ( "p" ) < 0 ) ||
949- ( radix == 10 && s . indexOf ( "e" ) < 0 ) ) ) {
950- /* add a decimal point so that the floating point type
951- is visible */
952- s += ".0" ;
953- }
954- return s ;
955- }
956- }
957-
958914 function bigint_to_string ( a , radix ) {
959915 var s ;
960916 if ( radix == 16 ) {
@@ -1041,10 +997,6 @@ import * as os from "os";
1041997 std . puts ( number_to_string ( a , hex_mode ? 16 : 10 ) ) ;
1042998 } else if ( type === "bigint" ) {
1043999 std . puts ( bigint_to_string ( a , hex_mode ? 16 : 10 ) ) ;
1044- } else if ( type === "bigfloat" ) {
1045- std . puts ( bigfloat_to_string ( a , hex_mode ? 16 : 10 ) ) ;
1046- } else if ( type === "bigdecimal" ) {
1047- std . puts ( a . toString ( ) + "m" ) ;
10481000 } else if ( type === "symbol" ) {
10491001 std . puts ( String ( a ) ) ;
10501002 } else if ( type === "function" ) {
@@ -1085,67 +1037,6 @@ import * as os from "os";
10851037 hex_mode = false ;
10861038 } else if ( cmd === "t" ) {
10871039 show_time = ! show_time ;
1088- } else if ( has_bignum && cmd === "p" ) {
1089- param = expr . substring ( cmd . length + 1 ) . trim ( ) . split ( " " ) ;
1090- if ( param . length === 1 && param [ 0 ] === "" ) {
1091- std . puts ( "BigFloat precision=" + prec + " bits (~" +
1092- Math . floor ( prec / log2_10 ) +
1093- " digits), exponent size=" + expBits + " bits\n" ) ;
1094- } else if ( param [ 0 ] === "f16" ) {
1095- prec = 11 ;
1096- expBits = 5 ;
1097- } else if ( param [ 0 ] === "f32" ) {
1098- prec = 24 ;
1099- expBits = 8 ;
1100- } else if ( param [ 0 ] === "f64" ) {
1101- prec = 53 ;
1102- expBits = 11 ;
1103- } else if ( param [ 0 ] === "f128" ) {
1104- prec = 113 ;
1105- expBits = 15 ;
1106- } else {
1107- prec1 = parseInt ( param [ 0 ] ) ;
1108- if ( param . length >= 2 )
1109- expBits1 = parseInt ( param [ 1 ] ) ;
1110- else
1111- expBits1 = BigFloatEnv . expBitsMax ;
1112- if ( Number . isNaN ( prec1 ) ||
1113- prec1 < BigFloatEnv . precMin ||
1114- prec1 > BigFloatEnv . precMax ) {
1115- std . puts ( "Invalid precision\n" ) ;
1116- return false ;
1117- }
1118- if ( Number . isNaN ( expBits1 ) ||
1119- expBits1 < BigFloatEnv . expBitsMin ||
1120- expBits1 > BigFloatEnv . expBitsMax ) {
1121- std . puts ( "Invalid exponent bits\n" ) ;
1122- return false ;
1123- }
1124- prec = prec1 ;
1125- expBits = expBits1 ;
1126- }
1127- return false ;
1128- } else if ( has_bignum && cmd === "digits" ) {
1129- param = expr . substring ( cmd . length + 1 ) . trim ( ) ;
1130- prec1 = Math . ceil ( parseFloat ( param ) * log2_10 ) ;
1131- if ( prec1 < BigFloatEnv . precMin ||
1132- prec1 > BigFloatEnv . precMax ) {
1133- std . puts ( "Invalid precision\n" ) ;
1134- return false ;
1135- }
1136- prec = prec1 ;
1137- expBits = BigFloatEnv . expBitsMax ;
1138- return false ;
1139- } else if ( has_bignum && cmd === "mode" ) {
1140- param = expr . substring ( cmd . length + 1 ) . trim ( ) ;
1141- if ( param === "" ) {
1142- std . puts ( "Running mode=" + eval_mode + "\n" ) ;
1143- } else if ( param === "std" || param === "math" ) {
1144- eval_mode = param ;
1145- } else {
1146- std . puts ( "Invalid mode\n" ) ;
1147- }
1148- return false ;
11491040 } else if ( cmd === "clear" ) {
11501041 std . puts ( "\x1b[H\x1b[J" ) ;
11511042 } else if ( cmd === "q" ) {
@@ -1207,17 +1098,6 @@ import * as os from "os";
12071098 "\\d " + sel ( ! hex_mode ) + "decimal number display\n" +
12081099 "\\t " + sel ( show_time ) + "toggle timing display\n" +
12091100 "\\clear clear the terminal\n" ) ;
1210- if ( has_jscalc ) {
1211- std . puts ( "\\a " + sel ( algebraicMode ) + "algebraic mode\n" +
1212- "\\n " + sel ( ! algebraicMode ) + "numeric mode\n" ) ;
1213- }
1214- if ( has_bignum ) {
1215- std . puts ( "\\p [m [e]] set the BigFloat precision to 'm' bits\n" +
1216- "\\digits n set the BigFloat precision to 'ceil(n*log2(10))' bits\n" ) ;
1217- if ( ! has_jscalc ) {
1218- std . puts ( "\\mode [std|math] change the running mode (current = " + eval_mode + ")\n" ) ;
1219- }
1220- }
12211101 if ( ! config_numcalc ) {
12221102 std . puts ( "\\q exit\n" ) ;
12231103 }
@@ -1230,16 +1110,6 @@ import * as os from "os";
12301110 else
12311111 std . puts ( 'QuickJS - Type "\\h" for help\n' ) ;
12321112 }
1233- if ( has_bignum ) {
1234- log2_10 = Math . log ( 10 ) / Math . log ( 2 ) ;
1235- prec = 113 ;
1236- expBits = 15 ;
1237- if ( has_jscalc ) {
1238- eval_mode = "math" ;
1239- /* XXX: numeric mode should always be the default ? */
1240- g . algebraicMode = config_numcalc ;
1241- }
1242- }
12431113
12441114 cmd_readline_start ( ) ;
12451115 }
@@ -1287,22 +1157,15 @@ import * as os from "os";
12871157 }
12881158 mexpr = "" ;
12891159
1290- if ( has_bignum ) {
1291- /* XXX: async is not supported in this case */
1292- BigFloatEnv . setPrec ( eval_and_print_start . bind ( null , expr , false ) ,
1293- prec , expBits ) ;
1294- } else {
1295- eval_and_print_start ( expr , true ) ;
1296- }
1160+ eval_and_print_start ( expr , true ) ;
1161+
12971162 return true ;
12981163 }
12991164
13001165 function eval_and_print_start ( expr , is_async ) {
13011166 var result ;
13021167
13031168 try {
1304- if ( eval_mode === "math" )
1305- expr = '"use math"; void 0;' + expr ;
13061169 eval_start_time = os . now ( ) ;
13071170 /* eval as a script */
13081171 result = std . evalScript ( expr , { backtrace_barrier : true , async : is_async } ) ;
0 commit comments