JS :
class Function : Object {
bytes bytecode;
varframe varsAndArgs;
}
class varframe{
array<value> values;
ptr<varframe> parent;
}
, JS .
null.
,
function makeFunc() {
var name = "Mozilla";
function displayName() {
alert(name);
}
return displayName;
}
displayName (const/variable) Function, varframe :
varframe(displayName)
values[0] // empty array, no variables in it
parent -> varframe(makeFunc)
values[1] // one variable "name" at index 0;
parent = null
, , varframes (a.k.a. callframes).