FunctionDef


superclass: Object


FunctionDefs contain code which can be executed from a Function.


Accessing


Even though it is possible to change the values in the various arrays that define the FunctionDef,

you should not do it, unless you like to crash.


code


Get the byte code array.


{ |a = 9, b = 10, c| a + b }.def.code;


sourceCode


Get the source code string.


{ |a = 9, b = 10, c| a + b }.def.sourceCode.postcs;


context


Get the enclosing FunctionDef or Method.


findReferences(aSymbol)


return a list of all references to a given symbol.


argNames


Get the Array of Symbols of the argument names.


{ |a = 9, b = 10, c| a + b }.def.argNames;


prototypeFrame


Get the array of default values for argument and temporary variables.


{ |a = 9, b = 10, c| a + b }.def.prototypeFrame;


varNames


Get the Array of Symbols of the local variable names.


{ |a = 9, b = 10, c| var x = 9; a + b + x }.def.varNames;



argumentString


Return a string that contains  arguments and their default values for embedding in a string


{ |a = 9, b = 10, c| a + b }.def.argumentString;


makeEnvirFromArgs


Get the Array of Symbols of the local variable names.


{ |a = 9, b = 10, c| a + b }.def.makeEnvirFromArgs;



Utilities


dumpByteCodes


"Disassemble" and post the FunctionDef's byte code instructions to the text window.