@Override public PropertyMap apply(ObjectType t) { return t.getPropertyMap(); } };
/** * Gets the number of properties of this object. */ public final int getPropertiesCount() { return getPropertyMap().getPropertiesCount(); }
/** * Returns the names of all the properties directly on this type. * * Overridden by FunctionType to add "prototype". */ public Set<String> getOwnPropertyNames() { // TODO(sdh): ObjectType specifies that this should include prototype properties, // but currently it does not. Check if this is a constructor and add them, but // this could possibly break things so it should be done separately. return getPropertyMap().getOwnPropertyNames(); }
@Override public PropertyMap getPropertyMap() { return primitiveObjectType == null ? PropertyMap.immutableEmptyMap() : primitiveObjectType.getPropertyMap(); }
/** * Default getSlot implementation. This gets overridden by FunctionType * for lazily-resolved prototypes. */ public Property getSlot(String name) { return getPropertyMap().getSlot(name); }
@Override PropertyMap getPropertyMap() { return referencedObjType == null ? PropertyMap.immutableEmptyMap() : referencedObjType.getPropertyMap(); }
/** * Default getSlot implementation. This gets overridden by FunctionType * for lazily-resolved prototypes. */ public Property getSlot(String name) { return getPropertyMap().getSlot(name); }
/** Returns the direct parent of this property map. */ PropertyMap getPrimaryParent() { if (parentSource == null) { return null; } ObjectType iProto = parentSource.getImplicitPrototype(); return iProto == null ? null : iProto.getPropertyMap(); }
@Override final PropertyMap getPropertyMap() { return referencedObjType == null ? PropertyMap.immutableEmptyMap() : referencedObjType.getPropertyMap(); }
/** * Adds any properties defined on this type or its supertypes to the set. */ final void collectPropertyNames(Set<String> props) { getPropertyMap().collectPropertyNames(props); }
/** Returns the direct parent of this property map. */ PropertyMap getPrimaryParent() { if (parentSource == null) { return null; } ObjectType iProto = parentSource.getImplicitPrototype(); return iProto == null ? null : iProto.getPropertyMap(); }
/** * Gets the number of properties of this object. */ public int getPropertiesCount() { return getPropertyMap().getPropertiesCount(); }
/** * Adds any properties defined on this type or its supertypes to the set. */ final void collectPropertyNames(Set<String> props) { getPropertyMap().collectPropertyNames(props); }
public final Property getOwnSlot(String name) { return getPropertyMap().getOwnProperty(name); }
/** * Returns the names of all the properties directly on this type. * * Overridden by FunctionType to add "prototype". */ public Set<String> getOwnPropertyNames() { return getPropertyMap().getOwnPropertyNames(); }
@Override public PropertyMap getPropertyMap() { return primitiveObjectType == null ? PropertyMap.immutableEmptyMap() : primitiveObjectType.getPropertyMap(); }
public Property getOwnSlot(String name) { return getPropertyMap().getOwnProperty(name); }
private void collectPropertyNamesHelper( Set<String> props, Set<PropertyMap> cache) { if (!cache.add(this)) { return; } props.addAll(properties.keySet()); PropertyMap primaryParent = getPrimaryParent(); if (primaryParent != null) { primaryParent.collectPropertyNamesHelper(props, cache); } for (ObjectType o : getSecondaryParentObjects()) { PropertyMap p = o.getPropertyMap(); if (p != null) { p.collectPropertyNamesHelper(props, cache); } } }
Property getSlot(String name) { Property prop = properties.get(name); if (prop != null) { return prop; } PropertyMap primaryParent = getPrimaryParent(); if (primaryParent != null) { prop = primaryParent.getSlot(name); if (prop != null) { return prop; } } for (ObjectType o : getSecondaryParentObjects()) { PropertyMap p = o.getPropertyMap(); if (p != null) { prop = p.getSlot(name); if (prop != null) { return prop; } } } return null; }