diff -r b9386cc3ff7b -r 39d26d3686d9 rt/vm/src/main/java/org/apidesign/vm4brwsr/StackMapper.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/StackMapper.java Sat Feb 15 20:18:26 2014 +0100 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/StackMapper.java Mon Feb 17 07:54:35 2014 +0100 @@ -84,7 +84,7 @@ void flush(Appendable out) throws IOException { int count = stackTypeIndexPairs.getSize(); for (int i = 0; i < count; i++) { - String val = stackValues.getAndClear(i); + String val = stackValues.getAndClear(i, true); if (val == null) { continue; } @@ -160,6 +160,9 @@ } public CharSequence getT(final int indexFromTop, final int type) { + return getT(indexFromTop, type, true); + } + public CharSequence getT(final int indexFromTop, final int type, boolean clear) { final int stackSize = stackTypeIndexPairs.getSize(); if (indexFromTop >= stackSize) { throw new IllegalStateException("Stack underflow"); @@ -170,7 +173,7 @@ throw new IllegalStateException("Type mismatch"); } String value = - stackValues.getAndClear(stackSize - indexFromTop - 1); + stackValues.getAndClear(stackSize - indexFromTop - 1, clear); if (value != null) { return value; }