result.addInstruction(OP_pushstring, "");
result.addInstruction(OP_construct, 1);
result.addInstruction(result_temp.setlocal());
// Jump to the loop test.
Label test = new Label();
result.addInstruction(OP_jump, test);
// Top of the loop: put an AET Label on
// the ABC OP_Label.
Label loop = new Label();
result.labelNext(loop);
result.addInstruction(OP_label);
// Get the next value and cache it.
result.addInstruction(hasnext.stem_temp.getlocal());
result.addInstruction(hasnext.index_temp.getlocal());
result.addInstruction(OP_nextvalue);
result.addInstruction(OP_dup);
result.addInstruction(value_temp.setlocal() );
// See ECMA-357 11.2.4
result.addInstruction(OP_pushwith);
result.addAll(filter);
Label no_match = new Label();
result.addInstruction(OP_iffalse, no_match);
result.addInstruction(result_temp.getlocal() );
result.addInstruction(hasnext.index_temp.getlocal() );
result.addInstruction(value_temp.getlocal() );