Beispiel #1
0
        public override sealed IObject Construct(IEnvironment environment, IArgs args)
        {
            var obj = new NString(environment);
            {
                var str = args.Count > 0 ? args[0].ConvertToString() : environment.CreateString("");
                var len = environment.CreateNumber(str.BaseValue.Length);
                var lenDesc = environment.CreateDataDescriptor(len, false, false, false);

                obj.Class = "String";
                obj.Extensible = true;
                obj.Prototype = environment.StringPrototype;
                obj.PrimitiveValue = str;
                obj.DefineOwnProperty("length", lenDesc, false);
            }
            return obj;
        }
Beispiel #2
0
    /// <summary>
    /// Writes a value to the file stream using BinaryWriter
    /// </summary>
    /// <typeparam name="T">Structure type</typeparam>
    /// <param name="value">Value to write</param>
    /// <param name="length">Length of the value</param>
    public void Write <T>(T value, int length)
    {
        if (typeof(T) == typeof(NString))
        {
            NString nString = (NString)((object)value);

            byte[] stringData = encoding.GetBytes(nString);
            byte[] data       = new byte[length];

            for (int i = 0; i < stringData.Length; i++)
            {
                data[i] = stringData[i];
            }

            binaryWriter.Write(data);
        }
    }
Beispiel #3
0
        public sealed override IObject Construct(IEnvironment environment, IArgs args)
        {
            var obj = new NString(environment);

            {
                var str     = args.Count > 0 ? args[0].ConvertToString() : environment.CreateString("");
                var len     = environment.CreateNumber(str.BaseValue.Length);
                var lenDesc = environment.CreateDataDescriptor(len, false, false, false);

                obj.Class          = "String";
                obj.Extensible     = true;
                obj.Prototype      = environment.StringPrototype;
                obj.PrimitiveValue = str;
                obj.DefineOwnProperty("length", lenDesc, false);
            }
            return(obj);
        }