public TaintResultNode(boolean taintFromSelf, int taintFromParameter, RubyNode method) { super(method.getContext(), method.getEncapsulatingSourceSection()); this.taintFromSelf = taintFromSelf; this.taintFromParameter = taintFromParameter; this.method = method; this.isTaintedNode = IsTaintedNodeGen.create(getContext(), getSourceSection(), null); }
public CallTarget compile(String format) { if (format.length() > context.getOptions().PACK_RECOVER_LOOP_MIN) { format = LoopRecovery.recoverLoop(format); } final SimpleUnpackTreeBuilder builder = new SimpleUnpackTreeBuilder(context, currentNode); builder.enterSequence(); final SimplePackParser parser = new SimplePackParser(builder, format.getBytes(StandardCharsets.US_ASCII)); parser.parse(); builder.exitSequence(); return Truffle.getRuntime() .createCallTarget( new UnpackRootNode( context, currentNode.getEncapsulatingSourceSection(), builder.getNode())); }