Consider the following code:
var st1;
try {
try {
throw 'bad';
} catch (e, st) {
st1 = st;
rethrow;
}
} catch (e, st2) {
print(st1 == st2);
print(identical(st1, st2));
}
On the VM, this prints "true" and "true", but on dart2js it prints "false" and "false". This makes it difficult to compare stack traces for equality and impossible to use them in expandos, which is blocking my work on issue #7040 on dart2js.