more jslinting
This commit is contained in:
parent
97e1ed7e38
commit
5c5ef8b518
|
@ -1,11 +1,14 @@
|
||||||
|
/*jslint browser: false, unparam: true, vars: true, white: true, plusplus: true, maxerr: 50, indent: 4 */
|
||||||
|
|
||||||
// Arity structure
|
// Arity structure
|
||||||
(function(baselib) {
|
(function(baselib) {
|
||||||
|
'use strict';
|
||||||
var exports = {};
|
var exports = {};
|
||||||
baselib.arity = exports;
|
baselib.arity = exports;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var ArityAtLeast = plt.baselib.structs.makeStructureType(
|
var ArityAtLeast = baselib.structs.makeStructureType(
|
||||||
'arity-at-least', false, 1, 0, false, false);
|
'arity-at-least', false, 1, 0, false, false);
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,7 +21,7 @@
|
||||||
var arityAtLeastValue = function(x) {
|
var arityAtLeastValue = function(x) {
|
||||||
var val = ArityAtLeast.accessor(x, 0);
|
var val = ArityAtLeast.accessor(x, 0);
|
||||||
return val;
|
return val;
|
||||||
}
|
};
|
||||||
|
|
||||||
|
|
||||||
ArityAtLeast.type.prototype.toString = function() {
|
ArityAtLeast.type.prototype.toString = function() {
|
||||||
|
@ -35,7 +38,7 @@
|
||||||
} else if (isArityAtLeast(arity)) {
|
} else if (isArityAtLeast(arity)) {
|
||||||
return n >= arityAtLeastValue(arity);
|
return n >= arityAtLeastValue(arity);
|
||||||
} else {
|
} else {
|
||||||
while (arity !== plt.baselib.lists.EMPTY) {
|
while (arity !== baselib.lists.EMPTY) {
|
||||||
if (typeof(arity.first) === 'number') {
|
if (typeof(arity.first) === 'number') {
|
||||||
if (arity.first === n) { return true; }
|
if (arity.first === n) { return true; }
|
||||||
} else if (isArityAtLeast(arity)) {
|
} else if (isArityAtLeast(arity)) {
|
||||||
|
@ -45,7 +48,7 @@
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -59,4 +62,4 @@
|
||||||
exports.isArityMatching = isArityMatching;
|
exports.isArityMatching = isArityMatching;
|
||||||
exports.arityAtLeastValue = arityAtLeastValue;
|
exports.arityAtLeastValue = arityAtLeastValue;
|
||||||
|
|
||||||
})(this['plt'].baselib);
|
}(this.plt.baselib));
|
|
@ -1,6 +1,10 @@
|
||||||
|
/*jslint browser: true, unparam: true, vars: true, white: true, plusplus: true, maxerr: 50, indent: 4 */
|
||||||
|
|
||||||
|
|
||||||
// Exceptions
|
// Exceptions
|
||||||
|
|
||||||
(function(baselib) {
|
(function(baselib) {
|
||||||
|
'use strict';
|
||||||
var exports = {};
|
var exports = {};
|
||||||
baselib.boxes = exports;
|
baselib.boxes = exports;
|
||||||
|
|
||||||
|
@ -25,30 +29,30 @@
|
||||||
|
|
||||||
Box.prototype.toString = function(cache) {
|
Box.prototype.toString = function(cache) {
|
||||||
cache.put(this, true);
|
cache.put(this, true);
|
||||||
return "#&" + plt.baselib.format.toWrittenString(this.val, cache);
|
return "#&" + baselib.format.toWrittenString(this.val, cache);
|
||||||
};
|
};
|
||||||
|
|
||||||
Box.prototype.toWrittenString = function(cache) {
|
Box.prototype.toWrittenString = function(cache) {
|
||||||
cache.put(this, true);
|
cache.put(this, true);
|
||||||
return "#&" + plt.baselib.format.toWrittenString(this.val, cache);
|
return "#&" + baselib.format.toWrittenString(this.val, cache);
|
||||||
};
|
};
|
||||||
|
|
||||||
Box.prototype.toDisplayedString = function(cache) {
|
Box.prototype.toDisplayedString = function(cache) {
|
||||||
cache.put(this, true);
|
cache.put(this, true);
|
||||||
return "#&" + plt.baselib.format.toDisplayedString(this.val, cache);
|
return "#&" + baselib.format.toDisplayedString(this.val, cache);
|
||||||
};
|
};
|
||||||
|
|
||||||
Box.prototype.toDomNode = function(cache) {
|
Box.prototype.toDomNode = function(cache) {
|
||||||
cache.put(this, true);
|
cache.put(this, true);
|
||||||
var parent = document.createElement("span");
|
var parent = document.createElement("span");
|
||||||
parent.appendChild(document.createTextNode('#&'));
|
parent.appendChild(document.createTextNode('#&'));
|
||||||
parent.appendChild(plt.baselib.format.toDomNode(this.val, cache));
|
parent.appendChild(baselib.format.toDomNode(this.val, cache));
|
||||||
return parent;
|
return parent;
|
||||||
};
|
};
|
||||||
|
|
||||||
Box.prototype.equals = function(other, aUnionFind) {
|
Box.prototype.equals = function(other, aUnionFind) {
|
||||||
return ((other instanceof Box) &&
|
return ((other instanceof Box) &&
|
||||||
plt.baselib.equality.equals(this.val, other.val, aUnionFind));
|
baselib.equality.equals(this.val, other.val, aUnionFind));
|
||||||
};
|
};
|
||||||
|
|
||||||
var makeBox = function(x) {
|
var makeBox = function(x) {
|
||||||
|
@ -83,4 +87,4 @@
|
||||||
exports.makeImmutableBox = makeImmutableBox;
|
exports.makeImmutableBox = makeImmutableBox;
|
||||||
|
|
||||||
|
|
||||||
})(this['plt'].baselib);
|
}(this.plt.baselib));
|
|
@ -1,5 +1,9 @@
|
||||||
// Arity structure
|
/*jslint unparam: true, vars: true, white: true, plusplus: true, maxerr: 50, indent: 4 */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(function(baselib) {
|
(function(baselib) {
|
||||||
|
'use strict';
|
||||||
var exports = {};
|
var exports = {};
|
||||||
baselib.bytes = exports;
|
baselib.bytes = exports;
|
||||||
|
|
||||||
|
@ -30,7 +34,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
Bytes.prototype.subbytes = function(start, end) {
|
Bytes.prototype.subbytes = function(start, end) {
|
||||||
if (end == null || end == undefined) {
|
if (end === null || end === undefined) {
|
||||||
end = this.bytes.length;
|
end = this.bytes.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,23 +46,25 @@
|
||||||
if (! (other instanceof Bytes)) {
|
if (! (other instanceof Bytes)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (this.bytes.length != other.bytes.length) {
|
if (this.bytes.length !== other.bytes.length) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var A = this.bytes;
|
var A = this.bytes;
|
||||||
var B = other.bytes;
|
var B = other.bytes;
|
||||||
var n = this.bytes.length;
|
var n = this.bytes.length;
|
||||||
for (var i = 0; i < n; i++) {
|
var i;
|
||||||
if (A[i] !== B[i])
|
for (i = 0; i < n; i++) {
|
||||||
|
if (A[i] !== B[i]) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
Bytes.prototype.toString = function(cache) {
|
Bytes.prototype.toString = function(cache) {
|
||||||
var ret = '';
|
var ret = '', i;
|
||||||
for (var i = 0; i < this.bytes.length; i++) {
|
for (i = 0; i < this.bytes.length; i++) {
|
||||||
ret += String.fromCharCode(this.bytes[i]);
|
ret += String.fromCharCode(this.bytes[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,15 +73,6 @@
|
||||||
|
|
||||||
Bytes.prototype.toDisplayedString = Bytes.prototype.toString;
|
Bytes.prototype.toDisplayedString = Bytes.prototype.toString;
|
||||||
|
|
||||||
Bytes.prototype.toWrittenString = function() {
|
|
||||||
var ret = ['#"'];
|
|
||||||
for (var i = 0; i < this.bytes.length; i++) {
|
|
||||||
ret.push( escapeByte(this.bytes[i]) );
|
|
||||||
}
|
|
||||||
ret.push('"');
|
|
||||||
return ret.join('');
|
|
||||||
};
|
|
||||||
|
|
||||||
var escapeByte = function(aByte) {
|
var escapeByte = function(aByte) {
|
||||||
var ret = [];
|
var ret = [];
|
||||||
var returnVal;
|
var returnVal;
|
||||||
|
@ -100,8 +97,18 @@
|
||||||
return returnVal;
|
return returnVal;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Bytes.prototype.toWrittenString = function() {
|
||||||
|
var ret = ['#"'], i;
|
||||||
|
for (i = 0; i < this.bytes.length; i++) {
|
||||||
|
ret.push(escapeByte(this.bytes[i]));
|
||||||
|
}
|
||||||
|
ret.push('"');
|
||||||
|
return ret.join('');
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
exports.Bytes = Bytes;
|
exports.Bytes = Bytes;
|
||||||
|
|
||||||
})(this['plt'].baselib);
|
}(this.plt.baselib));
|
|
@ -1,19 +1,45 @@
|
||||||
|
/*jslint vars: true, white: true, plusplus: true, maxerr: 50, indent: 4 */
|
||||||
|
|
||||||
|
|
||||||
// Helper functions for argument checking.
|
// Helper functions for argument checking.
|
||||||
|
|
||||||
(function(baselib) {
|
(function (baselib) {
|
||||||
'use strict';
|
'use strict';
|
||||||
var exports = {};
|
var exports = {};
|
||||||
baselib.check = exports;
|
baselib.check = exports;
|
||||||
|
|
||||||
var EMPTY = plt.baselib.lists.EMPTY;
|
var EMPTY = baselib.lists.EMPTY;
|
||||||
var isPair = plt.baselib.lists.isPair;
|
var isPair = baselib.lists.isPair;
|
||||||
var makeLowLevelEqHash = plt.baselib.hashes.makeLowLevelEqHash;
|
var makeLowLevelEqHash = baselib.hashes.makeLowLevelEqHash;
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
var makeCheckArgumentType = function(predicate, predicateName) {
|
// testArgument: (X -> boolean) X number string string -> boolean
|
||||||
return function(MACHINE, callerName, position) {
|
// Produces true if val is true, and otherwise raises an error.
|
||||||
|
var testArgument = function (MACHINE,
|
||||||
|
expectedTypeName,
|
||||||
|
predicate,
|
||||||
|
val,
|
||||||
|
index,
|
||||||
|
callerName) {
|
||||||
|
if (predicate(val)) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
if (typeof(expectedTypeName) === 'function') {
|
||||||
|
expectedTypeName = expectedTypeName();
|
||||||
|
}
|
||||||
|
baselib.exceptions.raiseArgumentTypeError(MACHINE,
|
||||||
|
callerName,
|
||||||
|
expectedTypeName,
|
||||||
|
index,
|
||||||
|
val);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var makeCheckArgumentType = function (predicate, predicateName) {
|
||||||
|
return function (MACHINE, callerName, position) {
|
||||||
testArgument(
|
testArgument(
|
||||||
MACHINE,
|
MACHINE,
|
||||||
predicateName,
|
predicateName,
|
||||||
|
@ -22,35 +48,35 @@
|
||||||
position,
|
position,
|
||||||
callerName);
|
callerName);
|
||||||
return MACHINE.env[MACHINE.env.length - 1 - position];
|
return MACHINE.env[MACHINE.env.length - 1 - position];
|
||||||
}
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
var makeCheckParameterizedArgumentType = function(parameterizedPredicate,
|
var makeCheckParameterizedArgumentType = function (parameterizedPredicate,
|
||||||
parameterizedPredicateName) {
|
parameterizedPredicateName) {
|
||||||
return function(MACHINE, callerName, position) {
|
return function (MACHINE, callerName, position) {
|
||||||
var args = [];
|
var args = [], i;
|
||||||
for (var i = 3; i < arguments.length; i++) {
|
for (i = 3; i < arguments.length; i++) {
|
||||||
args.push(arguments[i]);
|
args.push(arguments[i]);
|
||||||
}
|
}
|
||||||
testArgument(
|
testArgument(
|
||||||
MACHINE,
|
MACHINE,
|
||||||
function() { parameterizedPredicateName.apply(null, args) },
|
function () { parameterizedPredicateName.apply(null, args); },
|
||||||
function(x) {
|
function (x) {
|
||||||
return parameterizedPredicate.apply(null, [x].concat(args));
|
return parameterizedPredicate.apply(null, [x].concat(args));
|
||||||
},
|
},
|
||||||
MACHINE.env[MACHINE.env.length - 1 - position],
|
MACHINE.env[MACHINE.env.length - 1 - position],
|
||||||
position,
|
position,
|
||||||
callerName);
|
callerName);
|
||||||
return MACHINE.env[MACHINE.env.length - 1 - position];
|
return MACHINE.env[MACHINE.env.length - 1 - position];
|
||||||
}
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var makeCheckListofArgumentType = function(predicate, predicateName) {
|
var makeCheckListofArgumentType = function (predicate, predicateName) {
|
||||||
var listPredicate = function(x) {
|
var listPredicate = function (x) {
|
||||||
var seen = makeLowLevelEqHash();
|
var seen = makeLowLevelEqHash();
|
||||||
while (true) {
|
while (true) {
|
||||||
if (x === EMPTY){
|
if (x === EMPTY){
|
||||||
|
@ -63,7 +89,7 @@
|
||||||
|
|
||||||
if(seen.containsKey(x)) {
|
if(seen.containsKey(x)) {
|
||||||
// raise an error? we've got a cycle!
|
// raise an error? we've got a cycle!
|
||||||
return false
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! predicate(x.first)) {
|
if (! predicate(x.first)) {
|
||||||
|
@ -74,7 +100,7 @@
|
||||||
x = x.rest;
|
x = x.rest;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return function(MACHINE, callerName, position) {
|
return function (MACHINE, callerName, position) {
|
||||||
testArgument(
|
testArgument(
|
||||||
MACHINE,
|
MACHINE,
|
||||||
'list of ' + predicateName,
|
'list of ' + predicateName,
|
||||||
|
@ -83,7 +109,7 @@
|
||||||
position,
|
position,
|
||||||
callerName);
|
callerName);
|
||||||
return MACHINE.env[MACHINE.env.length - 1 - position];
|
return MACHINE.env[MACHINE.env.length - 1 - position];
|
||||||
}
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -91,31 +117,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// testArgument: (X -> boolean) X number string string -> boolean
|
|
||||||
// Produces true if val is true, and otherwise raises an error.
|
|
||||||
var testArgument = function(MACHINE,
|
|
||||||
expectedTypeName,
|
|
||||||
predicate,
|
|
||||||
val,
|
|
||||||
index,
|
|
||||||
callerName) {
|
|
||||||
if (predicate(val)) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
if (typeof(expectedTypeName) === 'function') {
|
|
||||||
expectedTypeName = expectedTypeName();
|
|
||||||
}
|
|
||||||
plt.baselib.exceptions.raiseArgumentTypeError(MACHINE,
|
|
||||||
callerName,
|
|
||||||
expectedTypeName,
|
|
||||||
index,
|
|
||||||
val);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var testArity = function(callerName, observed, minimum, maximum) {
|
var testArity = function (MACHINE, callerName, observed, minimum, maximum) {
|
||||||
if (observed < minimum || observed > maximum) {
|
if (observed < minimum || observed > maximum) {
|
||||||
plt.baselib.exceptions.raise(
|
baselib.exceptions.raise(
|
||||||
MACHINE, new Error(callerName + ": expected at least " + minimum
|
MACHINE, new Error(callerName + ": expected at least " + minimum
|
||||||
+ " arguments "
|
+ " arguments "
|
||||||
+ " but received " + observed));
|
+ " but received " + observed));
|
||||||
|
@ -127,99 +132,96 @@
|
||||||
|
|
||||||
|
|
||||||
var checkOutputPort = makeCheckArgumentType(
|
var checkOutputPort = makeCheckArgumentType(
|
||||||
plt.baselib.ports.isOutputPort,
|
baselib.ports.isOutputPort,
|
||||||
'output port');
|
'output port');
|
||||||
|
|
||||||
var checkSymbol = makeCheckArgumentType(
|
var checkSymbol = makeCheckArgumentType(
|
||||||
plt.baselib.symbols.isSymbol,
|
baselib.symbols.isSymbol,
|
||||||
'symbol');
|
'symbol');
|
||||||
|
|
||||||
var checkString = makeCheckArgumentType(
|
var checkString = makeCheckArgumentType(
|
||||||
plt.baselib.strings.isString,
|
baselib.strings.isString,
|
||||||
'string');
|
'string');
|
||||||
|
|
||||||
var checkMutableString = makeCheckArgumentType(
|
var checkMutableString = makeCheckArgumentType(
|
||||||
plt.baselib.strings.isMutableString,
|
baselib.strings.isMutableString,
|
||||||
'mutable string');
|
'mutable string');
|
||||||
|
|
||||||
var checkChar = makeCheckArgumentType(
|
var checkChar = makeCheckArgumentType(
|
||||||
plt.baselib.chars.isChar,
|
baselib.chars.isChar,
|
||||||
'character');
|
'character');
|
||||||
|
|
||||||
var checkProcedure = makeCheckArgumentType(
|
var checkProcedure = makeCheckArgumentType(
|
||||||
plt.baselib.functions.isProcedure,
|
baselib.functions.isProcedure,
|
||||||
'procedure');
|
'procedure');
|
||||||
|
|
||||||
var checkNumber = makeCheckArgumentType(
|
var checkNumber = makeCheckArgumentType(
|
||||||
plt.baselib.numbers.isNumber,
|
baselib.numbers.isNumber,
|
||||||
'number');
|
'number');
|
||||||
|
|
||||||
var checkReal = makeCheckArgumentType(
|
var checkReal = makeCheckArgumentType(
|
||||||
plt.baselib.numbers.isReal,
|
baselib.numbers.isReal,
|
||||||
'real');
|
'real');
|
||||||
|
|
||||||
var checkNatural = makeCheckArgumentType(
|
var checkNatural = makeCheckArgumentType(
|
||||||
plt.baselib.numbers.isNatural,
|
baselib.numbers.isNatural,
|
||||||
'natural');
|
'natural');
|
||||||
|
|
||||||
var checkByte = makeCheckArgumentType(
|
var checkByte = makeCheckArgumentType(
|
||||||
function(x) { return (typeof(x) === 'number' && 0 <= x && x < 256) },
|
baselib.numbers.isByte,
|
||||||
'byte');
|
'byte');
|
||||||
|
|
||||||
var checkNaturalInRange = makeCheckParameterizedArgumentType(
|
var checkNaturalInRange = makeCheckParameterizedArgumentType(
|
||||||
function(x, a, b) {
|
function (x, a, b) {
|
||||||
if (! plt.baselib.numbers.isNatural(x)) { return false; }
|
if (! baselib.numbers.isNatural(x)) { return false; }
|
||||||
return (plt.baselib.numbers.lessThanOrEqual(a, x) &&
|
return (baselib.numbers.lessThanOrEqual(a, x) &&
|
||||||
plt.baselib.numbers.lessThan(x, b));
|
baselib.numbers.lessThan(x, b));
|
||||||
},
|
},
|
||||||
function(a, b) {
|
function (a, b) {
|
||||||
return plt.baselib.format.format('natural between ~a and ~a', [a, b]);
|
return baselib.format.format('natural between ~a and ~a', [a, b]);
|
||||||
});
|
});
|
||||||
|
|
||||||
var checkInteger = makeCheckArgumentType(
|
var checkInteger = makeCheckArgumentType(
|
||||||
plt.baselib.numbers.isInteger,
|
baselib.numbers.isInteger,
|
||||||
'integer');
|
'integer');
|
||||||
|
|
||||||
var checkRational = makeCheckArgumentType(
|
var checkRational = makeCheckArgumentType(
|
||||||
plt.baselib.numbers.isRational,
|
baselib.numbers.isRational,
|
||||||
'rational');
|
'rational');
|
||||||
|
|
||||||
var checkNonNegativeReal = makeCheckArgumentType(
|
var checkNonNegativeReal = makeCheckArgumentType(
|
||||||
plt.baselib.numbers.isNonNegativeReal,
|
baselib.numbers.isNonNegativeReal,
|
||||||
'non-negative real');
|
'non-negative real');
|
||||||
|
|
||||||
var checkPair = makeCheckArgumentType(
|
var checkPair = makeCheckArgumentType(
|
||||||
plt.baselib.lists.isPair,
|
baselib.lists.isPair,
|
||||||
'pair');
|
'pair');
|
||||||
|
|
||||||
var checkList = makeCheckArgumentType(
|
var checkList = makeCheckArgumentType(
|
||||||
plt.baselib.lists.isList,
|
baselib.lists.isList,
|
||||||
'list');
|
'list');
|
||||||
|
|
||||||
var checkVector = makeCheckArgumentType(
|
var checkVector = makeCheckArgumentType(
|
||||||
plt.baselib.vectors.isVector,
|
baselib.vectors.isVector,
|
||||||
'vector');
|
'vector');
|
||||||
|
|
||||||
var checkBoolean = makeCheckArgumentType(
|
var checkBoolean = makeCheckArgumentType(
|
||||||
function(x) { return x === true || x === false; },
|
function (x) { return x === true || x === false; },
|
||||||
'boolean');
|
'boolean');
|
||||||
|
|
||||||
var checkBox = makeCheckArgumentType(
|
var checkBox = makeCheckArgumentType(
|
||||||
plt.baselib.boxes.isBox,
|
baselib.boxes.isBox,
|
||||||
'box');
|
'box');
|
||||||
|
|
||||||
var checkMutableBox = makeCheckArgumentType(
|
var checkMutableBox = makeCheckArgumentType(
|
||||||
plt.baselib.boxes.isMutableBox,
|
baselib.boxes.isMutableBox,
|
||||||
'mutable box');
|
'mutable box');
|
||||||
|
|
||||||
var checkInspector = makeCheckArgumentType(
|
var checkInspector = makeCheckArgumentType(
|
||||||
plt.baselib.inspectors.isInspector,
|
baselib.inspectors.isInspector,
|
||||||
'inspector');
|
'inspector');
|
||||||
|
|
||||||
|
|
||||||
var checkByte = makeCheckArgumentType(
|
|
||||||
plt.baselib.numbers.isByte,
|
|
||||||
'byte');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user