示例#1
0
  @Override
  public boolean execute(LocalDataArea lda, AVM2ConstantPool constants, AVM2Instruction ins) {
    int locRegIndex = ins.getParamAsLong(constants, 0).intValue();
    Object obj = lda.localRegisters.get(locRegIndex);
    if (obj != NotCompileTime.INSTANCE) {
      lda.localRegisters.put(locRegIndex, EcmaScript.toInt32(obj) - 1);
    }

    return true;
  }
示例#2
0
  @Override
  public boolean execute(LocalDataArea lda, AVM2ConstantPool constants, AVM2Instruction ins) {
    int argCount = ins.getParamAsLong(constants, 0).intValue();
    /* List<Object> passArguments = new ArrayList<Object>();
    for (int i = argCount - 1; i >= 0; i--) {
    passArguments.set(i, lda.operandStack.pop());
    }*/
    for (int i = 0; i < argCount; i++) {
      lda.operandStack.pop();
    }

    Object receiver = lda.operandStack.pop();
    Object function = lda.operandStack.pop();

    // push(result)
    lda.operandStack.push(NotCompileTime.INSTANCE);
    // lda.executionException = "Call to unknown function";
    return true;
  }