Beispiel #1
0
        private static void EmitArrayInstance(ArrayInstance arrayInstance, ILGenerator methodIL)
        {
            for (int i = 0; i < arrayInstance.DimensionSizes.Length; i++)
            {
                EmitExpression(arrayInstance.DimensionSizes[i], methodIL);
            }

            if (arrayInstance.IsPrimitive())
            {
                methodIL.Emit(OpCodes.Newarr, ((ArrayType)arrayInstance.Type).GetAtomElementType().GetEquivalence());
            }
            else
            {
                methodIL.Emit(OpCodes.Newobj, arrayInstance.Type.GetEquivalence().GetConstructor(Int32FilledArray(arrayInstance.Dimension - 1)));
            }
        }
        public void ShouldBeAnArray()
        {
            var value = new ArrayInstance(_engine);

            Assert.Equal(false, value.IsBoolean());
            Assert.Equal(true, value.IsArray());
            Assert.Equal(false, value.IsDate());
            Assert.Equal(false, value.IsNull());
            Assert.Equal(false, value.IsNumber());
            Assert.Equal(true, value.IsObject());
            Assert.Equal(false, value.IsPrimitive());
            Assert.Equal(false, value.IsRegExp());
            Assert.Equal(false, value.IsString());
            Assert.Equal(false, value.IsUndefined());

            Assert.Equal(true, value.AsArray() != null);
        }