diff --git a/lib/core.ts b/lib/core.ts index c1d51a2..562ac4b 100644 --- a/lib/core.ts +++ b/lib/core.ts @@ -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: (handle: (...args: [ ...T, ...any[] ]) => void, delay?: number, ...args: T) => number; declare var setInterval: (handle: (...args: [ ...T, ...any[] ]) => void, delay?: number, ...args: T) => number; diff --git a/lib/values/number.ts b/lib/values/number.ts index 5a21c13..6b1dda6 100644 --- a/lib/values/number.ts +++ b/lib/values/number.ts @@ -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; \ No newline at end of file +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 }); diff --git a/src/me/topchetoeu/jscript/Main.java b/src/me/topchetoeu/jscript/Main.java index aa92604..34a2426 100644 --- a/src/me/topchetoeu/jscript/Main.java +++ b/src/me/topchetoeu/jscript/Main.java @@ -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];