|
@@ -1,7 +1,7 @@
|
|
using System;
|
|
using System;
|
|
using Jint.Native.Object;
|
|
using Jint.Native.Object;
|
|
using Jint.Runtime;
|
|
using Jint.Runtime;
|
|
-using Jint.Runtime.Descriptors.Specialized;
|
|
|
|
|
|
+using Jint.Runtime.Interop;
|
|
|
|
|
|
namespace Jint.Native.Math
|
|
namespace Jint.Native.Math
|
|
{
|
|
{
|
|
@@ -25,37 +25,42 @@ namespace Jint.Native.Math
|
|
math.Extensible = true;
|
|
math.Extensible = true;
|
|
math.Prototype = engine.Object.Prototype;
|
|
math.Prototype = engine.Object.Prototype;
|
|
|
|
|
|
- math.DefineOwnProperty("abs", new ClrDataDescriptor<object, double>(engine, Abs), false);
|
|
|
|
- math.DefineOwnProperty("acos", new ClrDataDescriptor<object, double>(engine, Acos), false);
|
|
|
|
- math.DefineOwnProperty("asin", new ClrDataDescriptor<object, double>(engine, Asin), false);
|
|
|
|
- math.DefineOwnProperty("atan", new ClrDataDescriptor<object, double>(engine, Atan), false);
|
|
|
|
- math.DefineOwnProperty("atan2", new ClrDataDescriptor<object, double>(engine, Atan2), false);
|
|
|
|
- math.DefineOwnProperty("ceil", new ClrDataDescriptor<object, double>(engine, Ceil), false);
|
|
|
|
- math.DefineOwnProperty("cos", new ClrDataDescriptor<object, double>(engine, Cos), false);
|
|
|
|
- math.DefineOwnProperty("exp", new ClrDataDescriptor<object, double>(engine, Exp), false);
|
|
|
|
- math.DefineOwnProperty("floor", new ClrDataDescriptor<object, double>(engine, Floor), false);
|
|
|
|
- math.DefineOwnProperty("log", new ClrDataDescriptor<object, double>(engine, Log), false);
|
|
|
|
- math.DefineOwnProperty("max", new ClrDataDescriptor<object, double>(engine, Max), false);
|
|
|
|
- math.DefineOwnProperty("min", new ClrDataDescriptor<object, double>(engine, Min), false);
|
|
|
|
- math.DefineOwnProperty("pow", new ClrDataDescriptor<object, double>(engine, Pow), false);
|
|
|
|
- math.DefineOwnProperty("random", new ClrDataDescriptor<object, double>(engine, Random), false);
|
|
|
|
- math.DefineOwnProperty("round", new ClrDataDescriptor<object, double>(engine, Round), false);
|
|
|
|
- math.DefineOwnProperty("sin", new ClrDataDescriptor<object, double>(engine, Sin), false);
|
|
|
|
- math.DefineOwnProperty("sqrt", new ClrDataDescriptor<object, double>(engine, Sqrt), false);
|
|
|
|
- math.DefineOwnProperty("tan", new ClrDataDescriptor<object, double>(engine, Tan), false);
|
|
|
|
-
|
|
|
|
- math.FastAddProperty("E", System.Math.E, false, false, false);
|
|
|
|
- math.FastAddProperty("LN10", System.Math.Log(10), false, false, false);
|
|
|
|
- math.FastAddProperty("LN2", System.Math.Log(2), false, false, false);
|
|
|
|
- math.FastAddProperty("LOG2E", System.Math.Log(System.Math.E, 2), false, false, false);
|
|
|
|
- math.FastAddProperty("LOG10E", System.Math.Log(System.Math.E, 10), false, false, false);
|
|
|
|
- math.FastAddProperty("PI", System.Math.PI, false, false, false);
|
|
|
|
- math.FastAddProperty("SQRT1_2", System.Math.Sqrt(0.5), false, false, false);
|
|
|
|
- math.FastAddProperty("SQRT2", System.Math.Sqrt(2), false, false, false);
|
|
|
|
-
|
|
|
|
|
|
+
|
|
return math;
|
|
return math;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public void Configure()
|
|
|
|
+ {
|
|
|
|
+ FastAddProperty("abs", new ClrFunctionInstance<object, double>(Engine, Abs), false, false, false);
|
|
|
|
+ FastAddProperty("acos", new ClrFunctionInstance<object, double>(Engine, Acos), false, false, false);
|
|
|
|
+ FastAddProperty("asin", new ClrFunctionInstance<object, double>(Engine, Asin), false, false, false);
|
|
|
|
+ FastAddProperty("atan", new ClrFunctionInstance<object, double>(Engine, Atan), false, false, false);
|
|
|
|
+ FastAddProperty("atan2", new ClrFunctionInstance<object, double>(Engine, Atan2), false, false, false);
|
|
|
|
+ FastAddProperty("ceil", new ClrFunctionInstance<object, double>(Engine, Ceil), false, false, false);
|
|
|
|
+ FastAddProperty("cos", new ClrFunctionInstance<object, double>(Engine, Cos), false, false, false);
|
|
|
|
+ FastAddProperty("exp", new ClrFunctionInstance<object, double>(Engine, Exp), false, false, false);
|
|
|
|
+ FastAddProperty("floor", new ClrFunctionInstance<object, double>(Engine, Floor), false, false, false);
|
|
|
|
+ FastAddProperty("log", new ClrFunctionInstance<object, double>(Engine, Log), false, false, false);
|
|
|
|
+ FastAddProperty("max", new ClrFunctionInstance<object, double>(Engine, Max), false, false, false);
|
|
|
|
+ FastAddProperty("min", new ClrFunctionInstance<object, double>(Engine, Min), false, false, false);
|
|
|
|
+ FastAddProperty("pow", new ClrFunctionInstance<object, double>(Engine, Pow), false, false, false);
|
|
|
|
+ FastAddProperty("random", new ClrFunctionInstance<object, double>(Engine, Random), false, false, false);
|
|
|
|
+ FastAddProperty("round", new ClrFunctionInstance<object, double>(Engine, Round), false, false, false);
|
|
|
|
+ FastAddProperty("sin", new ClrFunctionInstance<object, double>(Engine, Sin), false, false, false);
|
|
|
|
+ FastAddProperty("sqrt", new ClrFunctionInstance<object, double>(Engine, Sqrt), false, false, false);
|
|
|
|
+ FastAddProperty("tan", new ClrFunctionInstance<object, double>(Engine, Tan), false, false, false);
|
|
|
|
+
|
|
|
|
+ FastAddProperty("E", System.Math.E, false, false, false);
|
|
|
|
+ FastAddProperty("LN10", System.Math.Log(10), false, false, false);
|
|
|
|
+ FastAddProperty("LN2", System.Math.Log(2), false, false, false);
|
|
|
|
+ FastAddProperty("LOG2E", System.Math.Log(System.Math.E, 2), false, false, false);
|
|
|
|
+ FastAddProperty("LOG10E", System.Math.Log(System.Math.E, 10), false, false, false);
|
|
|
|
+ FastAddProperty("PI", System.Math.PI, false, false, false);
|
|
|
|
+ FastAddProperty("SQRT1_2", System.Math.Sqrt(0.5), false, false, false);
|
|
|
|
+ FastAddProperty("SQRT2", System.Math.Sqrt(2), false, false, false);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
private static double Abs(object thisObject, object[] arguments)
|
|
private static double Abs(object thisObject, object[] arguments)
|
|
{
|
|
{
|
|
var x = TypeConverter.ToNumber(arguments[0]);
|
|
var x = TypeConverter.ToNumber(arguments[0]);
|