sku-pg
Version:
Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!
75 lines (59 loc) • 2.28 kB
JavaScript
var $builtinmodule = function (name) {
var i;
var sys = {};
var args = [];
var argv = Sk.getSysArgv();
for (i = 0; i < argv.length; ++i) {
args.push(new Sk.builtin.str(argv[i]));
}
sys.argv = new Sk.builtins["list"](args);
sys.copyright = Sk.builtin["str"]("Copyright 2009-2010 Scott Graham.\nAll Rights Reserved.\n");
sys.maxint = new Sk.builtin.int_(Math.pow(2,53)-1);
/* The largest positive integer supported by the platform’s Py_ssize_t type,
* and thus the maximum size lists, strings, dicts, and many other containers can have.
*
* In skulpt this is the same as maxint, due to the underlying implementation in javascript
*/
sys.maxsize = new Sk.builtin.int_(Math.pow(2,53)-1);
sys.modules = Sk.sysmodules;
sys.path = Sk.realsyspath;
sys.getExecutionLimit = new Sk.builtin.func(function () {
if (Sk.execLimit === null) {
return Sk.builtin.none.none$;
}
return new Sk.builtin.int_(Sk.execLimit);
});
sys.setExecutionLimit = new Sk.builtin.func(function (t) {
if (Sk.execLimit === null) {
throw new Sk.builtin.NotImplementedError("Execution limiting is not enabled");
}
if (t !== undefined) {
Sk.execLimit = Sk.builtin.asnum$(t);
}
});
sys.resetTimeout = new Sk.builtin.func(function () {
Sk.execStart = new Date();
});
sys.getYieldLimit = new Sk.builtin.func(function () {
if (Sk.yieldLimit === null) {
return Sk.builtin.none.none$;
}
return new Sk.builtin.int_(Sk.yieldLimit);
});
sys.setYieldLimit = new Sk.builtin.func(function (t) {
if (Sk.yieldLimit === null) {
throw new Sk.builtin.NotImplementedError("Yielding is not enabled");
}
if (t !== undefined) {
Sk.yieldLimit = Sk.builtin.asnum$(t);
}
});
sys.debug = new Sk.builtin.func(function () {
return Sk.builtin.none.none$;
});
sys.__stdout__ = new Sk.builtin.file(new Sk.builtin.str("/dev/stdout"), "w");
sys.__stdin__ = new Sk.builtin.file(new Sk.builtin.str("/dev/stdin"), "r");
sys.stdout = sys.__stdout__;
sys.stdin = sys.__stdin__;
return sys;
};