% 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