public final class UnknownValueResolver
extends java.lang.Object
Obj
.
Each method reads the appropriate property. If unknown/polymorphic, it is recovered via the function entry state in the call graph.Modifier and Type | Field and Description |
---|---|
static org.apache.log4j.Logger |
log |
Modifier and Type | Method and Description |
---|---|
static Value |
getDefaultNumericProperty(ObjectLabel objlabel,
State s)
Wrapper for
Obj.getDefaultNumericProperty() . |
static Value |
getDefaultOtherProperty(ObjectLabel objlabel,
State s)
Wrapper for
Obj.getDefaultOtherProperty() . |
static Value |
getInternalPrototype(ObjectLabel objlabel,
State s,
boolean partial)
Wrapper for
Obj.getInternalPrototype() . |
static Value |
getInternalValue(ObjectLabel objlabel,
State s,
boolean partial)
Wrapper for
Obj.getInternalValue() . |
static java.util.Map<PKey,Value> |
getProperties(ObjectLabel objlabel,
State s)
Wrapper for
Obj.getProperties() . |
static Value |
getProperty(ObjectLabel objlabel,
PKey propertyname,
State s,
boolean partial)
Wrapper for
Obj.getProperty(PKey) . |
static Value |
getRealValue(Value v,
State s)
Fully recovers the given value if polymorphic.
|
static ScopeChain |
getScopeChain(ObjectLabel objlabel,
State s)
Wrapper for
Obj.getScopeChain() . |
static Value |
getValue(ObjectProperty propref,
State s,
boolean partial)
Wrapper for
Obj.getValue(ObjectProperty) . |
static Value |
join(java.util.Collection<Value> values,
State s)
Joins the given values, performing full recovery for polymorphic values if necessary.
|
static Value |
join(Value v1,
State s1,
Value v2,
State s2,
boolean widen)
Joins the given values, performing full recovery for polymorphic values if necessary.
|
static Value |
join(Value v1,
Value v2,
State s)
Joins the given values, performing full recovery for polymorphic values if necessary.
|
static Value |
localize(Value v,
Value other,
State s,
ObjectProperty v_prop)
Localizes a value for function entry propagation.
|
static void |
localizeScopeChain(ObjectLabel objlabel,
Obj obj,
Obj other,
State s)
Localizes the scope chain for function entry propagation.
|
public static Value getDefaultNumericProperty(ObjectLabel objlabel, State s)
Obj.getDefaultNumericProperty()
.
Never returns 'unknown' or polymorphic value.
As a side-effect, ordinary properties may be materialized.public static Value getDefaultOtherProperty(ObjectLabel objlabel, State s)
Obj.getDefaultOtherProperty()
.
Never returns 'unknown' or polymorphic value.
As a side-effect, ordinary properties may be materialized.public static Value getInternalPrototype(ObjectLabel objlabel, State s, boolean partial)
Obj.getInternalPrototype()
.
Never returns 'unknown'.public static Value getInternalValue(ObjectLabel objlabel, State s, boolean partial)
Obj.getInternalValue()
.
Never returns 'unknown'.public static java.util.Map<PKey,Value> getProperties(ObjectLabel objlabel, State s)
Obj.getProperties()
.
The resulting map may contain 'unknown' and polymorphic values, but all property names will be present.
The map is not writable.public static Value getProperty(ObjectLabel objlabel, PKey propertyname, State s, boolean partial)
Obj.getProperty(PKey)
.
Never returns 'unknown'.public static Value getRealValue(Value v, State s)
public static ScopeChain getScopeChain(ObjectLabel objlabel, State s)
Obj.getScopeChain()
.
Never returns 'unknown'.public static Value getValue(ObjectProperty propref, State s, boolean partial)
Obj.getValue(ObjectProperty)
.
Should not be invoked with an INTERNAL_SCOPE property reference.
Never returns 'unknown'.public static Value join(java.util.Collection<Value> values, State s)
public static Value join(Value v1, State s1, Value v2, State s2, boolean widen)
public static Value join(Value v1, Value v2, State s)
public static Value localize(Value v, Value other, State s, ObjectProperty v_prop)
v
- value to be localizedother
- existing value at destinations
- current state containing vv_prop
- store location of vpublic static void localizeScopeChain(ObjectLabel objlabel, Obj obj, Obj other, State s)
obj
- object with scope chain to be localizedother
- existing object at destinations
- current state containing objCopyright © 2009-2019 Aarhus University