The spec (http://www.khronos.org/registry/typedarray/specs/latest/) says "Constructors: None”, looks like FireFox is right, we should probably just remove this.
G. On Aug 14, 2013, at 12:34 AM, Filip Pizlo <fpi...@apple.com> wrote: > And on a similar note: ArrayBufferView. What's that all about? > > Previously, WebKit had ArrayBufferView as a prototype and constructor that > wasn't instantiable, allowing for things like: > > (new Int8Array() instanceof ArrayBufferView) === true > > but not: > > new ArrayBufferView() // error! > > Firefox has no notion of ArrayBufferView. I.e. you get a reference error if > you mention it. I tend to think that having ArrayBufferView as a JS-visible > concept is strange. > > -Filip > > > On Aug 14, 2013, at 12:31 AM, Jochen Eisinger <joc...@chromium.org> wrote: > >> Adding Dmitry who recently updated the V8/blink implementation. >> >> -jochen >> >> >> On Wed, Aug 14, 2013 at 9:19 AM, Filip Pizlo <fpi...@apple.com> wrote: >> What WebKit previously did: Uint8ClampedArray is a subtype of Uint8Array, >> i.e. Uint8ClampedArray.prototype.__proto__ === Uint8Array.prototype. >> >> I believe that Chrome still does what WebKit does. >> >> What Firefox does: Uint8ClampedArray is not a subtype of Uint8Array, i.e. >> Uint8ClampedArray.prototype.__proto__ === Object.prototype. >> >> What http://www.khronos.org/registry/typedarray/specs/latest/ says: >> Uint8ClampedArray implements ArrayBufferView; but that says nothing about >> its subtype relationship, or lack thereof, with Uint8Array. >> >> I prefer the Firefox semantics. Any objections? >> >> -Filip >> >> >> On Aug 13, 2013, at 11:19 AM, Filip Pizlo <fpi...@apple.com> wrote: >> >>> Hi everyone! >>> >>> For the past week or so I've been working on making typed arrays faster, >>> use less memory, and GC better. It involves moving typed arrays entirely >>> into JSC, and rewriting them so that they benefit from JSC object model >>> optimizations. >>> >>> Link: https://bugs.webkit.org/show_bug.cgi?id=119064 >>> >>> The short story is, if you're not on the Mac port, then I'll try to do my >>> best to make things work but I'm probably going to make some mistakes. I'm >>> probably about 48 hours away from landing this and I'll try to make myself >>> available to fix any fall-out. The things I'm most likely to get wrong >>> are: ensuring that the various code generators work on all build systems; >>> ensuring that the ~20-some files I've added and the ~20-sime files I've >>> deleted, are actually added/deleted correctly on all builds; and making >>> sure that some of the crazy template hacks that I've used work on all >>> compilers. >>> >>> Why this is all worth it: >>> >>> It makes typed arrays faster: you can now allocate typed arrays up to 8x >>> faster if they're small, and up to 6x faster if they're big. Neutering no >>> longer requires walking all worlds. Wrapping and unwrapping an array buffer >>> no longer requires hash look-ups for the normal world. And some other >>> stuff, too. >>> >>> It makes typed arrays use less memory: previously a typed array could use >>> as many as 7 objects for each allocation; at best you'd get 5 (JS array >>> buffer view wrapper, native array buffer view wrapper, weak handle to link >>> the two, native array buffer, native array buffer contents). Now, it takes >>> just 2 objects in the common case (JS array buffer view and a copy-space >>> backing store) and 3 in the case of large ones (JS array buffer view, weak >>> handle for a finalizer, and a malloc'd backing store). You'll still get >>> all of the crazy objects - at most 6 of them - if you use the full power of >>> typed array APIs. With all of this in place, a typed array carries only 32 >>> bytes of overhead on 64-bit systems and 20 bytes of overhead on 32-bit >>> systems. It was *a lot* more than that before. >>> >>> It makes typed arrays manage memory properly: previously the GC didn't know >>> that typed arrays use memory. So, although the GC could free the memory >>> that typed arrays used, it wouldn't kick in properly in some cases. See >>> https://bugs.webkit.org/show_bug.cgi?id=119049 and >>> https://bugs.webkit.org/show_bug.cgi?id=114824. This patch fixes these >>> issues comprehensively. >>> >>> It makes the code more hackable: previously any attempt to optimize any >>> typed array hack required grappling with binding code generation, layering >>> violations that exposed the typed arrays to JSC JITs despite not being >>> defined in JSC, and a grab-back of helper code that the bindings magically >>> invoked. There was a lot of duplicated code to deal with the various types >>> of typed arrays. Now, typed arrays are all templatized; you usually only >>> write a piece of code once thanks to the wonders of template polymorphism. >>> >>> This also fixes a bunch of semantics issues, with how typed array fields >>> work in JS and when/where exceptions ought to be thrown. In this regard, >>> I'm basically attempting to match Firefox behavior since that's where the >>> standards appear to be going. >>> >>> I hope that I get all of this to work on all platforms on the first try. >>> If I don't, I apologize in advance, and I'll try to be around to help the >>> fall-out. >>> >>> -Filip_______________________________________________ >>> webkit-dev mailing list >>> webkit-dev@lists.webkit.org >>> https://lists.webkit.org/mailman/listinfo/webkit-dev >> >> >> _______________________________________________ >> webkit-dev mailing list >> webkit-dev@lists.webkit.org >> https://lists.webkit.org/mailman/listinfo/webkit-dev > > _______________________________________________ > webkit-dev mailing list > webkit-dev@lists.webkit.org > https://lists.webkit.org/mailman/listinfo/webkit-dev
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev