This commit is contained in:
Marcus Cavanaugh 2014-12-29 17:43:27 -06:00
Родитель 48572b3a47
Коммит 0b9f34c553
2 изменённых файлов: 19 добавлений и 15 удалений

Просмотреть файл

@ -308,7 +308,7 @@ module J2ME {
var frameDetails = firstFrame.methodInfo.classInfo.className + "/" + firstFrame.methodInfo.name + signatureToDefinition(firstFrame.methodInfo.signature, true, true);
traceWriter.enter("> " + MethodType[MethodType.Interpreted][0] + " " + frameDetails);
}
var returnValue = VM.execute(this);
var returnValue = VM.execute();
if (U) {
// Append all the current frames to the parent frame set, so a single frame stack
// exists when the bailout finishes.
@ -418,7 +418,7 @@ module J2ME {
Instrument.callResumeHooks(this.current());
this.setAsCurrentContext();
do {
VM.execute(this);
VM.execute();
if (U) {
Array.prototype.push.apply(this.frames, this.bailoutFrames);
this.bailoutFrames = [];

Просмотреть файл

@ -104,7 +104,8 @@ module J2ME {
var CONTINUE_AFTER_POPFRAME = {}; // Sentinel object.
function popFrame(ctx, consumes) {
function popFrame(consumes) {
var ctx = $.ctx;
var frame = ctx.current();
var cp = frame.cp;
var stack = frame.stack;
@ -148,7 +149,8 @@ module J2ME {
}).join("\n") + "\n\n";
}
function throw_(ctx, ex) {
function throw_(ex) {
var ctx = $.ctx;
var frame = ctx.current();
var cp = frame.cp;
var stack = frame.stack;
@ -200,7 +202,7 @@ module J2ME {
return;
}
popFrame(ctx, 0);
popFrame(0);
frame = ctx.current();
cp = frame && frame.cp || null;
stack = frame && frame.stack || null;
@ -223,7 +225,8 @@ module J2ME {
}
}
function classInitCheck(ctx, classInfo, ip) {
function classInitCheck(classInfo, ip) {
var ctx = $.ctx;
if (classInfo.isArrayClass || ctx.runtime.initialized[classInfo.className])
return;
ctx.pushClassInitFrame(classInfo);
@ -234,7 +237,8 @@ module J2ME {
}
}
export function interpret(ctx: Context) {
export function interpret() {
var ctx = $.ctx;
var frame = ctx.current();
var cp = frame.cp;
@ -978,7 +982,7 @@ module J2ME {
case Bytecodes.GETSTATIC:
index = frame.read16();
fieldInfo = resolveField(index, cp, true);
classInitCheck(ctx, fieldInfo.classInfo, frame.pc - 3);
classInitCheck(fieldInfo.classInfo, frame.pc - 3);
if (U) {
return;
}
@ -988,7 +992,7 @@ module J2ME {
case Bytecodes.PUTSTATIC:
index = frame.read16();
fieldInfo = resolveField(index, cp, true);
classInitCheck(ctx, fieldInfo.classInfo, frame.pc - 3);
classInitCheck(fieldInfo.classInfo, frame.pc - 3);
if (U) {
return;
}
@ -997,7 +1001,7 @@ module J2ME {
case Bytecodes.NEW:
index = frame.read16();
classInfo = resolveClass(index, cp, false);
classInitCheck(ctx, classInfo, frame.pc - 3);
classInitCheck(classInfo, frame.pc - 3);
if (U) {
return;
}
@ -1056,7 +1060,7 @@ module J2ME {
if (methodInfo.tag) {
methodInfo = resolve(index, cp, isStatic);
if (isStatic) {
classInitCheck(ctx, methodInfo.classInfo, startPc);
classInitCheck(methodInfo.classInfo, startPc);
if (U) {
return;
}
@ -1128,7 +1132,7 @@ module J2ME {
}
break;
case Bytecodes.RETURN:
var returnValue = popFrame(ctx, 0);
var returnValue = popFrame(0);
if (returnValue !== CONTINUE_AFTER_POPFRAME) {
return returnValue;
} else {
@ -1140,7 +1144,7 @@ module J2ME {
case Bytecodes.IRETURN:
case Bytecodes.FRETURN:
case Bytecodes.ARETURN:
var returnValue = popFrame(ctx, 1);
var returnValue = popFrame(1);
if (returnValue !== CONTINUE_AFTER_POPFRAME) {
return returnValue;
} else {
@ -1151,7 +1155,7 @@ module J2ME {
break;
case Bytecodes.LRETURN:
case Bytecodes.DRETURN:
var returnValue = popFrame(ctx, 2);
var returnValue = popFrame(2);
if (returnValue !== CONTINUE_AFTER_POPFRAME) {
return returnValue;
} else {
@ -1172,7 +1176,7 @@ module J2ME {
e = $.newNullPointerException(e.message);
}
throw_(ctx, e);
throw_(e);
frame = ctx.current();
cp = frame && frame.cp || null;
stack = frame && frame.stack || null;