<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On May 26, 2008, at 5:57 PM, Mark S. Miller wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">On Mon, May 26, 2008 at 12:01 PM, Brendan Eich &lt;<a href="mailto:brendan@mozilla.org">brendan@mozilla.org</a>> wrote:</div> <blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">If I recall correctly (and I'm sure someone will set me straight otherwise),</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">JSON is not compatible with ES3 -- Unicode non-BMP character handling</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">differs. Trying to force a subset relation from JSON to ES4 is not going to</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">fly if JSON is not a subset of ES3.</div> </blockquote><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">That's the first I've heard of that problem. AFAIK, JSON, ES3, ES3.1,</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">and ES4 all accept \u surrogate pairs representing a UTF-16 encoding</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">of non-BMP characters. Can anyone say more about what the remaining</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">problem is here?</div></blockquote><div><br></div>Sorry, I was misremembering the problem discussed at</div><div><br></div><div><a href="http://wiki.ecmascript.org/doku.php?id=proposals:update_unicode&amp;s=incompatible+json">http://wiki.ecmascript.org/doku.php?id=proposals:update_unicode&amp;s=incompatible+json</a></div><div><br></div><div>which would make JSON not a subset of ES4.</div><div><br></div><div><br><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><span class="Apple-style-span" style="-webkit-text-stroke-width: -1; ">The only breakage in the subset relationship that I'm aware of are</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">* the ES3 stripping of Cf characters, which everyone agrees needs to</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">be fixed in ES3.1 and ES4,</div></blockquote><div><br></div>Even Microsoft? [1]</div><div><br><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><span class="Apple-style-span" style="-webkit-text-stroke-width: -1; ">* and the treatment of \u2028 and \u2029 are newline characters rather</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">than merely whitespace characters. We're fixing this in ES3.1 and</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">proposing that ES4 fix this as well.</div></blockquote><div><br></div><div><br></div>That's all fine, or to be debated [2]. But the fact remains: JSON is <b>not</b> a subset of ES3 for these reasons. Let's not bend "subset" via future tense.</div><div><br></div><div><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><span class="Apple-style-span" style="-webkit-text-stroke-width: -1; ">Are there other problems?</span></div></blockquote><div><br></div>These two are enough.</div><div><br></div><div>Why is it important that JSON is a subset of ES-future-anything?</div><div><br></div><div>/be</div><div><br></div><div>[1] <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=368516#c34">https://bugzilla.mozilla.org/show_bug.cgi?id=368516#c34</a></div><div>[2] <a href="http://wiki.ecmascript.org/doku.php?id=spec:line_terminator_normalization">http://wiki.ecmascript.org/doku.php?id=spec:line_terminator_normalization</a></div></body></html>