inlining some func

This commit is contained in:
minjaesong
2020-06-17 20:38:38 +09:00
parent 98ba742d03
commit 0bd920a5a5

View File

@@ -151,78 +151,57 @@ function resolve(variable) {
} }
function oneArgNonNull(lnum, args, predicate) { function oneArgNonNull(lnum, args, predicate) {
if (args.length != 1) throw lang.syntaxfehler(lnum, args.length + " arguments were given"); if (args.length != 1) throw lang.syntaxfehler(lnum, args.length + " arguments were given");
var resolvedargs = args.map(function(it) { return resolve(it); }); var resolvedargs0 = resolve(args[0]);
resolvedargs.forEach(function(v) { if (resolvedargs0 === undefined) throw lang.refError(lnum, resolvedargs0.value);
if (v === undefined) throw lang.refError(lnum, v.value); return predicate(resolvedargs0);
});
var argum = resolvedargs.map(function(it) {
if (it === undefined) throw lang.refError(lnum, it.value);
return it;
});
return predicate(argum[0]);
} }
function oneArgNonNullNumeric(lnum, args, predicate) { function oneArgNonNullNumeric(lnum, args, predicate) {
if (args.length != 1) throw lang.syntaxfehler(lnum, args.length + " arguments were given"); if (args.length != 1) throw lang.syntaxfehler(lnum, args.length + " arguments were given");
var resolvedargs = args.map(function(it) { return resolve(it); }); var resolvedargs0 = resolve(args[0]);
resolvedargs.forEach(function(v) { if (resolvedargs0 === undefined) throw lang.refError(lnum, resolvedargs0.value);
if (v === undefined) throw lang.refError(lnum, v.value); if (isNaN(resolvedargs0)) throw lang.illegalType(lnum, resolvedargs0.value);
if (isNaN(v)) throw lang.illegalType(lnum, v.value); return predicate(resolvedargs0);
});
var argum = resolvedargs.map(function(it) {
if (it === undefined) throw lang.refError(lnum, it.value);
return it;
});
return predicate(argum[0]);
} }
function twoArgNonNull(lnum, args, predicate) { function twoArgNonNull(lnum, args, predicate) {
if (args.length != 2) throw lang.syntaxfehler(lnum, args.length + " arguments were given"); if (args.length != 2) throw lang.syntaxfehler(lnum, args.length + " arguments were given");
var resolvedargs = args.map(function(it) { return resolve(it); }); var resolvedargs0 = resolve(args[0]);
resolvedargs.forEach(function(v) { if (resolvedargs0 === undefined) throw lang.refError(lnum, resolvedargs0.value);
if (v === undefined) throw lang.refError(lnum, v.value); var resolvedargs1 = resolve(args[1]);
}); if (resolvedargs1 === undefined) throw lang.refError(lnum, resolvedargs1.value);
var argum = resolvedargs.map(function(it) { return predicate(resolvedargs0, resolvedargs1);
if (it === undefined) throw lang.refError(lnum, it.value);
return it;
});
return predicate(argum[0], argum[1]);
} }
function twoArgNonNullNumeric(lnum, args, predicate) { function twoArgNonNullNumeric(lnum, args, predicate) {
if (args.length != 2) throw lang.syntaxfehler(lnum, args.length + " arguments were given"); if (args.length != 2) throw lang.syntaxfehler(lnum, args.length + " arguments were given");
var resolvedargs = args.map(function(it) { return resolve(it); }); var resolvedargs0 = resolve(args[0]);
resolvedargs.forEach(function(v) { if (resolvedargs0 === undefined) throw lang.refError(lnum, resolvedargs0.value);
if (v === undefined) throw lang.refError(lnum, v.value); if (isNaN(resolvedargs0)) throw lang.illegalType(lnum, resolvedargs0.value);
if (isNaN(v)) throw lang.illegalType(lnum, v.value); var resolvedargs1 = resolve(args[1]);
}); if (resolvedargs1 === undefined) throw lang.refError(lnum, resolvedargs1.value);
var argum = resolvedargs.map(function(it) { if (isNaN(resolvedargs1)) throw lang.illegalType(lnum, resolvedargs1.value);
if (it === undefined) throw lang.refError(lnum, it.value); return predicate(resolvedargs0, resolvedargs1);
return it;
});
return predicate(argum[0], argum[1]);
} }
function threeArgNonNull(lnum, args, predicate) { function threeArgNonNull(lnum, args, predicate) {
if (args.length != 3) throw lang.syntaxfehler(lnum, args.length + " arguments were given"); if (args.length != 3) throw lang.syntaxfehler(lnum, args.length + " arguments were given");
var resolvedargs = args.map(function(it) { return resolve(it); }); var resolvedargs0 = resolve(args[0]);
resolvedargs.forEach(function(v) { if (resolvedargs0 === undefined) throw lang.refError(lnum, resolvedargs0.value);
if (v === undefined) throw lang.refError(lnum, v.value); var resolvedargs1 = resolve(args[1]);
}); if (resolvedargs1 === undefined) throw lang.refError(lnum, resolvedargs1.value);
var argum = resolvedargs.map(function(it) { var resolvedargs2 = resolve(args[2]);
if (it === undefined) throw lang.refError(lnum, it.value); if (resolvedargs2 === undefined) throw lang.refError(lnum, resolvedargs2.value);
return it; return predicate(resolvedargs0, resolvedargs1, resolvedargs2);
});
return predicate(argum[0], argum[1], argum[2]);
} }
function threeArgNonNullNumeric(lnum, args, predicate) { function threeArgNonNullNumeric(lnum, args, predicate) {
if (args.length != 3) throw lang.syntaxfehler(lnum, args.length + " arguments were given"); if (args.length != 3) throw lang.syntaxfehler(lnum, args.length + " arguments were given");
var resolvedargs = args.map(function(it) { return resolve(it); }); var resolvedargs0 = resolve(args[0]);
resolvedargs.forEach(function(v) { if (resolvedargs0 === undefined) throw lang.refError(lnum, resolvedargs0.value);
if (v === undefined) throw lang.refError(lnum, v.value); if (isNaN(resolvedargs0)) throw lang.illegalType(lnum, resolvedargs0.value);
if (isNaN(v)) throw lang.illegalType(lnum, v.value); var resolvedargs1 = resolve(args[1]);
}); if (resolvedargs1 === undefined) throw lang.refError(lnum, resolvedargs1.value);
var argum = resolvedargs.map(function(it) { if (isNaN(resolvedargs1)) throw lang.illegalType(lnum, resolvedargs1.value);
if (it === undefined) throw lang.refError(lnum, it.value); var resolvedargs2 = resolve(args[2]);
return it; if (resolvedargs2 === undefined) throw lang.refError(lnum, resolvedargs2.value);
}); if (isNaN(resolvedargs2)) throw lang.illegalType(lnum, resolvedargs2.value);
return predicate(argum[0], argum[1], argum[2]); return predicate(resolvedargs0, resolvedargs1, resolvedargs2);
} }
var basicInterpreterStatus = {}; var basicInterpreterStatus = {};
basicInterpreterStatus.gosubStack = []; basicInterpreterStatus.gosubStack = [];