Skip to content

Commit 7952b50

Browse files
author
Ben Lerner
committed
corresponding changes to brownplt/pyret-lang#1839, to refactor how modules obtain the correct jsnums library that now closes over an appropriate errbacks parameter
1 parent 9c18242 commit 7952b50

File tree

8 files changed

+121
-124
lines changed

8 files changed

+121
-124
lines changed

src/web/js/cpo-ide-hooks.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,12 @@
3232
],
3333
nativeRequires: [
3434
"cpo/cpo-builtin-modules",
35-
"pyret-base/js/js-numbers",
3635
],
3736
provides: {},
3837
theModule: function(runtime, namespace, uri,
3938
compileLib, compileStructs, pyRepl, cpo,
4039
runtimeLib, loadLib, cpoBuiltins, parsePyret,
41-
cpoModules, jsnums
40+
cpoModules
4241
) {
4342
window.CPOIDEHooks = {
4443
runtime: runtime,
@@ -49,7 +48,7 @@
4948
compileStructs: compileStructs,
5049
compileLib: compileLib,
5150
cpoModules: cpoModules,
52-
jsnums: jsnums
51+
jsnums: runtime.jsnums
5352
};
5453
return runtime.makeModuleReturn({}, {});
5554
}

src/web/js/output-ui.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
provides: {},
1717
nativeRequires: [
1818
"pyret-base/js/runtime-util",
19-
"pyret-base/js/js-numbers"
2019
],
21-
theModule: function(runtime, _, uri, parsePyret, errordisplayLib, srclocLib, astLib, imageLib, loadLib, util, jsnums) {
20+
theModule: function(runtime, _, uri, parsePyret, errordisplayLib, srclocLib, astLib, imageLib, loadLib, util) {
2221

22+
var jsnums = runtime.jsnums;
2323
var image = runtime.getField(imageLib, "internal");
2424
var srcloc = runtime.getField(srclocLib, "values");
2525
var isSrcloc = runtime.getField(srcloc, "is-Srcloc");
@@ -1399,7 +1399,7 @@
13991399
// after, and numerals to be repeated.
14001400
var numr = num.numerator();
14011401
var denr = num.denominator();
1402-
var decimal = jsnums.toRepeatingDecimal(numr, denr, runtime.NumberErrbacks);
1402+
var decimal = jsnums.toRepeatingDecimal(numr, denr);
14031403
var prePointString = decimal[0];
14041404
var postPointString = decimal[1];
14051405
var decRpt = decimal[2];

src/web/js/trove/chart-lib.js

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
{ 'import-type': 'builtin', 'name': 'image-lib' },
55
],
66
nativeRequires: [
7-
'pyret-base/js/js-numbers',
87
'google-charts',
98
],
109
provides: {
@@ -17,8 +16,9 @@
1716
'plot': "tany",
1817
}
1918
},
20-
theModule: function (RUNTIME, NAMESPACE, uri, IMAGELIB, jsnums , google) {
21-
'use strict';
19+
theModule: function (RUNTIME, NAMESPACE, uri, IMAGELIB, google) {
20+
'use strict';
21+
var jsnums = RUNTIME.jsnums;
2222
// Load google library via editor.html to avoid loading issues
2323

2424
function notImp(name) {
@@ -89,7 +89,7 @@
8989
function getPrettyNumToStringDigits(d) {
9090
// this accepts Pyret num
9191
return n =>
92-
jsnums.toStringDigits(n, d, RUNTIME.NumberErrbacks).replace(/\.?0*$/, '');
92+
jsnums.toStringDigits(n, d).replace(/\.?0*$/, '');
9393
}
9494

9595
const prettyNumToStringDigits5 = getPrettyNumToStringDigits(5);
@@ -180,8 +180,7 @@
180180
xMaxC.removeClass('error-bg');
181181
xMaxC.addClass('ok-bg');
182182

183-
if (jsnums.greaterThanOrEqual(xMinVal, xMaxVal,
184-
RUNTIME.NumberErrbacks)) {
183+
if (jsnums.greaterThanOrEqual(xMinVal, xMaxVal)) {
185184
xMinC.addClass('error-bg');
186185
xMaxC.addClass('error-bg');
187186
xMinC.removeClass('ok-bg');
@@ -211,8 +210,7 @@
211210
yMaxC.removeClass('error-bg');
212211
yMaxC.addClass('ok-bg');
213212

214-
if (jsnums.greaterThanOrEqual(xMinVal, xMaxVal,
215-
RUNTIME.NumberErrbacks)) {
213+
if (jsnums.greaterThanOrEqual(xMinVal, xMaxVal)) {
216214
yMinC.addClass('error-bg');
217215
yMaxC.addClass('error-bg');
218216
yMinC.removeClass('ok-bg');
@@ -232,8 +230,7 @@
232230
numSamplesC.addClass('ok-bg');
233231

234232
if (!isTrue(RUNTIME.num_is_integer(numSamplesVal)) ||
235-
jsnums.lessThanOrEqual(numSamplesVal, 1,
236-
RUNTIME.NumberErrbacks)) {
233+
jsnums.lessThanOrEqual(numSamplesVal, 1)) {
237234
numSamplesC.addClass('error-bg');
238235
numSamplesC.removeClass('ok-bg');
239236
return null;

src/web/js/trove/d3-lib-list.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
{ 'import-type': 'builtin', 'name': 'image-lib' },
44
],
55
nativeRequires: [
6-
'pyret-base/js/js-numbers',
76
'd3'
87
],
98
provides: {},
10-
theModule: function (RUNTIME, NAMESPACE, uri, IMAGELIB, jsnums, d3) {
9+
theModule: function (RUNTIME, NAMESPACE, uri, IMAGELIB, d3) {
1110
'use strict';
1211

12+
var jsnums = RUNTIME.jsnums;
1313
var IMAGE = RUNTIME.getField(IMAGELIB, "internal");
1414

1515

@@ -34,13 +34,13 @@
3434
* @return {jsnums -> jsnums}
3535
*/
3636
return function (k) {
37-
var oldDiff = jsnums.subtract(k, oldX, RUNTIME.NumberErrbacks);
38-
var oldRange = jsnums.subtract(oldY, oldX, RUNTIME.NumberErrbacks);
39-
var portion = jsnums.divide(oldDiff, oldRange, RUNTIME.NumberErrbacks);
40-
var newRange = jsnums.subtract(newY, newX, RUNTIME.NumberErrbacks);
41-
var newPortion = jsnums.multiply(portion, newRange, RUNTIME.NumberErrbacks);
42-
var result = jsnums.add(newPortion, newX, RUNTIME.NumberErrbacks);
43-
return toFixnum ? jsnums.toFixnum(result, RUNTIME.NumberErrbacks) : result;
37+
var oldDiff = jsnums.subtract(k, oldX);
38+
var oldRange = jsnums.subtract(oldY, oldX);
39+
var portion = jsnums.divide(oldDiff, oldRange);
40+
var newRange = jsnums.subtract(newY, newX);
41+
var newPortion = jsnums.multiply(portion, newRange);
42+
var result = jsnums.add(newPortion, newX);
43+
return toFixnum ? jsnums.toFixnum(result) : result;
4444
};
4545
}
4646

@@ -50,13 +50,13 @@
5050

5151
function getPrettyNumToStringDigits(digits) {
5252
return function (num) {
53-
return jsnums.toStringDigits(num, digits, RUNTIME.NumberErrbacks).replace(/\.?0*$/, '');
53+
return jsnums.toStringDigits(num, digits).replace(/\.?0*$/, '');
5454
};
5555
}
5656

5757
function between(b, a, c) {
58-
return (jsnums.lessThanOrEqual(a, b, RUNTIME.NumberErrbacks) && jsnums.lessThanOrEqual(b, c, RUNTIME.NumberErrbacks)) ||
59-
(jsnums.lessThanOrEqual(c, b, RUNTIME.NumberErrbacks) && jsnums.lessThanOrEqual(b, a, RUNTIME.NumberErrbacks));
58+
return (jsnums.lessThanOrEqual(a, b) && jsnums.lessThanOrEqual(b, c)) ||
59+
(jsnums.lessThanOrEqual(c, b) && jsnums.lessThanOrEqual(b, a));
6060
}
6161

6262
function numMin(a, b) { /* ignore the rest */

src/web/js/trove/d3-lib.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
{ 'import-type': 'builtin', 'name': 'image-lib' },
44
],
55
nativeRequires: [
6-
'pyret-base/js/js-numbers',
76
'd3'
87
],
98
provides: {},
10-
theModule: function (RUNTIME, NAMESPACE, uri, IMAGELIB, jsnums, d3) {
9+
theModule: function (RUNTIME, NAMESPACE, uri, IMAGELIB, d3) {
1110
'use strict';
1211

12+
var jsnums = RUNTIME.jsnums;
1313
var IMAGE = RUNTIME.getField(IMAGELIB, "internal");
1414

1515
function assert(val, msg) {
@@ -33,13 +33,13 @@
3333
* @return {jsnums -> jsnums}
3434
*/
3535
return function (k) {
36-
var oldDiff = jsnums.subtract(k, oldX, RUNTIME.NumberErrbacks);
37-
var oldRange = jsnums.subtract(oldY, oldX, RUNTIME.NumberErrbacks);
38-
var portion = jsnums.divide(oldDiff, oldRange, RUNTIME.NumberErrbacks);
39-
var newRange = jsnums.subtract(newY, newX, RUNTIME.NumberErrbacks);
40-
var newPortion = jsnums.multiply(portion, newRange, RUNTIME.NumberErrbacks);
41-
var result = jsnums.add(newPortion, newX, RUNTIME.NumberErrbacks);
42-
return toFixnum ? jsnums.toFixnum(result, RUNTIME.NumberErrbacks) : result;
36+
var oldDiff = jsnums.subtract(k, oldX);
37+
var oldRange = jsnums.subtract(oldY, oldX);
38+
var portion = jsnums.divide(oldDiff, oldRange);
39+
var newRange = jsnums.subtract(newY, newX);
40+
var newPortion = jsnums.multiply(portion, newRange);
41+
var result = jsnums.add(newPortion, newX);
42+
return toFixnum ? jsnums.toFixnum(result) : result;
4343
};
4444
}
4545

@@ -49,13 +49,13 @@
4949

5050
function getPrettyNumToStringDigits(digits) {
5151
return function (num) {
52-
return jsnums.toStringDigits(num, digits, RUNTIME.NumberErrbacks).replace(/\.?0*$/, '');
52+
return jsnums.toStringDigits(num, digits).replace(/\.?0*$/, '');
5353
};
5454
}
5555

5656
function between(b, a, c) {
57-
return (jsnums.lessThanOrEqual(a, b, RUNTIME.NumberErrbacks) && jsnums.lessThanOrEqual(b, c, RUNTIME.NumberErrbacks)) ||
58-
(jsnums.lessThanOrEqual(c, b, RUNTIME.NumberErrbacks) && jsnums.lessThanOrEqual(b, a, RUNTIME.NumberErrbacks));
57+
return (jsnums.lessThanOrEqual(a, b) && jsnums.lessThanOrEqual(b, c)) ||
58+
(jsnums.lessThanOrEqual(c, b) && jsnums.lessThanOrEqual(b, a));
5959
}
6060

6161
function numMin(a, b) { /* ignore the rest */

0 commit comments

Comments
 (0)