public MergedPropertyDescriptor(InheritsPrototypeValue instance, string name) { _instance = instance; _name = name; }
private static IAnalysisSet UtilInherits(FunctionValue func, Node node, AnalysisUnit unit, IAnalysisSet @this, IAnalysisSet[] args) { // function inherits(ctor, superCtor) // sets ctor.super_ to superCtor // sets ctor.prototype = {copy of superCtor.prototype} if (args.Length >= 2) { args[0].SetMember(node, unit, "super_", args[1]); IAnalysisSet prototypeValue; InheritsPrototypeValue copied; var prototype = args[1].Get(node, unit, "prototype"); if (!unit.DeclaringModuleEnvironment.TryGetNodeValue(NodeEnvironmentKind.InheritsPrototypeValue, node, out prototypeValue)) { copied = new InheritsPrototypeValue(unit.ProjectEntry, prototype); unit.DeclaringModuleEnvironment.AddNodeValue(NodeEnvironmentKind.InheritsPrototypeValue, node, copied.Proxy); } else { copied = (InheritsPrototypeValue)prototypeValue.First().Value; copied.AddPrototypes(prototype); } args[0].SetMember(node, unit, "prototype", copied.Proxy); } return AnalysisSet.Empty; }