[ES2015][TypedArray] add other 8 types (#1532)
Add Uint8Array, Int16Array Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array and Uint8ClampedArray. Support the conversion between any pairs of those types. JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang zidong.jiang@intel.com
This commit is contained in:
committed by
László Langó
parent
124582793f
commit
0547b31c16
@@ -0,0 +1,29 @@
|
||||
/* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
var a = new Float32Array([0.1, -3.4, 65535.9]);
|
||||
var b = new Int16Array(a);
|
||||
var c = new Uint8Array(a);
|
||||
var d = new Int32Array(a);
|
||||
|
||||
assert(b[0] === 0);
|
||||
assert(b[1] === -3);
|
||||
assert(b[2] === -1);
|
||||
assert(c[0] === 0);
|
||||
assert(c[1] === 253);
|
||||
assert(c[2] === 255);
|
||||
assert(d[0] === 0);
|
||||
assert(d[1] === -3);
|
||||
assert(d[2] === 65535);
|
||||
@@ -0,0 +1,21 @@
|
||||
/* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
var a = new Uint8ClampedArray([1.5, 2.5, -1.5, 10000]);
|
||||
|
||||
assert(a[0] === 2);
|
||||
assert(a[1] === 2);
|
||||
assert(a[2] === 0);
|
||||
assert(a[3] === 255);
|
||||
@@ -0,0 +1,22 @@
|
||||
/* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
var a = new Float64Array(2);
|
||||
|
||||
a[0] = 0.1;
|
||||
a[1] = -2.3;
|
||||
|
||||
assert(a[0] === 0.1);
|
||||
assert(a[1] === -2.3);
|
||||
@@ -0,0 +1,22 @@
|
||||
/* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
var a = new Float32Array(2);
|
||||
|
||||
a[0] = 0.1;
|
||||
a[1] = -2.3;
|
||||
|
||||
assert(a[0] === 0.10000000149011612);
|
||||
assert(a[1] === -2.299999952316284);
|
||||
@@ -0,0 +1,24 @@
|
||||
/* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
var a = new Int16Array(3);
|
||||
|
||||
a[0] = 0xffff;
|
||||
a[1] = 0xff0001;
|
||||
a[2] = -2.3;
|
||||
|
||||
assert(a[0] === -1);
|
||||
assert(a[1] === 1);
|
||||
assert(a[2] === -2);
|
||||
@@ -0,0 +1,24 @@
|
||||
/* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
var a = new Int32Array(3);
|
||||
|
||||
a[0] = 0xffffffff;
|
||||
a[1] = 0xff00000001;
|
||||
a[2] = -2.3;
|
||||
|
||||
assert(a[0] === -1);
|
||||
assert(a[1] === 1);
|
||||
assert(a[2] === -2);
|
||||
@@ -0,0 +1,24 @@
|
||||
/* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
var a = new Int8Array(3);
|
||||
|
||||
a[0] = 0xff;
|
||||
a[1] = 0xff01;
|
||||
a[2] = -2.3;
|
||||
|
||||
assert(a[0] === -1);
|
||||
assert(a[1] === 1);
|
||||
assert(a[2] === -2);
|
||||
@@ -0,0 +1,22 @@
|
||||
/* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
var a = new Uint32Array(2);
|
||||
|
||||
a[0] = 0x123456789A;
|
||||
a[1] = -2.3;
|
||||
|
||||
assert(a[0] === 0x3456789A);
|
||||
assert(a[1] === 4294967294); // 0x100000000 - 2
|
||||
@@ -0,0 +1,22 @@
|
||||
/* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
var a = new Uint16Array(2);
|
||||
|
||||
a[0] = 0x123456789A;
|
||||
a[1] = -2.3;
|
||||
|
||||
assert(a[0] === 0x789A);
|
||||
assert(a[1] === 65534); // 0x10000 - 2
|
||||
@@ -0,0 +1,22 @@
|
||||
/* Copyright JS Foundation and other contributors, http://js.foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
var a = new Uint8Array(2);
|
||||
|
||||
a[0] = 0x123456789A;
|
||||
a[1] = -2.3;
|
||||
|
||||
assert(a[0] === 0x9A);
|
||||
assert(a[1] === 254); // 0x100 - 2
|
||||
@@ -14,3 +14,12 @@
|
||||
*/
|
||||
|
||||
assert(Int8Array.BYTES_PER_ELEMENT === 1);
|
||||
assert(Uint8Array.BYTES_PER_ELEMENT === 1);
|
||||
assert(Uint8ClampedArray.BYTES_PER_ELEMENT === 1);
|
||||
assert(Int16Array.BYTES_PER_ELEMENT === 2);
|
||||
assert(Uint16Array.BYTES_PER_ELEMENT === 2);
|
||||
assert(Int32Array.BYTES_PER_ELEMENT === 4);
|
||||
assert(Uint32Array.BYTES_PER_ELEMENT === 4);
|
||||
assert(Float32Array.BYTES_PER_ELEMENT === 4);
|
||||
assert(Float64Array.BYTES_PER_ELEMENT === 8);
|
||||
|
||||
|
||||
@@ -14,3 +14,11 @@
|
||||
*/
|
||||
|
||||
assert(Int8Array.prototype.BYTES_PER_ELEMENT === 1);
|
||||
assert(Uint8Array.prototype.BYTES_PER_ELEMENT === 1);
|
||||
assert(Uint8ClampedArray.prototype.BYTES_PER_ELEMENT === 1);
|
||||
assert(Int16Array.prototype.BYTES_PER_ELEMENT === 2);
|
||||
assert(Uint16Array.prototype.BYTES_PER_ELEMENT === 2);
|
||||
assert(Int32Array.prototype.BYTES_PER_ELEMENT === 4);
|
||||
assert(Uint32Array.prototype.BYTES_PER_ELEMENT === 4);
|
||||
assert(Float32Array.prototype.BYTES_PER_ELEMENT === 4);
|
||||
assert(Float64Array.prototype.BYTES_PER_ELEMENT === 8);
|
||||
|
||||
Reference in New Issue
Block a user