Fixed a few (spurious?) WebStorm inspection warnings, and added some band-aid code to netlib.js so that PDP-11 machines running in the Node environment can fetch all their resources, whether local or remote

This commit is contained in:
Jeff Parsons 2017-01-01 14:02:15 -08:00 • committed by Jeff Parsons
commit 138b2534e5
3 changed files with 26 additions and 16 deletions

View file

@ -327,7 +327,7 @@ class ComputerPDP11 extends Component {
switch(type) { switch(type) {
case Str.TYPES.NUMBER: case Str.TYPES.NUMBER:
value = +value; value = +value;
if (isNaN(value)) value = defaultValue || 0; if (isNaN(/** @type {number} */(value))) value = defaultValue || 0;
break; break;
case Str.TYPES.BOOLEAN: case Str.TYPES.BOOLEAN:
value = (value == "true"); value = (value == "true");
@ -413,6 +413,7 @@ class ComputerPDP11 extends Component {
} }
} }
if (DEBUG && this.messageEnabled()) this.printMessage("ComputerPDP11.wait(ready)"); if (DEBUG && this.messageEnabled()) this.printMessage("ComputerPDP11.wait(ready)");
//noinspection JSUnresolvedFunction
fn.call(this, parms); fn.call(this, parms);
} }

View file

@ -1595,6 +1595,7 @@ PDP11.opRTI = function(opCode)
PDP11.opRTS = function(opCode) PDP11.opRTS = function(opCode)
{ {
if (opCode & 0x08) { if (opCode & 0x08) {
//noinspection JSUnresolvedFunction
PDP11.opUndefined.call(this, opCode); PDP11.opUndefined.call(this, opCode);
return; return;
} }
@ -1739,6 +1740,7 @@ PDP11.opSOB = function(opCode)
PDP11.opSPL = function(opCode) PDP11.opSPL = function(opCode)
{ {
if (!(opCode & 0x08) || this.model < PDP11.MODEL_1145) { if (!(opCode & 0x08) || this.model < PDP11.MODEL_1145) {
//noinspection JSUnresolvedFunction
PDP11.opUndefined.call(this, opCode); PDP11.opUndefined.call(this, opCode);
return; return;
} }
@ -2311,6 +2313,7 @@ PDP11.op8Xnn_1140 = function(opCode)
PDP11.op8DXn_1140 = function(opCode) PDP11.op8DXn_1140 = function(opCode)
{ {
if (this.model < PDP11.MODEL_1145) { if (this.model < PDP11.MODEL_1145) {
//noinspection JSUnresolvedFunction
PDP11.opUndefined.call(this, opCode); PDP11.opUndefined.call(this, opCode);
return; return;
} }

View file

@ -135,10 +135,10 @@ class Net {
/** /**
* isRemote(sPath) * isRemote(sPath)
* *
* TODO: Add support for FTP? HTTPS? Anything else?
*
* @param {string} sPath * @param {string} sPath
* @return {boolean} true if sPath is a (supported) remote path, false if not * @return {boolean} true if sPath is a (supported) remote path, false if not
*
* TODO: Add support for FTP? HTTPS? Anything else?
*/ */
static isRemote(sPath) static isRemote(sPath)
{ {
@ -189,11 +189,11 @@ class Net {
/** /**
* getFile(sURL, sEncoding, done) * getFile(sURL, sEncoding, done)
* *
* TODO: Add support for FTP? HTTPS? Anything else?
*
* @param {string} sURL is the source file * @param {string} sURL is the source file
* @param {string|null} sEncoding is the encoding to assume, if any * @param {string|null} sEncoding is the encoding to assume, if any
* @param {function(Error,number,(string|Buffer))} done receives an Error, an HTTP status code, and a Buffer (if any) * @param {function(Error,number,(string|Buffer))} done receives an Error, an HTTP status code, and a Buffer (if any)
*
* TODO: Add support for FTP? HTTPS? Anything else?
*/ */
static getFile(sURL, sEncoding, done) static getFile(sURL, sEncoding, done)
{ {
@ -248,9 +248,9 @@ class Net {
* in such cases, the file content will likely just be an HTML error page. * in such cases, the file content will likely just be an HTML error page.
*/ */
if (res.statusCode < 400) { if (res.statusCode < 400) {
done(null, res.statusCode, sEncoding ? sFile : bufFile); done(null, res.statusCode, sEncoding? sFile : bufFile);
} else { } else {
done(new Error(sEncoding ? sFile : bufFile), res.statusCode, null); done(new Error(sEncoding? sFile : bufFile), res.statusCode, null);
} }
}).on('error', function(err) }).on('error', function(err)
{ {
@ -317,14 +317,20 @@ class Net {
{ {
var nErrorCode = -1, sResource = null, response = null; var nErrorCode = -1, sResource = null, response = null;
/*
* TODO: Revisit why we pass back sBaseName instead of the original sURL....
*/
var sBaseName = Str.getBaseName(sURL);
if (Net.isRemote(sURL)) { if (Net.isRemote(sURL)) {
console.log('Net.getResource("' + sURL + '"): unimplemented'); /*
if (done) done(sBaseName, null, -1); * TODO: This code is nothing more than a band-aid. It assumes the URL uses "http:"
* (hence the call to getFile(), which only supports HTTP GET operations), it assumes
* the requested data is UTF-8 string data (which is normally the case, because nearly
* all our requests are for JSON files), it doesn't deal with dataPost, it assumes
* that fAsync is true, and it performs very simplistic error code mapping.
*
* But, it gets the job done for what little we actually ask of it, when our machines
* are running in the Node environment.
*/
Net.getFile(sURL, "utf8", function(err, status, data) {
if (done) done(sURL, data, err? status : 0);
});
} else { } else {
if (!Net.sServerRoot) { if (!Net.sServerRoot) {
Net.sServerRoot = path.join(path.dirname(fs.realpathSync(__filename)), "../../../"); Net.sServerRoot = path.join(path.dirname(fs.realpathSync(__filename)), "../../../");
@ -340,7 +346,7 @@ class Net {
sResource = s; sResource = s;
nErrorCode = 0; nErrorCode = 0;
} }
if (done) done(sBaseName, sResource, nErrorCode); if (done) done(sURL, sResource, nErrorCode);
}); });
} else { } else {
try { try {
@ -352,7 +358,7 @@ class Net {
*/ */
console.log(err.message); console.log(err.message);
} }
if (done) done(sBaseName, sResource, nErrorCode); if (done) done(sURL, sResource, nErrorCode);
response = [sResource, nErrorCode]; response = [sResource, nErrorCode];
} }
} }