feat: implement bool polyfills in java

This commit is contained in:
2023-09-24 13:49:37 +03:00
parent f2cd50726d
commit 86b206051d
8 changed files with 35 additions and 24 deletions

View File

@@ -9,6 +9,7 @@ interface Internals {
function: FunctionConstructor;
array: ArrayConstructor;
promise: PromiseConstructor;
bool: BooleanConstructor;
markSpecial(...funcs: Function[]): void;
getEnv(func: Function): Environment | undefined;
@@ -46,21 +47,22 @@ try {
var Function = env.global.Function = internals.function;
var Array = env.global.Array = internals.array;
var Promise = env.global.Promise = internals.promise;
var Boolean = env.global.Boolean = internals.bool;
env.setProto('object', Object.prototype);
env.setProto('function', Function.prototype);
env.setProto('array', Array.prototype);
env.setProto('bool', Boolean.prototype);
(Object.prototype as any).__proto__ = null;
internals.getEnv(run)?.setProto('array', Array.prototype);
globalThis.log = (...args) => internals.apply(internals.log, internals, args);
run('values/symbol');
run('values/errors');
run('values/string');
run('values/number');
run('values/boolean');
run('map');
run('set');
run('regex');

1
lib/lib.d.ts vendored
View File

@@ -244,6 +244,7 @@ interface ArrayConstructor {
}
interface Boolean {
toString(): string;
valueOf(): boolean;
}
interface BooleanConstructor {

View File

@@ -7,7 +7,6 @@
"values/errors.ts",
"values/string.ts",
"values/number.ts",
"values/boolean.ts",
"map.ts",
"set.ts",
"regex.ts",

View File

@@ -1,12 +0,0 @@
define("values/boolean", () => {
var Boolean = env.global.Boolean = function (this: Boolean | undefined, arg) {
var val;
if (arguments.length === 0) val = false;
else val = !!arg;
if (this === undefined || this === null) return val;
else (this as any).value = val;
} as BooleanConstructor;
env.setProto('bool', Boolean.prototype);
setConstr(Boolean.prototype, Boolean);
});