[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
+14
-11
@@ -51,6 +51,7 @@ set(INCLUDE_CORE
|
|||||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/base"
|
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/base"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/builtin-objects"
|
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/builtin-objects"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/builtin-objects/typedarray"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/operations"
|
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/operations"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/jcontext"
|
"${CMAKE_CURRENT_SOURCE_DIR}/jcontext"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/jmem"
|
"${CMAKE_CURRENT_SOURCE_DIR}/jmem"
|
||||||
@@ -62,22 +63,24 @@ set(INCLUDE_CORE
|
|||||||
|
|
||||||
# Sources
|
# Sources
|
||||||
# Jerry core
|
# Jerry core
|
||||||
file(GLOB SOURCE_CORE_API *.c)
|
file(GLOB SOURCE_CORE_API *.c)
|
||||||
file(GLOB SOURCE_CORE_ECMA_BASE ecma/base/*.c)
|
file(GLOB SOURCE_CORE_ECMA_BASE ecma/base/*.c)
|
||||||
file(GLOB SOURCE_CORE_ECMA_BUILTINS ecma/builtin-objects/*.c)
|
file(GLOB SOURCE_CORE_ECMA_BUILTINS ecma/builtin-objects/*.c)
|
||||||
file(GLOB SOURCE_CORE_ECMA_OPERATIONS ecma/operations/*.c)
|
file(GLOB SOURCE_CORE_ECMA_BUILTINS_TYPEDARRAY ecma/builtin-objects/typedarray/*.c)
|
||||||
file(GLOB SOURCE_CORE_JCONTEXT jcontext/*.c)
|
file(GLOB SOURCE_CORE_ECMA_OPERATIONS ecma/operations/*.c)
|
||||||
file(GLOB SOURCE_CORE_JMEM jmem/*.c)
|
file(GLOB SOURCE_CORE_JCONTEXT jcontext/*.c)
|
||||||
file(GLOB SOURCE_CORE_JRT jrt/*.c)
|
file(GLOB SOURCE_CORE_JMEM jmem/*.c)
|
||||||
file(GLOB SOURCE_CORE_LIT lit/*.c)
|
file(GLOB SOURCE_CORE_JRT jrt/*.c)
|
||||||
file(GLOB SOURCE_CORE_PARSER_JS parser/js/*.c)
|
file(GLOB SOURCE_CORE_LIT lit/*.c)
|
||||||
file(GLOB SOURCE_CORE_PARSER_REGEXP parser/regexp/*.c)
|
file(GLOB SOURCE_CORE_PARSER_JS parser/js/*.c)
|
||||||
file(GLOB SOURCE_CORE_VM vm/*.c)
|
file(GLOB SOURCE_CORE_PARSER_REGEXP parser/regexp/*.c)
|
||||||
|
file(GLOB SOURCE_CORE_VM vm/*.c)
|
||||||
|
|
||||||
set(SOURCE_CORE_FILES
|
set(SOURCE_CORE_FILES
|
||||||
${SOURCE_CORE_API}
|
${SOURCE_CORE_API}
|
||||||
${SOURCE_CORE_ECMA_BASE}
|
${SOURCE_CORE_ECMA_BASE}
|
||||||
${SOURCE_CORE_ECMA_BUILTINS}
|
${SOURCE_CORE_ECMA_BUILTINS}
|
||||||
|
${SOURCE_CORE_ECMA_BUILTINS_TYPEDARRAY}
|
||||||
${SOURCE_CORE_ECMA_OPERATIONS}
|
${SOURCE_CORE_ECMA_OPERATIONS}
|
||||||
${SOURCE_CORE_JCONTEXT}
|
${SOURCE_CORE_JCONTEXT}
|
||||||
${SOURCE_CORE_JMEM}
|
${SOURCE_CORE_JMEM}
|
||||||
|
|||||||
@@ -170,6 +170,41 @@ OBJECT_VALUE (LIT_MAGIC_STRING_ARRAY_BUFFER_UL,
|
|||||||
OBJECT_VALUE (LIT_MAGIC_STRING_INT8_ARRAY_UL,
|
OBJECT_VALUE (LIT_MAGIC_STRING_INT8_ARRAY_UL,
|
||||||
ECMA_BUILTIN_ID_INT8ARRAY,
|
ECMA_BUILTIN_ID_INT8ARRAY,
|
||||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_UINT8_ARRAY_UL,
|
||||||
|
ECMA_BUILTIN_ID_UINT8ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_INT16_ARRAY_UL,
|
||||||
|
ECMA_BUILTIN_ID_INT16ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_UINT16_ARRAY_UL,
|
||||||
|
ECMA_BUILTIN_ID_UINT16ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_INT32_ARRAY_UL,
|
||||||
|
ECMA_BUILTIN_ID_INT32ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_UINT32_ARRAY_UL,
|
||||||
|
ECMA_BUILTIN_ID_UINT32ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_FLOAT32_ARRAY_UL,
|
||||||
|
ECMA_BUILTIN_ID_FLOAT32ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
#if CONFIG_ECMA_NUMBER_TYPE == CONFIG_ECMA_NUMBER_FLOAT64
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_FLOAT64_ARRAY_UL,
|
||||||
|
ECMA_BUILTIN_ID_FLOAT64ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
#endif /* CONFIG_ECMA_NUMBER_TYPE == CONFIG_ECMA_NUMBER_FLOAT64 */
|
||||||
|
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_UINT8_CLAMPED_ARRAY_UL,
|
||||||
|
ECMA_BUILTIN_ID_UINT8CLAMPEDARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
#endif /* !CONFIG_DISABLE_ARRAYBUFFER_BUILTIN */
|
#endif /* !CONFIG_DISABLE_ARRAYBUFFER_BUILTIN */
|
||||||
/* Routine properties:
|
/* Routine properties:
|
||||||
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
||||||
|
|||||||
@@ -82,9 +82,9 @@ ecma_builtin_helper_object_to_string (const ecma_value_t this_arg) /**< this arg
|
|||||||
|
|
||||||
/* Building string "[object #type#]" where type is 'Undefined',
|
/* Building string "[object #type#]" where type is 'Undefined',
|
||||||
'Null' or one of possible object's classes.
|
'Null' or one of possible object's classes.
|
||||||
The string with null character is maximum 19 characters long. */
|
The string with null character is maximum 27 characters long. */
|
||||||
const lit_utf8_size_t buffer_size = 19;
|
const lit_utf8_size_t buffer_size = 27;
|
||||||
JMEM_DEFINE_LOCAL_ARRAY (str_buffer, buffer_size, lit_utf8_byte_t);
|
lit_utf8_byte_t str_buffer[buffer_size];
|
||||||
|
|
||||||
lit_utf8_byte_t *buffer_ptr = str_buffer;
|
lit_utf8_byte_t *buffer_ptr = str_buffer;
|
||||||
|
|
||||||
@@ -106,8 +106,6 @@ ecma_builtin_helper_object_to_string (const ecma_value_t this_arg) /**< this arg
|
|||||||
|
|
||||||
ret_string_p = ecma_new_ecma_string_from_utf8 (str_buffer, (lit_utf8_size_t) (buffer_ptr - str_buffer));
|
ret_string_p = ecma_new_ecma_string_from_utf8 (str_buffer, (lit_utf8_size_t) (buffer_ptr - str_buffer));
|
||||||
|
|
||||||
JMEM_FINALIZE_LOCAL_ARRAY (str_buffer);
|
|
||||||
|
|
||||||
return ecma_make_string_value (ret_string_p);
|
return ecma_make_string_value (ret_string_p);
|
||||||
} /* ecma_builtin_helper_object_to_string */
|
} /* ecma_builtin_helper_object_to_string */
|
||||||
|
|
||||||
|
|||||||
@@ -349,6 +349,120 @@ BUILTIN (ECMA_BUILTIN_ID_INT8ARRAY,
|
|||||||
true,
|
true,
|
||||||
int8array)
|
int8array)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_UINT8ARRAY_PROTOTYPE,
|
||||||
|
ECMA_OBJECT_TYPE_GENERAL,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
uint8array_prototype)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_UINT8ARRAY,
|
||||||
|
ECMA_OBJECT_TYPE_FUNCTION,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
uint8array)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_INT16ARRAY_PROTOTYPE,
|
||||||
|
ECMA_OBJECT_TYPE_GENERAL,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
int16array_prototype)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_INT16ARRAY,
|
||||||
|
ECMA_OBJECT_TYPE_FUNCTION,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
int16array)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_UINT16ARRAY_PROTOTYPE,
|
||||||
|
ECMA_OBJECT_TYPE_GENERAL,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
uint16array_prototype)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_UINT16ARRAY,
|
||||||
|
ECMA_OBJECT_TYPE_FUNCTION,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
uint16array)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_INT32ARRAY_PROTOTYPE,
|
||||||
|
ECMA_OBJECT_TYPE_GENERAL,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
int32array_prototype)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_INT32ARRAY,
|
||||||
|
ECMA_OBJECT_TYPE_FUNCTION,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
int32array)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_UINT32ARRAY_PROTOTYPE,
|
||||||
|
ECMA_OBJECT_TYPE_GENERAL,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
uint32array_prototype)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_UINT32ARRAY,
|
||||||
|
ECMA_OBJECT_TYPE_FUNCTION,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
uint32array)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_FLOAT32ARRAY_PROTOTYPE,
|
||||||
|
ECMA_OBJECT_TYPE_GENERAL,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
float32array_prototype)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_FLOAT32ARRAY,
|
||||||
|
ECMA_OBJECT_TYPE_FUNCTION,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
float32array)
|
||||||
|
|
||||||
|
#if CONFIG_ECMA_NUMBER_TYPE == CONFIG_ECMA_NUMBER_FLOAT64
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_FLOAT64ARRAY_PROTOTYPE,
|
||||||
|
ECMA_OBJECT_TYPE_GENERAL,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
float64array_prototype)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_FLOAT64ARRAY,
|
||||||
|
ECMA_OBJECT_TYPE_FUNCTION,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
float64array)
|
||||||
|
#endif /* CONFIG_ECMA_NUMBER_TYPE == CONFIG_ECMA_NUMBER_FLOAT64 */
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_UINT8CLAMPEDARRAY_PROTOTYPE,
|
||||||
|
ECMA_OBJECT_TYPE_GENERAL,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
uint8clampedarray_prototype)
|
||||||
|
|
||||||
|
BUILTIN (ECMA_BUILTIN_ID_UINT8CLAMPEDARRAY,
|
||||||
|
ECMA_OBJECT_TYPE_FUNCTION,
|
||||||
|
ECMA_BUILTIN_ID_TYPEDARRAY,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
uint8clampedarray)
|
||||||
|
|
||||||
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
|
|
||||||
/* The Global object (15.1) */
|
/* The Global object (15.1) */
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-float32array-prototype.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID float32array_prototype
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup float32arrayprototype ECMA Float32Array.prototype object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Float32Array prototype description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.3.4 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||||
|
ECMA_BUILTIN_ID_FLOAT32ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
/* ES2015 22.2.6.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
4,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
#include "ecma-exceptions.h"
|
||||||
|
#include "ecma-gc.h"
|
||||||
|
#include "ecma-globals.h"
|
||||||
|
#include "ecma-helpers.h"
|
||||||
|
#include "ecma-typedarray-object.h"
|
||||||
|
#include "jrt.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-float32array.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID float32array
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup float32array ECMA Float32Array object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Call]] of Float32Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_float32array_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
return ecma_raise_type_error (ECMA_ERR_MSG ("Float32Array cannot be directly called"));
|
||||||
|
} /* ecma_builtin_float32array_dispatch_call */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Construct]] of Float32Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_float32array_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_FLOAT32ARRAY_PROTOTYPE);
|
||||||
|
ecma_value_t val = ecma_op_create_typedarray (arguments_list_p,
|
||||||
|
arguments_list_len,
|
||||||
|
prototype_obj_p,
|
||||||
|
2,
|
||||||
|
LIT_MAGIC_STRING_FLOAT32_ARRAY_UL);
|
||||||
|
|
||||||
|
ecma_deref_object (prototype_obj_p);
|
||||||
|
|
||||||
|
return val;
|
||||||
|
} /* ecma_builtin_float32array_dispatch_construct */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Float32Array description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
4,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_FLOAT32_ARRAY_UL,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.2 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||||
|
ECMA_BUILTIN_ID_FLOAT32ARRAY_PROTOTYPE,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
#if CONFIG_ECMA_NUMBER_TYPE == CONFIG_ECMA_NUMBER_FLOAT64
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-float64array-prototype.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID float64array_prototype
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup float64arrayprototype ECMA Float64Array.prototype object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
#endif /* CONFIG_ECMA_NUMBER_TYPE == CONFIG_ECMA_NUMBER_FLOAT64 */
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Float64Array prototype description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.3.4 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||||
|
ECMA_BUILTIN_ID_FLOAT64ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
/* ES2015 22.2.6.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
8,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
#include "ecma-exceptions.h"
|
||||||
|
#include "ecma-gc.h"
|
||||||
|
#include "ecma-globals.h"
|
||||||
|
#include "ecma-helpers.h"
|
||||||
|
#include "ecma-typedarray-object.h"
|
||||||
|
#include "jrt.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
#if CONFIG_ECMA_NUMBER_TYPE == CONFIG_ECMA_NUMBER_FLOAT64
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-float64array.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID float64array
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup float64array ECMA Float64Array object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Call]] of Float64Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_float64array_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
return ecma_raise_type_error (ECMA_ERR_MSG ("Float64Array cannot be directly called"));
|
||||||
|
} /* ecma_builtin_float64array_dispatch_call */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Construct]] of Float64Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_float64array_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_FLOAT64ARRAY_PROTOTYPE);
|
||||||
|
ecma_value_t val = ecma_op_create_typedarray (arguments_list_p,
|
||||||
|
arguments_list_len,
|
||||||
|
prototype_obj_p,
|
||||||
|
3,
|
||||||
|
LIT_MAGIC_STRING_FLOAT64_ARRAY_UL);
|
||||||
|
|
||||||
|
ecma_deref_object (prototype_obj_p);
|
||||||
|
|
||||||
|
return val;
|
||||||
|
} /* ecma_builtin_float64array_dispatch_construct */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* CONFIG_ECMA_NUMBER_TYPE == CONFIG_ECMA_NUMBER_FLOAT64 */
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Float64Array description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
8,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_FLOAT64_ARRAY_UL,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.2 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||||
|
ECMA_BUILTIN_ID_FLOAT64ARRAY_PROTOTYPE,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-int16array-prototype.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID int16array_prototype
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup int16arrayprototype ECMA Int16Array.prototype object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Int16Array prototype description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.3.4 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||||
|
ECMA_BUILTIN_ID_INT16ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
/* ES2015 22.2.6.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
2,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
#include "ecma-exceptions.h"
|
||||||
|
#include "ecma-gc.h"
|
||||||
|
#include "ecma-globals.h"
|
||||||
|
#include "ecma-helpers.h"
|
||||||
|
#include "ecma-typedarray-object.h"
|
||||||
|
#include "jrt.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-int16array.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID int16array
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup int64array ECMA Int16Array object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Call]] of Int16Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_int16array_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
return ecma_raise_type_error (ECMA_ERR_MSG ("Int16Array cannot be directly called"));
|
||||||
|
} /* ecma_builtin_int16array_dispatch_call */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Construct]] of Int16Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_int16array_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_INT16ARRAY_PROTOTYPE);
|
||||||
|
ecma_value_t val = ecma_op_create_typedarray (arguments_list_p,
|
||||||
|
arguments_list_len,
|
||||||
|
prototype_obj_p,
|
||||||
|
1,
|
||||||
|
LIT_MAGIC_STRING_INT16_ARRAY_UL);
|
||||||
|
|
||||||
|
ecma_deref_object (prototype_obj_p);
|
||||||
|
|
||||||
|
return val;
|
||||||
|
} /* ecma_builtin_int16array_dispatch_construct */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Int16Array description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
2,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_INT16_ARRAY_UL,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.2 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||||
|
ECMA_BUILTIN_ID_INT16ARRAY_PROTOTYPE,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-int32array-prototype.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID int32array_prototype
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup int32arrayprototype ECMA Int32Array.prototype object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Int32Array prototype description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.3.4 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||||
|
ECMA_BUILTIN_ID_INT32ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
/* ES2015 22.2.6.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
4,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
#include "ecma-exceptions.h"
|
||||||
|
#include "ecma-gc.h"
|
||||||
|
#include "ecma-globals.h"
|
||||||
|
#include "ecma-helpers.h"
|
||||||
|
#include "ecma-typedarray-object.h"
|
||||||
|
#include "jrt.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-int32array.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID int32array
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup int32array ECMA Int32Array object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Call]] of Int32Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_int32array_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
return ecma_raise_type_error (ECMA_ERR_MSG ("Int32Array cannot be directly called"));
|
||||||
|
} /* ecma_builtin_int32array_dispatch_call */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Construct]] of Int32Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_int32array_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_INT32ARRAY_PROTOTYPE);
|
||||||
|
ecma_value_t val = ecma_op_create_typedarray (arguments_list_p,
|
||||||
|
arguments_list_len,
|
||||||
|
prototype_obj_p,
|
||||||
|
2,
|
||||||
|
LIT_MAGIC_STRING_INT32_ARRAY_UL);
|
||||||
|
|
||||||
|
ecma_deref_object (prototype_obj_p);
|
||||||
|
|
||||||
|
return val;
|
||||||
|
} /* ecma_builtin_int32array_dispatch_construct */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Int32Array description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
4,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_INT32_ARRAY_UL,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.2 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||||
|
ECMA_BUILTIN_ID_INT32ARRAY_PROTOTYPE,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
+1
-1
@@ -30,7 +30,7 @@
|
|||||||
* \addtogroup ecmabuiltins
|
* \addtogroup ecmabuiltins
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
* \addtogroup int8array prototype ECMA Int8Array.prototype object built-in
|
* \addtogroup int8arrayprototype ECMA Int8Array.prototype object built-in
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
+8
-8
@@ -36,16 +36,13 @@
|
|||||||
* \addtogroup ecmabuiltins
|
* \addtogroup ecmabuiltins
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
* \addtogroup string ECMA Int8Array object built-in
|
* \addtogroup int8array ECMA Int8Array object built-in
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle calling [[Call]] of Int8Array
|
* Handle calling [[Call]] of Int8Array
|
||||||
*
|
*
|
||||||
* ES2015 22.2.4 The TypedArray constructors are not intended
|
|
||||||
* to be called as a function and will throw an exception when called in that manner.
|
|
||||||
*
|
|
||||||
* @return ecma value
|
* @return ecma value
|
||||||
*/
|
*/
|
||||||
ecma_value_t
|
ecma_value_t
|
||||||
@@ -58,10 +55,7 @@ ecma_builtin_int8array_dispatch_call (const ecma_value_t *arguments_list_p, /**<
|
|||||||
} /* ecma_builtin_int8array_dispatch_call */
|
} /* ecma_builtin_int8array_dispatch_call */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle calling [[Construct]] of built-in %TypedArray% object
|
* Handle calling [[Construct]] of Int8Array
|
||||||
*
|
|
||||||
* ES2015 22.2.1 If %TypedArray% is directly called or
|
|
||||||
* called as part of a new expression an exception is thrown
|
|
||||||
*
|
*
|
||||||
* @return ecma value
|
* @return ecma value
|
||||||
*/
|
*/
|
||||||
@@ -83,4 +77,10 @@ ecma_builtin_int8array_dispatch_construct (const ecma_value_t *arguments_list_p,
|
|||||||
return val;
|
return val;
|
||||||
} /* ecma_builtin_int8array_dispatch_construct */
|
} /* ecma_builtin_int8array_dispatch_construct */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
+1
-1
@@ -40,7 +40,7 @@
|
|||||||
* \addtogroup ecmabuiltins
|
* \addtogroup ecmabuiltins
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
* \addtogroup typedarray prototype ECMA %TypedArray%.prototype object built-in
|
* \addtogroup typedarrayprototype ECMA %TypedArray%.prototype object built-in
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
+7
-1
@@ -37,7 +37,7 @@
|
|||||||
* \addtogroup ecmabuiltins
|
* \addtogroup ecmabuiltins
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
* \addtogroup string ECMA %TypedArray% object built-in
|
* \addtogroup typedarray ECMA %TypedArray% object built-in
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -121,4 +121,10 @@ ecma_builtin_typedarray_dispatch_construct (const ecma_value_t *arguments_list_p
|
|||||||
return ecma_raise_type_error (ECMA_ERR_MSG ("TypedArray intrinstic cannot be called by a 'new' expression"));
|
return ecma_raise_type_error (ECMA_ERR_MSG ("TypedArray intrinstic cannot be called by a 'new' expression"));
|
||||||
} /* ecma_builtin_typedarray_dispatch_construct */
|
} /* ecma_builtin_typedarray_dispatch_construct */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-uint16array-prototype.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID uint16array_prototype
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup uint16arrayprototype ECMA Uint16Array.prototype object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Uint16Array prototype description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.3.4 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||||
|
ECMA_BUILTIN_ID_UINT16ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
/* ES2015 22.2.6.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
2,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
#include "ecma-exceptions.h"
|
||||||
|
#include "ecma-gc.h"
|
||||||
|
#include "ecma-globals.h"
|
||||||
|
#include "ecma-helpers.h"
|
||||||
|
#include "ecma-typedarray-object.h"
|
||||||
|
#include "jrt.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-uint16array.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID uint16array
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup uint16array ECMA Uint16Array object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Call]] of Uint16Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_uint16array_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
return ecma_raise_type_error (ECMA_ERR_MSG ("Uint16Array cannot be directly called"));
|
||||||
|
} /* ecma_builtin_uint16array_dispatch_call */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Construct]] of Uint16Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_uint16array_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_UINT16ARRAY_PROTOTYPE);
|
||||||
|
ecma_value_t val = ecma_op_create_typedarray (arguments_list_p,
|
||||||
|
arguments_list_len,
|
||||||
|
prototype_obj_p,
|
||||||
|
1,
|
||||||
|
LIT_MAGIC_STRING_UINT16_ARRAY_UL);
|
||||||
|
|
||||||
|
ecma_deref_object (prototype_obj_p);
|
||||||
|
|
||||||
|
return val;
|
||||||
|
} /* ecma_builtin_uint16array_dispatch_construct */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Uint16Array description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
2,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_UINT16_ARRAY_UL,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.2 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||||
|
ECMA_BUILTIN_ID_UINT16ARRAY_PROTOTYPE,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-uint32array-prototype.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID uint32array_prototype
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup uint32arrayprototype ECMA Uint32Array.prototype object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Uint32Array prototype description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.3.4 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||||
|
ECMA_BUILTIN_ID_UINT32ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
/* ES2015 22.2.6.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
4,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
#include "ecma-exceptions.h"
|
||||||
|
#include "ecma-gc.h"
|
||||||
|
#include "ecma-globals.h"
|
||||||
|
#include "ecma-helpers.h"
|
||||||
|
#include "ecma-typedarray-object.h"
|
||||||
|
#include "jrt.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-uint32array.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID uint32array
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup uint32array ECMA Uint32Array object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Call]] of Uint32Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_uint32array_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
return ecma_raise_type_error (ECMA_ERR_MSG ("Uint32Array cannot be directly called"));
|
||||||
|
} /* ecma_builtin_uint32array_dispatch_call */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Construct]] of Uint32Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_uint32array_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_UINT32ARRAY_PROTOTYPE);
|
||||||
|
ecma_value_t val = ecma_op_create_typedarray (arguments_list_p,
|
||||||
|
arguments_list_len,
|
||||||
|
prototype_obj_p,
|
||||||
|
2,
|
||||||
|
LIT_MAGIC_STRING_UINT32_ARRAY_UL);
|
||||||
|
|
||||||
|
ecma_deref_object (prototype_obj_p);
|
||||||
|
|
||||||
|
return val;
|
||||||
|
} /* ecma_builtin_uint32array_dispatch_construct */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Uint32Array description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
4,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_UINT32_ARRAY_UL,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.2 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||||
|
ECMA_BUILTIN_ID_UINT32ARRAY_PROTOTYPE,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-uint8array-prototype.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID uint8array_prototype
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup uint8arrayprototype ECMA Uint8Array.prototype object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Uint8Array prototype description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.3.4 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||||
|
ECMA_BUILTIN_ID_UINT8ARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
/* ES2015 22.2.6.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
1,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
#include "ecma-exceptions.h"
|
||||||
|
#include "ecma-gc.h"
|
||||||
|
#include "ecma-globals.h"
|
||||||
|
#include "ecma-helpers.h"
|
||||||
|
#include "ecma-typedarray-object.h"
|
||||||
|
#include "jrt.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-uint8array.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID uint8array
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup uint8array ECMA Uint8Array object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Call]] of Uint8Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_uint8array_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
return ecma_raise_type_error (ECMA_ERR_MSG ("Uint8Array cannot be directly called"));
|
||||||
|
} /* ecma_builtin_uint8array_dispatch_call */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Construct]] of Uint8Array
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_uint8array_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_UINT8ARRAY_PROTOTYPE);
|
||||||
|
ecma_value_t val = ecma_op_create_typedarray (arguments_list_p,
|
||||||
|
arguments_list_len,
|
||||||
|
prototype_obj_p,
|
||||||
|
0,
|
||||||
|
LIT_MAGIC_STRING_UINT8_ARRAY_UL);
|
||||||
|
|
||||||
|
ecma_deref_object (prototype_obj_p);
|
||||||
|
|
||||||
|
return val;
|
||||||
|
} /* ecma_builtin_uint8array_dispatch_construct */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Uint8Array description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
1,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_UINT8_ARRAY_UL,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.2 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||||
|
ECMA_BUILTIN_ID_UINT8ARRAY_PROTOTYPE,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-uint8clampedarray-prototype.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID uint8clampedarray_prototype
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup uint8clampedarrayprototype ECMA Uint8ClampedArray.prototype object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
+51
@@ -0,0 +1,51 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Uint8ClampedArray prototype description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.3.4 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||||
|
ECMA_BUILTIN_ID_UINT8CLAMPEDARRAY,
|
||||||
|
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||||
|
|
||||||
|
/* ES2015 22.2.6.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
1,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecma-builtins.h"
|
||||||
|
#include "ecma-exceptions.h"
|
||||||
|
#include "ecma-gc.h"
|
||||||
|
#include "ecma-globals.h"
|
||||||
|
#include "ecma-helpers.h"
|
||||||
|
#include "ecma-typedarray-object.h"
|
||||||
|
#include "jrt.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_TYPEDARRAY_BUILTIN
|
||||||
|
|
||||||
|
#define ECMA_BUILTINS_INTERNAL
|
||||||
|
#include "ecma-builtins-internal.h"
|
||||||
|
|
||||||
|
#define BUILTIN_INC_HEADER_NAME "ecma-builtin-uint8clampedarray.inc.h"
|
||||||
|
#define BUILTIN_UNDERSCORED_ID uint8clampedarray
|
||||||
|
#include "ecma-builtin-internal-routines-template.inc.h"
|
||||||
|
|
||||||
|
/** \addtogroup ecma ECMA
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup ecmabuiltins
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \addtogroup uint8clampedarray ECMA Uint8ClampedArray object built-in
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Call]] of Uint8ClampedArray
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_uint8clampedarray_dispatch_call (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
return ecma_raise_type_error (ECMA_ERR_MSG ("Uint8ClampedArray cannot be directly called"));
|
||||||
|
} /* ecma_builtin_uint8clampedarray_dispatch_call */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle calling [[Construct]] of Uint8ClampedArray
|
||||||
|
*
|
||||||
|
* @return ecma value
|
||||||
|
*/
|
||||||
|
ecma_value_t
|
||||||
|
ecma_builtin_uint8clampedarray_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */
|
||||||
|
ecma_length_t arguments_list_len) /**< number of arguments */
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL);
|
||||||
|
|
||||||
|
ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_UINT8CLAMPEDARRAY_PROTOTYPE);
|
||||||
|
ecma_value_t val = ecma_op_create_typedarray (arguments_list_p,
|
||||||
|
arguments_list_len,
|
||||||
|
prototype_obj_p,
|
||||||
|
0,
|
||||||
|
LIT_MAGIC_STRING_UINT8_CLAMPED_ARRAY_UL);
|
||||||
|
|
||||||
|
ecma_deref_object (prototype_obj_p);
|
||||||
|
|
||||||
|
return val;
|
||||||
|
} /* ecma_builtin_uint8clampedarray_dispatch_construct */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* !CONFIG_DISABLE_TYPEDARRAY_BUILTIN */
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Uint8ClampedArray description
|
||||||
|
*/
|
||||||
|
#ifndef NUMBER_VALUE
|
||||||
|
# define NUMBER_VALUE(name, number_value, prop_attributes)
|
||||||
|
#endif /* !NUMBER_VALUE */
|
||||||
|
|
||||||
|
#ifndef STRING_VALUE
|
||||||
|
# define STRING_VALUE(name, magic_string_id, prop_attributes)
|
||||||
|
#endif /* !STRING_VALUE */
|
||||||
|
|
||||||
|
#ifndef OBJECT_VALUE
|
||||||
|
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
|
||||||
|
#endif /* !OBJECT_VALUE */
|
||||||
|
|
||||||
|
#ifndef ROUTINE
|
||||||
|
# define ROUTINE(name, c_function_name, args_number, length_prop_value)
|
||||||
|
#endif /* !ROUTINE */
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.1 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U,
|
||||||
|
1,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||||
|
3,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5 */
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_UINT8_CLAMPED_ARRAY_UL,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
/* ES2015 22.2.5.2 */
|
||||||
|
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||||
|
ECMA_BUILTIN_ID_UINT8CLAMPEDARRAY_PROTOTYPE,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#undef SIMPLE_VALUE
|
||||||
|
#undef NUMBER_VALUE
|
||||||
|
#undef STRING_VALUE
|
||||||
|
#undef OBJECT_VALUE
|
||||||
|
#undef ROUTINE
|
||||||
|
#undef ACCESSOR_READ_WRITE
|
||||||
|
#undef ACCESSOR_READ_ONLY
|
||||||
@@ -30,10 +30,176 @@
|
|||||||
/** \addtogroup ecma ECMA
|
/** \addtogroup ecma ECMA
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
* \addtogroup ecmatypedarrayobject ECMA %TypedArray% object related routines
|
* \addtogroup ecmatypedarrayobject ECMA TypedArray object related routines
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert the value in location,
|
||||||
|
* cast it from type to ecma_number_t
|
||||||
|
* then assign to variale number
|
||||||
|
*/
|
||||||
|
#define GET_ELEMENT(type, location, number) \
|
||||||
|
type v = *((type *) location); \
|
||||||
|
number = (ecma_number_t) v;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cast the number from ecma_numbet_t into type,
|
||||||
|
* and store the number in the location
|
||||||
|
*/
|
||||||
|
#define SET_ELEMENT(type, location, number) \
|
||||||
|
int64_t v = (int64_t) number; \
|
||||||
|
*((type *) location) = (type) v;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* set typedarray's element value
|
||||||
|
*
|
||||||
|
* @return ecma_number_t: the value of the element
|
||||||
|
*/
|
||||||
|
static ecma_number_t
|
||||||
|
get_typedarray_element (lit_utf8_byte_t *src, /**< the location in the internal arraybuffer */
|
||||||
|
lit_magic_string_id_t class_id) /**< class name of the typedarray */
|
||||||
|
{
|
||||||
|
ecma_number_t ret_num;
|
||||||
|
|
||||||
|
switch (class_id)
|
||||||
|
{
|
||||||
|
case LIT_MAGIC_STRING_INT8_ARRAY_UL:
|
||||||
|
{
|
||||||
|
GET_ELEMENT (int8_t, src, ret_num);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LIT_MAGIC_STRING_UINT8_ARRAY_UL:
|
||||||
|
case LIT_MAGIC_STRING_UINT8_CLAMPED_ARRAY_UL:
|
||||||
|
{
|
||||||
|
GET_ELEMENT (uint8_t, src, ret_num);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LIT_MAGIC_STRING_INT16_ARRAY_UL:
|
||||||
|
{
|
||||||
|
GET_ELEMENT (int16_t, src, ret_num);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LIT_MAGIC_STRING_UINT16_ARRAY_UL:
|
||||||
|
{
|
||||||
|
GET_ELEMENT (uint16_t, src, ret_num);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LIT_MAGIC_STRING_INT32_ARRAY_UL:
|
||||||
|
{
|
||||||
|
GET_ELEMENT (int32_t, src, ret_num);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LIT_MAGIC_STRING_UINT32_ARRAY_UL:
|
||||||
|
{
|
||||||
|
GET_ELEMENT (uint32_t, src, ret_num);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LIT_MAGIC_STRING_FLOAT32_ARRAY_UL:
|
||||||
|
{
|
||||||
|
GET_ELEMENT (float, src, ret_num);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#if CONFIG_ECMA_NUMBER_TYPE == CONFIG_ECMA_NUMBER_FLOAT64
|
||||||
|
case LIT_MAGIC_STRING_FLOAT64_ARRAY_UL:
|
||||||
|
{
|
||||||
|
GET_ELEMENT (double, src, ret_num);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_ECMA_NUMBER_TYPE == CONFIG_ECMA_NUMBER_FLOAT64 */
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
JERRY_UNREACHABLE ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret_num;
|
||||||
|
} /* get_typedarray_element */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* set typedarray's element value
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
set_typedarray_element (lit_utf8_byte_t *dst, /**< the location in the internal arraybuffer */
|
||||||
|
ecma_number_t value, /**< the number value to set */
|
||||||
|
lit_magic_string_id_t class_id) /**< class name of the typedarray */
|
||||||
|
{
|
||||||
|
switch (class_id)
|
||||||
|
{
|
||||||
|
case LIT_MAGIC_STRING_INT8_ARRAY_UL:
|
||||||
|
{
|
||||||
|
SET_ELEMENT (int8_t, dst, value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LIT_MAGIC_STRING_UINT8_ARRAY_UL:
|
||||||
|
{
|
||||||
|
SET_ELEMENT (uint8_t, dst, value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LIT_MAGIC_STRING_UINT8_CLAMPED_ARRAY_UL:
|
||||||
|
{
|
||||||
|
uint8_t clamped;
|
||||||
|
|
||||||
|
if (value > 255)
|
||||||
|
{
|
||||||
|
clamped = 255;
|
||||||
|
}
|
||||||
|
else if (value < 0)
|
||||||
|
{
|
||||||
|
clamped = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
clamped = (uint8_t) value;
|
||||||
|
|
||||||
|
if (clamped + 0.5 < value
|
||||||
|
|| (clamped + 0.5 == value && clamped % 2 == 1))
|
||||||
|
{
|
||||||
|
clamped ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*((uint8_t *) dst) = clamped;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LIT_MAGIC_STRING_INT16_ARRAY_UL:
|
||||||
|
{
|
||||||
|
SET_ELEMENT (int16_t, dst, value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LIT_MAGIC_STRING_UINT16_ARRAY_UL:
|
||||||
|
{
|
||||||
|
SET_ELEMENT (uint16_t, dst, value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LIT_MAGIC_STRING_INT32_ARRAY_UL:
|
||||||
|
{
|
||||||
|
SET_ELEMENT (int32_t, dst, value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LIT_MAGIC_STRING_UINT32_ARRAY_UL:
|
||||||
|
{
|
||||||
|
SET_ELEMENT (uint32_t, dst, value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LIT_MAGIC_STRING_FLOAT32_ARRAY_UL:
|
||||||
|
{
|
||||||
|
*((float *) dst) = (float) value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#if CONFIG_ECMA_NUMBER_TYPE == CONFIG_ECMA_NUMBER_FLOAT64
|
||||||
|
case LIT_MAGIC_STRING_FLOAT64_ARRAY_UL:
|
||||||
|
{
|
||||||
|
*((double *) dst) = (double) value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_ECMA_NUMBER_TYPE == CONFIG_ECMA_NUMBER_FLOAT64 */
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
JERRY_UNREACHABLE ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} /* set_typedarray_element */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a TypedArray object by given array_length
|
* Create a TypedArray object by given array_length
|
||||||
*
|
*
|
||||||
@@ -70,8 +236,8 @@ ecma_typedarray_create_object_with_length (ecma_length_t array_length, /**< leng
|
|||||||
* @return pointer to the new typedarray object
|
* @return pointer to the new typedarray object
|
||||||
*/
|
*/
|
||||||
static ecma_object_t *
|
static ecma_object_t *
|
||||||
ecma_typedarray_create_object_with_buffer (ecma_object_t *arraybuffer_p,
|
ecma_typedarray_create_object_with_buffer (ecma_object_t *arraybuffer_p, /**< the arraybuffer inside */
|
||||||
ecma_length_t byte_offset,
|
ecma_length_t byte_offset, /**< the byte offset of the arraybuffer */
|
||||||
ecma_length_t array_length, /**< length of the typedarray */
|
ecma_length_t array_length, /**< length of the typedarray */
|
||||||
ecma_object_t *proto_p, /**< prototype object */
|
ecma_object_t *proto_p, /**< prototype object */
|
||||||
uint8_t element_size_shift, /**< the size shift of the element length */
|
uint8_t element_size_shift, /**< the size shift of the element length */
|
||||||
@@ -136,8 +302,22 @@ ecma_typedarray_create_object_with_typedarray (ecma_object_t *typedarray_p, /**<
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/** TODO: add other typed */
|
ecma_length_t byte_length = array_length << element_size_shift;
|
||||||
JERRY_UNREACHABLE ();
|
arraybuffer_p = ecma_arraybuffer_new_object (byte_length);
|
||||||
|
lit_utf8_byte_t *src_buf = ecma_arraybuffer_get_buffer (src_arraybuffer_p);
|
||||||
|
lit_utf8_byte_t *dst_buf = ecma_arraybuffer_get_buffer (arraybuffer_p);
|
||||||
|
uint8_t src_element_size_shift = ecma_typedarray_get_element_size_shift (typedarray_p);
|
||||||
|
|
||||||
|
for (uint32_t i = 0; i < array_length; i++)
|
||||||
|
{
|
||||||
|
ecma_number_t tmp = get_typedarray_element (src_buf,
|
||||||
|
ecma_object_get_class_name (typedarray_p));
|
||||||
|
/** check dst type and set value to dst typedarray */
|
||||||
|
set_typedarray_element (dst_buf, tmp, class_id);
|
||||||
|
|
||||||
|
src_buf = src_buf + (1 << src_element_size_shift);
|
||||||
|
dst_buf = dst_buf + (1 << element_size_shift);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ecma_object_t *object_p = ecma_typedarray_create_object_with_buffer (arraybuffer_p,
|
ecma_object_t *object_p = ecma_typedarray_create_object_with_buffer (arraybuffer_p,
|
||||||
@@ -163,7 +343,7 @@ ecma_typedarray_create_object_with_typedarray (ecma_object_t *typedarray_p, /**<
|
|||||||
ecma_value_t
|
ecma_value_t
|
||||||
ecma_op_typedarray_from (ecma_value_t items_val, /**< the source array-like object */
|
ecma_op_typedarray_from (ecma_value_t items_val, /**< the source array-like object */
|
||||||
ecma_value_t map_fn_val, /**< map function */
|
ecma_value_t map_fn_val, /**< map function */
|
||||||
ecma_value_t this_val, /** this_arg for the above map function */
|
ecma_value_t this_val, /**< this_arg for the above map function */
|
||||||
ecma_object_t *proto_p, /**< prototype object */
|
ecma_object_t *proto_p, /**< prototype object */
|
||||||
uint8_t element_size_shift, /**< the size shift of the element length */
|
uint8_t element_size_shift, /**< the size shift of the element length */
|
||||||
lit_magic_string_id_t class_id) /**< class name of the typedarray */
|
lit_magic_string_id_t class_id) /**< class name of the typedarray */
|
||||||
@@ -218,7 +398,7 @@ ecma_op_typedarray_from (ecma_value_t items_val, /**< the source array-like obje
|
|||||||
{
|
{
|
||||||
if (func_object_p != NULL)
|
if (func_object_p != NULL)
|
||||||
{
|
{
|
||||||
/* 17.d 17.f*/
|
/* 17.d 17.f */
|
||||||
current_index = ecma_make_uint32_value (index);
|
current_index = ecma_make_uint32_value (index);
|
||||||
ecma_value_t call_args[] = { current_value, current_index};
|
ecma_value_t call_args[] = { current_value, current_index};
|
||||||
|
|
||||||
@@ -572,24 +752,9 @@ ecma_op_typedarray_get_index_prop (ecma_object_t *obj_p, /**< a TypedArray objec
|
|||||||
ecma_length_t byte_pos = (index << shift) + offset;
|
ecma_length_t byte_pos = (index << shift) + offset;
|
||||||
lit_magic_string_id_t class_id = ecma_object_get_class_name (obj_p);
|
lit_magic_string_id_t class_id = ecma_object_get_class_name (obj_p);
|
||||||
lit_utf8_byte_t *target_p = ecma_arraybuffer_get_buffer (arraybuffer_p) + byte_pos;
|
lit_utf8_byte_t *target_p = ecma_arraybuffer_get_buffer (arraybuffer_p) + byte_pos;
|
||||||
ecma_value_t value;
|
ecma_number_t value = get_typedarray_element (target_p, class_id);
|
||||||
|
|
||||||
switch (class_id)
|
return ecma_make_number_value (value);
|
||||||
{
|
|
||||||
case LIT_MAGIC_STRING_INT8_ARRAY_UL:
|
|
||||||
{
|
|
||||||
int8_t v = *((int8_t *) target_p);
|
|
||||||
value = ecma_make_number_value ((ecma_number_t) v);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
/** TODO: implement other types */
|
|
||||||
JERRY_UNREACHABLE ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return value;
|
|
||||||
} /* ecma_op_typedarray_get_index_prop */
|
} /* ecma_op_typedarray_get_index_prop */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -649,39 +814,24 @@ ecma_op_typedarray_set_index_prop (ecma_object_t *obj_p,/**< a TypedArray object
|
|||||||
{
|
{
|
||||||
JERRY_ASSERT (ecma_is_typedarray (ecma_make_object_value (obj_p)));
|
JERRY_ASSERT (ecma_is_typedarray (ecma_make_object_value (obj_p)));
|
||||||
|
|
||||||
ecma_value_t error_val = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
|
||||||
|
|
||||||
ECMA_OP_TO_NUMBER_TRY_CATCH (value_num, value, error_val);
|
|
||||||
|
|
||||||
ecma_length_t array_length = ecma_typedarray_get_length (obj_p);
|
ecma_length_t array_length = ecma_typedarray_get_length (obj_p);
|
||||||
|
|
||||||
if (index >= array_length)
|
if (index >= array_length)
|
||||||
{
|
{
|
||||||
error_val = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
|
return false;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
ecma_object_t *arraybuffer_p = ecma_typedarray_get_arraybuffer (obj_p);
|
|
||||||
ecma_length_t offset = ecma_typedarray_get_offset (obj_p);
|
|
||||||
uint8_t shift = ecma_typedarray_get_element_size_shift (obj_p);
|
|
||||||
ecma_length_t byte_pos = (index << shift) + offset;
|
|
||||||
lit_magic_string_id_t class_id = ecma_object_get_class_name (obj_p);
|
|
||||||
lit_utf8_byte_t *target_p = ecma_arraybuffer_get_buffer (arraybuffer_p) + byte_pos;
|
|
||||||
|
|
||||||
switch (class_id)
|
ecma_value_t error_val = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
||||||
{
|
|
||||||
case LIT_MAGIC_STRING_INT8_ARRAY_UL:
|
ECMA_OP_TO_NUMBER_TRY_CATCH (value_num, value, error_val);
|
||||||
{
|
|
||||||
*((int8_t *) target_p) = (int8_t) value_num;
|
ecma_object_t *arraybuffer_p = ecma_typedarray_get_arraybuffer (obj_p);
|
||||||
break;
|
ecma_length_t offset = ecma_typedarray_get_offset (obj_p);
|
||||||
}
|
uint8_t shift = ecma_typedarray_get_element_size_shift (obj_p);
|
||||||
default:
|
ecma_length_t byte_pos = (index << shift) + offset;
|
||||||
{
|
lit_magic_string_id_t class_id = ecma_object_get_class_name (obj_p);
|
||||||
/** TODO: implement other types */
|
lit_utf8_byte_t *target_p = ecma_arraybuffer_get_buffer (arraybuffer_p) + byte_pos;
|
||||||
JERRY_UNREACHABLE ();
|
set_typedarray_element (target_p, value_num, class_id);
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ECMA_OP_TO_NUMBER_FINALIZE (value_num);
|
ECMA_OP_TO_NUMBER_FINALIZE (value_num);
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
/** \addtogroup ecma ECMA
|
/** \addtogroup ecma ECMA
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
* \addtogroup ecmatypedarrayobject ECMA typedArray object related routines
|
* \addtogroup ecmatypedarrayobject ECMA TypedArray object related routines
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -205,8 +205,8 @@ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (10, LIT_MAGIC_STRING_INT16_ARRAY_UL)
|
|||||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INT16_ARRAY_UL, "Int16Array")
|
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INT16_ARRAY_UL, "Int16Array")
|
||||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INT32_ARRAY_UL, "Int32Array")
|
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INT32_ARRAY_UL, "Int32Array")
|
||||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RANGE_ERROR_UL, "RangeError")
|
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RANGE_ERROR_UL, "RangeError")
|
||||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UINT8_ARRAY_UL, "Uint8Array")
|
|
||||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TYPED_ARRAY_UL, "TypedArray")
|
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TYPED_ARRAY_UL, "TypedArray")
|
||||||
|
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UINT8_ARRAY_UL, "Uint8Array")
|
||||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BYTE_LENGTH_UL, "byteLength")
|
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BYTE_LENGTH_UL, "byteLength")
|
||||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BYTE_OFFSET_UL, "byteOffset")
|
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BYTE_OFFSET_UL, "byteOffset")
|
||||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CHAR_CODE_AT_UL, "charCodeAt")
|
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CHAR_CODE_AT_UL, "charCodeAt")
|
||||||
|
|||||||
@@ -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(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(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