fix: properly initialize Infinity and NaN

This commit is contained in:
TopchetoEU 2023-08-26 11:13:23 +03:00
parent 7b19f7b399
commit 50739de70c
No known key found for this signature in database
GPG Key ID: 24E57B2E9C61AD19
3 changed files with 9 additions and 7 deletions

View File

@ -74,8 +74,6 @@ interface MathObject {
//@ts-ignore
declare const arguments: IArguments;
declare const Math: MathObject;
const NaN = 0 / 0;
const Infinity = 1 / 0;
declare var setTimeout: <T extends any[]>(handle: (...args: [ ...T, ...any[] ]) => void, delay?: number, ...args: T) => number;
declare var setInterval: <T extends any[]>(handle: (...args: [ ...T, ...any[] ]) => void, delay?: number, ...args: T) => number;

View File

@ -12,8 +12,10 @@ interface NumberConstructor {
}
declare var Number: NumberConstructor;
declare const parseInt: typeof Number.parseInt;
declare const parseFloat: typeof Number.parseFloat;
declare var parseInt: typeof Number.parseInt;
declare var parseFloat: typeof Number.parseFloat;
declare var NaN: number;
declare var Infinity: number;
gt.Number = function(this: Number | undefined, arg: any) {
var val;
@ -42,5 +44,7 @@ setProps(Number, {
parseFloat(val) { return internals.parseFloat(val); },
});
(gt as any).parseInt = Number.parseInt;
(gt as any).parseFloat = Number.parseFloat;
Object.defineProperty(gt, 'parseInt', { value: Number.parseInt, writable: false });
Object.defineProperty(gt, 'parseFloat', { value: Number.parseFloat, writable: false });
Object.defineProperty(gt, 'NaN', { value: 0 / 0, writable: false });
Object.defineProperty(gt, 'Infinity', { value: 1 / 0, writable: false });

View File

@ -54,7 +54,7 @@ public class Main {
public static void main(String args[]) {
var in = new BufferedReader(new InputStreamReader(System.in));
engine = new PolyfillEngine(new File("."));
engine = new TypescriptEngine(new File("."));
var scope = engine.global().globalChild();
var exited = new boolean[1];