Skip to content

Latest commit

 

History

History
70 lines (68 loc) · 5.4 KB

TAJS-functions.md

File metadata and controls

70 lines (68 loc) · 5.4 KB

Documentation for TAJS_* functions

  • TAJS_NOT_IMPLEMENTED() -> void:
    • Placeholder for not-implemented function. Throws AnalysisModelLimitationException if called.
  • TAJS_addContextSensitivity(Function|String targetFunctionOrTargetParameterName, [String targetParameterName]) -> void:
    • Makes the given or enclosing function context sensitive in the given parameter name.
  • TAJS_assert(Value value, [String predicateNameString = 'isMaybeTrueButNotFalse'], [Boolean expectedResult = true], [Boolean mustBeReachable = true]) -> void:
    • Asserts that the value satisfies the given predicates. A predicate name is the name of a predicate method in the lattice.Value class. A disjunction of predicates can be made by interleaving '||' between the predicate names. If expectedResult is false, then the predicate test is expected to fail. Finally, the assertion can be allowed to be unreachable (usually not the case).
  • TAJS_assertEquals(Value expected, Value actual, [Boolean expectedResult = true]) -> void:
    • Asserts that the two values are equal (if expectedResult is true) or that they are not equal (if expectedResult is false).
  • TAJS_asyncListen(Function callback) -> void:
    • Registers a callback for asynchronous execution.
  • TAJS_conversionToPrimitive(Value value, [String hint]) -> PrimitiveValue:
    • Converts the given value to a primitive value, optionally according to a hint (NUM, STR).
  • TAJS_dumpAttributes(Value object, String propertyName) -> void:
    • Prints the attributes of the specified property.
  • TAJS_dumpExp() -> void:
    • Prints the expression computed by Unevalizer at the current program location.
  • TAJS_dumpModifiedState() -> void:
    • Prints the modified parts of the current abstract state.
  • TAJS_dumpNF() -> void:
    • Prints the normal-form computed by Unevalizer at the current program location.
  • TAJS_dumpObject(Value value) -> void:
    • Prints the objects in the given abstract value.
  • TAJS_dumpPrototype(Value value) -> void:
    • Prints the prototypes of the given abstract value.
  • TAJS_dumpState() -> void:
    • Prints the current abstract state.
  • TAJS_dumpValue(Value value) -> void:
    • Prints the given abstract value.
  • TAJS_firstOrderStringReplace(Value receiver, Value toReplace, Value toReplaceWith) -> Value:
    • Implementation of the ECMAScript function String.prototype.replace, without support for a function callback.
  • TAJS_getAjaxEvent() -> EventObject:
    • Returns a ReadyStateEvent object.
  • TAJS_getEventListener() -> EventObject:
    • Returns an EventListener object.
  • TAJS_getKeyboardEvent() -> EventObject:
    • Returns a KeyboardEvent object.
  • TAJS_getMain() -> Value:
    • Returns the absolute path to the main file.
  • TAJS_getMouseEvent() -> EventObject:
    • Returns a MouseEvent object.
  • TAJS_getUIEvent() -> EventObject:
    • Returns an UIEvent object.
  • TAJS_getWheelEvent() -> EventObject:
    • Returns a WheelEvent object.
  • TAJS_join(Value ... values) -> Value:
    • Joins the given abstract values into a single abstract value.
  • TAJS_load(String file, Boolean isHostEnvironment, String ... parameterNames) -> Function:
    • Loads a JavaScript file as a function with the chosen parameter names, and optionally marks the function as a host-environment function. If the file is a relative path, it is resolved relative to the file containing the call. Semantically the function behaves as if it was created with new Function(parameterName1, parameterName2, ... , <content-of-file>).
  • TAJS_loadJSON(String filename) -> Value:
    • Loads the JSON file with the given filename (currently just modeled as any-JSON-data).
  • TAJS_make(String partialMethodName) -> Value:
    • Creates an abstract value. The value is created by reflectively invoking the 'make' + partialMethodName-method of the Value class.
  • TAJS_makeContextSensitive(Value targetFunction, Integer targetContextSensitivity, [Object contextSensitivityGuard]) -> void:
    • Makes the given function more context sensitive. If targetContextSensitivity is an unsigned integer then the function is parameter-sensitive in that argument position; if it is -1 then the function is object-sensitive; if it is -2 then the function "inherits" the parameter-sensitivity of the enclosing function. The optional guard can have a field named 'caller' with a value indicating from which callers the context sensitivity should apply.
  • TAJS_makePartial(String kind, String canonicalName) -> Object:
    • Creates a "partial" object of the given kind (FUNCTION, OBJECT, ARRAY) and canonical name. Partial functions cannot be invoked, and accessing properties of partial objects results in warnings.
  • TAJS_newArray() -> Array:
    • Allocates a new Array with a heap-sensitivity that corresponds to the current calling context.
  • TAJS_newObject() -> Object:
    • Allocates a new Object with a heap-sensitivity that corresponds to the current calling context.
  • TAJS_nodeRequireResolve(String filename, [String parent = null]) -> Value:
    • Performs NodeJS require.resolve of the module given as filename.
  • TAJS_parentDir(filename) -> Value:
    • Returns the location of the parent directory.
  • TAJS_unURL(url) -> Value:
    • Changes a file URL to an absolute path (Str-Value), changes non-file URLs to null (Null-Value).

(This file is auto-generated by dk.brics.tajs.analysis.nativeobjects.TAJSFunctionEvaluator)