Re: Observability of NaN distinctions — is this a concern?

Allen Wirfs-Brock allen at
Mon Mar 25 18:35:36 PDT 2013

On Mar 25, 2013, at 6:00 PM, Brendan Eich wrote:

> Right, thanks for the reminder. It all comes back now, including the "how to write correct ending-independent typed array code" bit.

Ok, so looping back to my earlier observation.  It sounds like endian-ness can be observed by writing into an Float64Array element and then reading back from a Uint8Array that is backed by the same buffer.  If there is agreement that this doesn't represent a significant interoperability hazard can we also agree that not doing NaN cannonicalization on writes to FloatXArray is an even less significant hazard and need not be mandated?


> /be
> On Mar 25, 2013, at 4:33 PM, Kenneth Russell <kbr at> wrote:
>> On Mon, Mar 25, 2013 at 4:23 PM, Brendan Eich <brendan at> wrote:
>>> Allen Wirfs-Brock wrote:
>>>> On Mar 25, 2013, at 4:05 PM, Brendan Eich wrote:
>>>>> Allen Wirfs-Brock wrote:
>>>>>> BTW, isn't cannonicalization of endian-ness for both integers and floats
>>>>>> a bigger interop issue than NaN cannonicalization?  I know this was
>>>>>> discussed in the past, but it doesn't seem to be covered in the latest
>>>>>> Khronos spec.  Was there ever a resolution as to whether or not TypedArray
>>>>>> [[Set]] operations need to use a cannonical endian-ness?
>>>>> Search for "byte order" at
>>>> I had already search for "endian" with similar results.  It says that the
>>>> default for DataViews gets/sets that do not specify a byte order is
>>>> big-endean. It doesn't say anything (that I can find) about such accesses on
>>>> TypedArray gets/sets.
>>> Oh, odd -- I recall that it used to say little-endian. Typed arrays are LE
>>> to match dominant architectures, while DataViews are BE to match packed
>>> serialization use-cases.
>>> Ken, did something get edited out?
>> No. The typed array views (everything except DataView) have used the
>> host machine's endianness from day one by design -- although the typed
>> array spec does not state this explicitly. If desired, text can be
>> added to the specification to this effect. Any change in this behavior
>> will destroy the performance of APIs like WebGL and Web Audio on
>> big-endian architectures.
>> Correctly written code works identically on big-endian and
>> little-endian architectures. See
>> for a
>> detailed description of the usage of the APIs.
>> DataView, which is designed for input/output, operates on data with a
>> specified endianness.
>> -Ken
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at
> _______________________________________________
> es-discuss mailing list
> es-discuss at

More information about the es-discuss mailing list