pyret-npm 0.0.67 → 0.0.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pyret-npm",
3
- "version": "0.0.67",
3
+ "version": "0.0.69",
4
4
  "description": "The CLI for the Pyret programming language",
5
5
  "files": [
6
6
  "pyret.js",
@@ -39248,31 +39248,7 @@ define("pyret-base/js/js-numbers", function() {
39248
39248
 
39249
39249
  // fromFixnum: fixnum -> pyretnum
39250
39250
  var fromFixnum = function(x, errbacks) {
39251
- if (!isFinite(x)) {
39252
- return Roughnum.makeInstance(x, errbacks);
39253
- }
39254
- var nf = Math.floor(x);
39255
- if (nf === x) {
39256
- if (isOverflow(nf)) {
39257
- return makeBignum(expandExponent(x+''));
39258
- } else {
39259
- return nf;
39260
- }
39261
- } else {
39262
- // used to return float, now rational
39263
- var stringRep = x.toString();
39264
- var match = stringRep.match(/^(.*)\.(.*)$/);
39265
- if (match) {
39266
- var afterDecimal = parseInt(match[2]);
39267
- var factorToInt = Math.pow(10, match[2].length);
39268
- var extraFactor = _integerGcd(factorToInt, afterDecimal);
39269
- var multFactor = factorToInt / extraFactor;
39270
- return Rational.makeInstance(Math.round(x*multFactor), Math.round(factorToInt/extraFactor), errbacks);
39271
- } else {
39272
- return Rational.makeInstance(x, 1, errbacks);
39273
- }
39274
-
39275
- }
39251
+ return fromString(String(x), errbacks);
39276
39252
  };
39277
39253
 
39278
39254
  var expandExponent = function(s) {
@@ -39914,6 +39890,11 @@ define("pyret-base/js/js-numbers", function() {
39914
39890
  if (typeof(n) === 'number') {
39915
39891
  return Roughnum.makeInstance(Math.log(n), errbacks);
39916
39892
  }
39893
+ if (isRational(n) && !isInteger(n)) {
39894
+ return subtract(log(numerator(n, errbacks), errbacks),
39895
+ log(denominator(n, errbacks), errbacks),
39896
+ errbacks);
39897
+ }
39917
39898
  var nFix = n.toFixnum();
39918
39899
  if (typeof(nFix) === 'number' && nFix !== Infinity) {
39919
39900
  return Roughnum.makeInstance(Math.log(nFix), errbacks);
@@ -41151,7 +41132,6 @@ define("pyret-base/js/js-numbers", function() {
41151
41132
 
41152
41133
  var roughnumRatRegexp = new RegExp("^~([+-]?\\d+)/(\\d+)$");
41153
41134
 
41154
-
41155
41135
  var scientificPattern = new RegExp("^([+-]?\\d*\\.?\\d*)[Ee]([+]?\\d+)$");
41156
41136
 
41157
41137
  // fromString: string -> (pyretnum | false)
@@ -160,31 +160,7 @@ define("pyret-base/js/js-numbers", function() {
160
160
 
161
161
  // fromFixnum: fixnum -> pyretnum
162
162
  var fromFixnum = function(x, errbacks) {
163
- if (!isFinite(x)) {
164
- return Roughnum.makeInstance(x, errbacks);
165
- }
166
- var nf = Math.floor(x);
167
- if (nf === x) {
168
- if (isOverflow(nf)) {
169
- return makeBignum(expandExponent(x+''));
170
- } else {
171
- return nf;
172
- }
173
- } else {
174
- // used to return float, now rational
175
- var stringRep = x.toString();
176
- var match = stringRep.match(/^(.*)\.(.*)$/);
177
- if (match) {
178
- var afterDecimal = parseInt(match[2]);
179
- var factorToInt = Math.pow(10, match[2].length);
180
- var extraFactor = _integerGcd(factorToInt, afterDecimal);
181
- var multFactor = factorToInt / extraFactor;
182
- return Rational.makeInstance(Math.round(x*multFactor), Math.round(factorToInt/extraFactor), errbacks);
183
- } else {
184
- return Rational.makeInstance(x, 1, errbacks);
185
- }
186
-
187
- }
163
+ return fromString(String(x), errbacks);
188
164
  };
189
165
 
190
166
  var expandExponent = function(s) {
@@ -826,6 +802,11 @@ define("pyret-base/js/js-numbers", function() {
826
802
  if (typeof(n) === 'number') {
827
803
  return Roughnum.makeInstance(Math.log(n), errbacks);
828
804
  }
805
+ if (isRational(n) && !isInteger(n)) {
806
+ return subtract(log(numerator(n, errbacks), errbacks),
807
+ log(denominator(n, errbacks), errbacks),
808
+ errbacks);
809
+ }
829
810
  var nFix = n.toFixnum();
830
811
  if (typeof(nFix) === 'number' && nFix !== Infinity) {
831
812
  return Roughnum.makeInstance(Math.log(nFix), errbacks);
@@ -2063,7 +2044,6 @@ define("pyret-base/js/js-numbers", function() {
2063
2044
 
2064
2045
  var roughnumRatRegexp = new RegExp("^~([+-]?\\d+)/(\\d+)$");
2065
2046
 
2066
-
2067
2047
  var scientificPattern = new RegExp("^([+-]?\\d*\\.?\\d*)[Ee]([+]?\\d+)$");
2068
2048
 
2069
2049
  // fromString: string -> (pyretnum | false)
@@ -39214,31 +39214,7 @@ define("pyret-base/js/js-numbers", function() {
39214
39214
 
39215
39215
  // fromFixnum: fixnum -> pyretnum
39216
39216
  var fromFixnum = function(x, errbacks) {
39217
- if (!isFinite(x)) {
39218
- return Roughnum.makeInstance(x, errbacks);
39219
- }
39220
- var nf = Math.floor(x);
39221
- if (nf === x) {
39222
- if (isOverflow(nf)) {
39223
- return makeBignum(expandExponent(x+''));
39224
- } else {
39225
- return nf;
39226
- }
39227
- } else {
39228
- // used to return float, now rational
39229
- var stringRep = x.toString();
39230
- var match = stringRep.match(/^(.*)\.(.*)$/);
39231
- if (match) {
39232
- var afterDecimal = parseInt(match[2]);
39233
- var factorToInt = Math.pow(10, match[2].length);
39234
- var extraFactor = _integerGcd(factorToInt, afterDecimal);
39235
- var multFactor = factorToInt / extraFactor;
39236
- return Rational.makeInstance(Math.round(x*multFactor), Math.round(factorToInt/extraFactor), errbacks);
39237
- } else {
39238
- return Rational.makeInstance(x, 1, errbacks);
39239
- }
39240
-
39241
- }
39217
+ return fromString(String(x), errbacks);
39242
39218
  };
39243
39219
 
39244
39220
  var expandExponent = function(s) {
@@ -39880,6 +39856,11 @@ define("pyret-base/js/js-numbers", function() {
39880
39856
  if (typeof(n) === 'number') {
39881
39857
  return Roughnum.makeInstance(Math.log(n), errbacks);
39882
39858
  }
39859
+ if (isRational(n) && !isInteger(n)) {
39860
+ return subtract(log(numerator(n, errbacks), errbacks),
39861
+ log(denominator(n, errbacks), errbacks),
39862
+ errbacks);
39863
+ }
39883
39864
  var nFix = n.toFixnum();
39884
39865
  if (typeof(nFix) === 'number' && nFix !== Infinity) {
39885
39866
  return Roughnum.makeInstance(Math.log(nFix), errbacks);
@@ -41117,7 +41098,6 @@ define("pyret-base/js/js-numbers", function() {
41117
41098
 
41118
41099
  var roughnumRatRegexp = new RegExp("^~([+-]?\\d+)/(\\d+)$");
41119
41100
 
41120
-
41121
41101
  var scientificPattern = new RegExp("^([+-]?\\d*\\.?\\d*)[Ee]([+]?\\d+)$");
41122
41102
 
41123
41103
  // fromString: string -> (pyretnum | false)