Constructs a new ScriptFunction out of a native D function.
Constructs a new ScriptFunction out of a native D delegate.
Constructor for creating script defined functions.
The type of function held by the object
Property argNames
Property closure
Returns the name of the function
Sets the function name
get the delegate only if it is one
get the native function ONLY if it is one
Property statementNodes
Returns a string representing the type and name.
Returns the type of function stored, such as native function, delegate, or script function
used by the parser for missing constructors in classes that don't extend
name property
getters property
setters property
prototype property
prototype property (setter)
This property provides direct access to the dictionary
Add a getter. Getters should be added to a constructor function's "prototype" field
Add a setter. Setters should be added to a constructor function's "prototype" field
Looks up a field through the prototype chain. Note that this does not call any getters because it is not possible to pass a Context to opIndex.
Shorthand for lookupField.
Assigns a field to the current object. This does not call any setters.
Determines if there is a getter for a given property
Determines if there is a setter for a given property
Shorthand for assignField
If a native object was stored inside this ScriptObject, it can be retrieved with this function. Note that one must always check that the return value isn't null because all functions can be called with invalid "this" objects using functionName.call.
Native object can also be written in case of inheritance by script
Returns a string with JSON like formatting representing the object's key-value pairs as well as any nested objects. In the future this will be replaced and an explicit function call will be required to print this detailed information.
The dictionary of key-value pairs
The lookup table for getters
The lookup table for setters
This class encapsulates all types of script functions including native D functions and delegates. A native function must first be wrapped in this class before it can be given to a ScriptAny assignment. When an object is created with "new FunctionName()" its __proto__ is assigned to the function's "prototype" field. This allows OOP in the scripting language and is analogous to JavaScript.