예제 #1
0
        /// <summary>
        /// 15.1.2.4
        /// </summary>
        public JsInstance IsNaN(JsInstance[] arguments)
        {
            if (arguments.Length < 1)
            {
                return(BooleanClass.New(false));
            }

            return(BooleanClass.New(double.NaN.Equals(arguments[0].ToNumber())));
        }
예제 #2
0
        /// <summary>
        /// 15.1.2.5
        /// </summary>
        protected JsInstance isFinite(JsInstance[] arguments)
        {
            if (arguments.Length < 1 || arguments[0] == JsUndefined.Instance)
            {
                return(BooleanClass.False);
            }

            var value = arguments[0];

            return(BooleanClass.New((value != NumberClass["NaN"] &&
                                     value != NumberClass["POSITIVE_INFINITY"] &&
                                     value != NumberClass["NEGATIVE_INFINITY"])
                                    ));
        }
예제 #3
0
        public void A_boolean_value_should_be_converted_from_a_string()
        {
            List<IArgument> arguments = new List<IArgument>();
            arguments.Add(new Argument("true"));

            BooleanClass bc = new BooleanClass();

            IArgumentMapFactory mapFactory = new ArgumentMapFactory();

            IArgumentMap map = mapFactory.CreateMap(bc);

            map.ApplyTo(bc, arguments);

            Assert.That(bc.Value, Is.True);
        }
예제 #4
0
        public JsObject Wrap(object value)
        {
            switch (Convert.GetTypeCode(value))
            {
            case TypeCode.Boolean:
                return(BooleanClass.New((bool)value));

            case TypeCode.Char:
            case TypeCode.String:
                return(StringClass.New(Convert.ToString(value)));

            case TypeCode.DateTime:
                return(DateClass.New((DateTime)value));

            case TypeCode.Byte:
            case TypeCode.Int16:
            case TypeCode.Int32:
            case TypeCode.Int64:
            case TypeCode.SByte:
            case TypeCode.UInt16:
            case TypeCode.UInt32:
            case TypeCode.UInt64:
            case TypeCode.Decimal:
            case TypeCode.Double:
            case TypeCode.Single:
                return(NumberClass.New(Convert.ToDouble(value)));

            case TypeCode.Object:
                return(ObjectClass.New(value));

            case TypeCode.DBNull:
            case TypeCode.Empty:
            default:
                throw new ArgumentNullException("value");
            }
        }
예제 #5
0
파일: Module.cs 프로젝트: toddcoder/Kagami
 public void LoadBuiltinClasses()
 {
     classes["Int"]               = new IntClass();
     classes["Float"]             = new FloatClass();
     classes["Boolean"]           = new BooleanClass();
     classes["String"]            = new StringClass();
     classes["Char"]              = new CharClass();
     classes["Byte"]              = new ByteClass();
     classes["Message"]           = new MessageClass();
     classes["Unassigned"]        = new UnassignedClass();
     classes["Tuple"]             = new TupleClass();
     classes["NameValue"]         = new NameValueClass();
     classes["Lambda"]            = new LambdaClass();
     classes["Void"]              = new VoidClass();
     classes["Some"]              = new SomeClass();
     classes["None"]              = new NoneClass();
     classes["Array"]             = new ArrayClass();
     classes["Iterator"]          = new IteratorClass();
     classes["LazyIterator"]      = new LazyIteratorClass();
     classes["StreamIterator"]    = new StreamIteratorClass();
     classes["Any"]               = new AnyClass();
     classes["Placeholder"]       = new PlaceholderClass();
     classes["Range"]             = new RangeClass();
     classes["Dictionary"]        = new DictionaryClass();
     classes["Container"]         = new ContainerClass();
     classes["Unmatched"]         = new UnmatchedClass();
     classes["Complex"]           = new ComplexClass();
     classes["Rational"]          = new RationalClass();
     classes["Long"]              = new LongClass();
     classes["Lazy"]              = new LazyClass();
     classes["YieldingInvokable"] = new YieldingInvokableClass();
     classes["Del"]               = new DelClass();
     classes["Slice"]             = new SliceClass();
     classes["End"]               = new EndClass();
     classes["List"]              = new ListClass();
     classes["Arguments"]         = new ArgumentsClass();
     classes["Symbol"]            = new SymbolClass();
     classes["Infinity"]          = new InfinityClass();
     classes["OpenRange"]         = new OpenRangeClass();
     classes["KeyValue"]          = new KeyValueClass();
     classes["Regex"]             = new RegexClass();
     classes["Pattern"]           = new PatternClass();
     classes["PackageFunction"]   = new PackageFunctionClass();
     classes["Sys"]               = new SysClass();
     classes["Math"]              = new MathClass();
     classes["RuntimeFunction"]   = new RuntimeFunctionClass();
     classes["Reference"]         = new ReferenceClass();
     classes["Group"]             = new RegexGroupClass();
     classes["Match"]             = new RegexMatchClass();
     classes["Date"]              = new DateClass();
     classes["Interval"]          = new IntervalClass();
     classes["TypeConstraint"]    = new TypeConstraintClass();
     classes["ByteArray"]         = new ByteArrayClass();
     classes["Selector"]          = new SelectorClass();
     classes["Number"]            = new NumberClass();
     classes["Collection"]        = new CollectionClass();
     classes["TextFinding"]       = new TextFindingClass();
     classes["SkipTake"]          = new SkipTakeClass();
     classes["Constructor"]       = new ConstructorClass();
     classes["MutString"]         = new MutStringClass();
     classes["Error"]             = new ErrorClass();
     classes["Success"]           = new SuccessClass();
     classes["Failure"]           = new FailureClass();
     classes["Optional"]          = new OptionalClass();
     classes["Result"]            = new ResultClass();
     classes["Monad"]             = new MonadClass();
     classes["Unit"]              = new UnitClass();
     classes["YieldReturn"]       = new YieldReturnClass();
     classes["Index"]             = new IndexClass();
     classes["Cycle"]             = new CycleClass();
     classes["Set"]               = new SetClass();
 }
 public static void Main()
 {
     BooleanClass boolClassObject = new BooleanClass();
     boolClassObject.ToString(true);
 }