more jslinting

This commit is contained in:
Danny Yoo 2011-08-08 00:28:35 -04:00
parent 97e1ed7e38
commit 5c5ef8b518
4 changed files with 143 additions and 127 deletions

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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');