Example #1
0
 /**
  * Transfer for an exceptional-return statement.
  *
  * @param caller if non-null, only consider this caller
  */
 public void transferExceptionalReturn(
     BasicBlock block, State state, NodeAndContext<Context> caller, Context edge_context) {
   Value v = state.readRegister(AbstractNode.EXCEPTION_REG);
   state.removeRegister(AbstractNode.EXCEPTION_REG);
   UserFunctionCalls.leaveUserFunction(
       v, true, block.getFunction(), state, c, caller, edge_context);
 }
Example #2
0
 /**
  * Transfer for a return statement.
  *
  * @param caller if non-null, only consider this caller
  */
 public void transferReturn(
     int valueReg,
     BasicBlock block,
     State state,
     NodeAndContext<Context> caller,
     Context edge_context) {
   Value v;
   if (valueReg != AbstractNode.NO_VALUE) v = state.readRegister(valueReg);
   else v = Value.makeUndef();
   UserFunctionCalls.leaveUserFunction(
       v, false, block.getFunction(), state, c, caller, edge_context);
 }
Example #3
0
 /** 13 function definition. */
 @Override
 public void visit(DeclareFunctionNode n, State state) {
   UserFunctionCalls.declareFunction(n, state, c);
 }