 <p>Dart2JS was indeed the culprit. Turning minification off and looking at the output Javascript reveals:</p> <pre><code>t2 = J.getInterceptor(selection); t1 = t2.toString$0(selection); </code></pre> <p>Manually replacing it after compiling with:</p> <pre><code>t1 = selection.toString(); </code></pre> <p>fixes the issue.</p> <p>I've reported the bug: <a href="https://github.com/dart-lang/sdk/issues/27789" rel="nofollow noreferrer">https://github.com/dart-lang/sdk/issues/27789</a></p>