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); }