Add SharedArrayBuffer support (#4689)

JerryScript-DCO-1.0-Signed-off-by: Gergo Csizi csgergo92@gmail.com
This commit is contained in:
Gergo Csizi
2021-07-23 17:29:06 +02:00
committed by GitHub
parent bbf1c0105b
commit d9360f51d0
28 changed files with 1050 additions and 337 deletions
+10
View File
@@ -383,6 +383,16 @@ uint8_t *jerry_get_arraybuffer_pointer (const jerry_value_t value);
jerry_value_t jerry_is_arraybuffer_detachable (const jerry_value_t value);
jerry_value_t jerry_detach_arraybuffer (const jerry_value_t value);
/**
* SharedArrayBuffer components.
*/
bool jerry_value_is_shared_arraybuffer (const jerry_value_t value);
jerry_value_t jerry_create_shared_arraybuffer (const jerry_length_t size);
jerry_value_t jerry_create_shared_arraybuffer_external (const jerry_length_t size,
uint8_t *buffer_p,
jerry_value_free_callback_t free_cb);
/**
* DataView functions.
*/
+26 -25
View File
@@ -476,32 +476,33 @@ typedef enum
*/
typedef enum
{
JERRY_OBJECT_TYPE_NONE = 0u, /**< Non object type */
JERRY_OBJECT_TYPE_GENERIC, /**< Generic JavaScript object without any internal property */
JERRY_OBJECT_TYPE_MODULE_NAMESPACE, /**< Namespace object */
JERRY_OBJECT_TYPE_ARRAY, /**< Array object */
JERRY_OBJECT_TYPE_PROXY, /**< Proxy object */
JERRY_OBJECT_TYPE_SCRIPT, /**< Script object (see jerry_parse) */
JERRY_OBJECT_TYPE_MODULE, /**< Module object (see jerry_parse) */
JERRY_OBJECT_TYPE_PROMISE, /**< Promise object */
JERRY_OBJECT_TYPE_DATAVIEW, /**< Dataview object */
JERRY_OBJECT_TYPE_FUNCTION, /**< Function object (see jerry_function_get_type) */
JERRY_OBJECT_TYPE_TYPEDARRAY, /**< %TypedArray% object (see jerry_get_typedarray_type) */
JERRY_OBJECT_TYPE_ITERATOR, /**< Iterator object (see jerry_iterator_get_type) */
JERRY_OBJECT_TYPE_CONTAINER, /**< Container object (see jerry_container_get_type) */
JERRY_OBJECT_TYPE_ERROR, /**< Error object */
JERRY_OBJECT_TYPE_ARRAYBUFFER, /**< Array buffer object */
JERRY_OBJECT_TYPE_NONE = 0u, /**< Non object type */
JERRY_OBJECT_TYPE_GENERIC, /**< Generic JavaScript object without any internal property */
JERRY_OBJECT_TYPE_MODULE_NAMESPACE, /**< Namespace object */
JERRY_OBJECT_TYPE_ARRAY, /**< Array object */
JERRY_OBJECT_TYPE_PROXY, /**< Proxy object */
JERRY_OBJECT_TYPE_SCRIPT, /**< Script object (see jerry_parse) */
JERRY_OBJECT_TYPE_MODULE, /**< Module object (see jerry_parse) */
JERRY_OBJECT_TYPE_PROMISE, /**< Promise object */
JERRY_OBJECT_TYPE_DATAVIEW, /**< Dataview object */
JERRY_OBJECT_TYPE_FUNCTION, /**< Function object (see jerry_function_get_type) */
JERRY_OBJECT_TYPE_TYPEDARRAY, /**< %TypedArray% object (see jerry_get_typedarray_type) */
JERRY_OBJECT_TYPE_ITERATOR, /**< Iterator object (see jerry_iterator_get_type) */
JERRY_OBJECT_TYPE_CONTAINER, /**< Container object (see jerry_container_get_type) */
JERRY_OBJECT_TYPE_ERROR, /**< Error object */
JERRY_OBJECT_TYPE_ARRAYBUFFER, /**< Array buffer object */
JERRY_OBJECT_TYPE_SHARED_ARRAY_BUFFER, /**< Shared Array Buffer object */
JERRY_OBJECT_TYPE_ARGUMENTS, /**< Arguments object */
JERRY_OBJECT_TYPE_BOOLEAN, /**< Boolean object */
JERRY_OBJECT_TYPE_DATE, /**< Date object */
JERRY_OBJECT_TYPE_NUMBER, /**< Number object */
JERRY_OBJECT_TYPE_REGEXP, /**< RegExp object */
JERRY_OBJECT_TYPE_STRING, /**< String object */
JERRY_OBJECT_TYPE_SYMBOL, /**< Symbol object */
JERRY_OBJECT_TYPE_GENERATOR, /**< Generator object */
JERRY_OBJECT_TYPE_BIGINT, /**< BigInt object */
JERRY_OBJECT_TYPE_WEAKREF, /**< WeakRef object */
JERRY_OBJECT_TYPE_ARGUMENTS, /**< Arguments object */
JERRY_OBJECT_TYPE_BOOLEAN, /**< Boolean object */
JERRY_OBJECT_TYPE_DATE, /**< Date object */
JERRY_OBJECT_TYPE_NUMBER, /**< Number object */
JERRY_OBJECT_TYPE_REGEXP, /**< RegExp object */
JERRY_OBJECT_TYPE_STRING, /**< String object */
JERRY_OBJECT_TYPE_SYMBOL, /**< Symbol object */
JERRY_OBJECT_TYPE_GENERATOR, /**< Generator object */
JERRY_OBJECT_TYPE_BIGINT, /**< BigInt object */
JERRY_OBJECT_TYPE_WEAKREF, /**< WeakRef object */
} jerry_object_type_t;
/**