Add ES2015 feature: ArrayBuffer (#1467)

This patch implements ArrayBuffer and ArrayBuffer.prototype built-in objects.

JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang zidong.jiang@intel.com
This commit is contained in:
Zidong Jiang
2016-12-07 21:04:01 +08:00
committed by Zoltan Herczeg
parent eccfc1849e
commit 29d058cec4
67 changed files with 845 additions and 59 deletions
+12 -4
View File
@@ -424,14 +424,14 @@ ecma_gc_sweep (ecma_object_t *object_p) /**< object to free */
case LIT_MAGIC_STRING_STRING_UL:
case LIT_MAGIC_STRING_NUMBER_UL:
{
ecma_free_value (ext_object_p->u.class_prop.value);
ecma_free_value (ext_object_p->u.class_prop.u.value);
break;
}
case LIT_MAGIC_STRING_DATE_UL:
{
ecma_number_t *num_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t,
ext_object_p->u.class_prop.value);
ext_object_p->u.class_prop.u.value);
ecma_dealloc_number (num_p);
break;
}
@@ -439,14 +439,22 @@ ecma_gc_sweep (ecma_object_t *object_p) /**< object to free */
case LIT_MAGIC_STRING_REGEXP_UL:
{
ecma_compiled_code_t *bytecode_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_compiled_code_t,
ext_object_p->u.class_prop.value);
ext_object_p->u.class_prop.u.value);
if (bytecode_p != NULL)
{
ecma_bytecode_deref (bytecode_p);
}
break;
}
#ifndef CONFIG_DISABLE_ARRAYBUFFER_BUILTIN
case LIT_MAGIC_STRING_ARRAY_BUFFER_UL:
{
ecma_length_t arraybuffer_length = ext_object_p->u.class_prop.u.length;
size_t size = sizeof (ecma_extended_object_t) + arraybuffer_length;
ecma_dealloc_extended_object ((ecma_extended_object_t *) object_p, size);
return;
}
#endif /* CONFIG_DISABLE_ARRAYBUFFER_BUILTIN */
default:
{
JERRY_UNREACHABLE ();