public static StringPrototype CreatePrototypeObject(Engine engine, StringConstructor stringConstructor) { var obj = new StringPrototype(engine); obj.Prototype = engine.Object.PrototypeObject; obj.PrimitiveValue = ""; obj.Extensible = true; obj.FastAddProperty("length", 0, false, false, false); obj.FastAddProperty("constructor", stringConstructor, true, false, true); return obj; }
public static StringConstructor CreateStringConstructor(Engine engine) { var obj = new StringConstructor(engine); obj.Extensible = true; // The value of the [[Prototype]] internal property of the String constructor is the Function prototype object obj.Prototype = engine.Function.PrototypeObject; obj.PrototypeObject = StringPrototype.CreatePrototypeObject(engine, obj); obj.FastAddProperty("length", 1, false, false, false); // The initial value of String.prototype is the String prototype object obj.FastAddProperty("prototype", obj.PrototypeObject, false, false, false); return obj; }