On Feb 16, 2011, at 5:33 PM, Allen Wirfs-Brock wrote:

> On Feb 16, 2011, at 4:54 PM, David Herman wrote:
> 
>> I say: let's make it typed array in the short term, but TC39 will spec it as 
>> an array of uint32 according to the binary data spec. We will try to make 
>> the binary data spec as backwards compatible as possible with typed arrays 
>> anyway. So in the near term, implementors can use typed arrays, but when 
>> they have implementations of the full binary data spec, they can change to 
>> use those. It'll probably be a slightly backwards-incompatible change, but 
>> by keeping them relatively API-compatible, it shouldn't make too much 
>> difference in practice. Plus we can warn people that that change is coming.
> 
> Dave, most browsers other than FF4 internally box all  integers with with 
> 32-significant bits.

I'm not sure this is still true. Certainly on x64, but also on x86, NaN-boxing 
has taken over in many VMs.


> Some may box with 31 or even 30 significant bits.  So if we spec. the value 
> as a  uint32 and (they are truly random enough) then at least half and 
> possible 75% or more of the values in the array will be boxed in many 
> browsers.  Such boxing will have a much higher cost than immediate uint16 
> values.  That's why I propose 16-bit values.

Given the implementors on es-discuss, we should survey first. I'd hate to 
prematurely (de-)optimize.

I agree with David Wagner that the API has to be dead-simple, and it seems to 
me having only 16-bit values returned in a JS array may tend to result in more 
bit-mixing bugs than if we used 32-bit elements, if programmers are carelessly 
porting code that was written for uint32 arrays.

/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to