Fix some issues with TypedArrays
authorkeith_miller@apple.com <keith_miller@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 16 Oct 2015 21:40:21 +0000 (21:40 +0000)
committerkeith_miller@apple.com <keith_miller@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 16 Oct 2015 21:40:21 +0000 (21:40 +0000)
commitc7e8f6d327902663ec6b2cef169a3b39d1b61117
tree48b8487c62ad659d0bd6095b3f2f081ccabe671e
parent71ce4d9e133d276d29959a2728c775d16e20d8df
Fix some issues with TypedArrays
https://bugs.webkit.org/show_bug.cgi?id=150216

Reviewed by Geoffrey Garen.

This fixes a couple of issues:
1) The DFG had a separate case for creating new typedarrays in the dfg when the first argument is an object.
   Since the code for creating a Typedarray in the dfg is almost the same as the code in Baseline/LLInt
   the two cases have been merged.
2) If the length property on an object was unset then the construction could crash.
3) The TypedArray.prototype.set function and the TypedArray constructor should not call [[Get]] for the
   length of the source object when the source object is a TypedArray.
4) The conditions that were used to decide if the iterator could be skipped were incorrect.
   Instead of checking for have a bad time we should have checked the Indexing type did not allow for
   indexed accessors.

* dfg/DFGOperations.cpp:
* runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayViewWithArguments):
(JSC::constructGenericTypedArrayView):
(JSC::constructGenericTypedArrayViewWithFirstArgument): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@191212 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/dfg/DFGOperations.cpp
Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h
Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h
Source/JavaScriptCore/tests/stress/typedarray-construct-iterator.js [new file with mode: 0644]