public MathLibrary()
            : base("Math")
        {
            abs = new LibraryFunction(this, "abs", PossibleValueTypes.Number);
            acos = new LibraryFunction(this, "acos", PossibleValueTypes.Number);
            asin = new LibraryFunction(this, "atan", PossibleValueTypes.Number);
            atan = new LibraryFunction(this, "atan2", PossibleValueTypes.Number);
            ceil = new LibraryFunction(this, "ceil", PossibleValueTypes.Number);
            cos = new LibraryFunction(this, "cos", PossibleValueTypes.Number);
            exp = new LibraryFunction(this, "exp", PossibleValueTypes.Number);
            floor = new LibraryFunction(this, "exp", PossibleValueTypes.Number);
            log = new LibraryFunction(this, "log", PossibleValueTypes.Number);
            max = new LibraryFunction(this, "max", PossibleValueTypes.Number);
            min = new LibraryFunction(this, "min", PossibleValueTypes.Number);
            pow = new LibraryFunction(this, "pow", PossibleValueTypes.Number);
            random = new LibraryFunction(this, "random", PossibleValueTypes.Number);
            round = new LibraryFunction(this, "round", PossibleValueTypes.Number);
            sin = new LibraryFunction(this, "sin", PossibleValueTypes.Number);
            sqrt = new LibraryFunction(this, "sqrt", PossibleValueTypes.Number);
            tan = new LibraryFunction(this, "tan", PossibleValueTypes.Number);

            E = new LibraryConstant(this, "E", PossibleValueTypes.Number);
            LN10 = new LibraryConstant(this, "LN10", PossibleValueTypes.Number);
            LN2 = new LibraryConstant(this, "LN2", PossibleValueTypes.Number);
            LOG2E = new LibraryConstant(this, "LOG2E", PossibleValueTypes.Number);
            LOG10E = new LibraryConstant(this, "LOG10E", PossibleValueTypes.Number);
            PI = new LibraryConstant(this, "PI", PossibleValueTypes.Number);
            SQRT1_2 = new LibraryConstant(this, "SQRT1_2", PossibleValueTypes.Number);
            SQRT2 = new LibraryConstant(this, "SQRT2", PossibleValueTypes.Number);
        }
 public UtilLibrary()
     : base("util")
 {
     imul = new LibraryFunction(this, "imul", PossibleValueTypes.Int32);
     fillArray = new LibraryFunction(this, "fillArray", PossibleValueTypes.Any);
     structArray = new LibraryFunction(this, "structArray", PossibleValueTypes.Any);
 }
 public StringLibrary()
     : base("String")
 {
     fromCharCode = new LibraryFunction(this, "fromCharCode", PossibleValueTypes.String);
 }
 static void Add(string name, PossibleValueTypes VT, TransformCall transform)
 {
     LibraryFunction func = new LibraryFunction(Engine, name, VT);
     func.CallTransform = transform;
     Functions[name] = func;
 }