% Create New Object
meth New =^ ( ·
var index : Int ·
var b : bytecode ·
var cl : ClassInfo ·
var Obj : ObjectInfo ·
var entry : CpList ·
var e : Object ·
var CurrentFrame : FrameInfo ·
TopFrame.GetFrame(CurrentFrame);
% getting the entry number of the Constant Pool
currentFrame.GetNextBytecode(b);
b.GetCode(index);
% searching the constant pool Finding the class
currentFrame.FindCPList(index, entry);
entry.GetInfo(e);
if [] e isExactly CpentryClass ®
(CPentryClass)e.Getcl(cl);
[] not(e isExactly CpentryClass) ® miracle
fi
% visiting the the object class and its all superclasses
Obj:= new ObjectInfo;
Obj.Setcl(cl);
Obj.InsertField(cl);
% the Object reference is pushed onto the Operand stack
currentFrame.Push(Obj);
TopFrame.SetFrame(CurrentFrame);
end end end end end end end
)
end