Replace // double slash comments with /* */. (#1461)
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
This commit is contained in:
committed by
Tilmann Scheller
parent
4d2c22a118
commit
fb3e8cf8b8
@@ -1041,9 +1041,9 @@ typedef struct
|
||||
* An object's GC color
|
||||
*
|
||||
* Tri-color marking:
|
||||
* WHITE_GRAY, unvisited -> WHITE // not referenced by a live object or the reference not found yet
|
||||
* WHITE_GRAY, visited -> GRAY // referenced by some live object
|
||||
* BLACK -> BLACK // all referenced objects are gray or black
|
||||
* WHITE_GRAY, unvisited -> WHITE: not referenced by a live object or the reference not found yet
|
||||
* WHITE_GRAY, visited -> GRAY: referenced by some live object
|
||||
* BLACK -> BLACK: all referenced objects are gray or black
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
|
||||
@@ -819,7 +819,7 @@ ecma_number_to_uint32 (ecma_number_t num) /**< ecma-number */
|
||||
const bool sign = ecma_number_is_negative (num);
|
||||
const ecma_number_t abs_num = sign ? ecma_number_negate (num) : num;
|
||||
|
||||
// 2 ^ 32
|
||||
/* 2 ^ 32 */
|
||||
const uint64_t uint64_2_pow_32 = (1ull << 32);
|
||||
|
||||
const ecma_number_t num_2_pow_32 = (float) uint64_2_pow_32;
|
||||
@@ -836,7 +836,7 @@ ecma_number_to_uint32 (ecma_number_t num) /**< ecma-number */
|
||||
num_in_uint32_range = abs_num;
|
||||
}
|
||||
|
||||
// Check that the floating point value can be represented with uint32_t
|
||||
/* Check that the floating point value can be represented with uint32_t. */
|
||||
JERRY_ASSERT (num_in_uint32_range < uint64_2_pow_32);
|
||||
uint32_t uint32_num = (uint32_t) num_in_uint32_range;
|
||||
|
||||
@@ -870,10 +870,10 @@ ecma_number_to_int32 (ecma_number_t num) /**< ecma-number */
|
||||
{
|
||||
uint32_t uint32_num = ecma_number_to_uint32 (num);
|
||||
|
||||
// 2 ^ 32
|
||||
/* 2 ^ 32 */
|
||||
const int64_t int64_2_pow_32 = (1ll << 32);
|
||||
|
||||
// 2 ^ 31
|
||||
/* 2 ^ 31 */
|
||||
const uint32_t uint32_2_pow_31 = (1ull << 31);
|
||||
|
||||
int32_t ret;
|
||||
@@ -945,14 +945,14 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
|
||||
|
||||
if (ecma_number_is_nan (num))
|
||||
{
|
||||
// 1.
|
||||
/* 1. */
|
||||
dst_p = lit_copy_magic_string_to_buffer (LIT_MAGIC_STRING_NAN, buffer_p, buffer_size);
|
||||
return (lit_utf8_size_t) (dst_p - buffer_p);
|
||||
}
|
||||
|
||||
if (ecma_number_is_zero (num))
|
||||
{
|
||||
// 2.
|
||||
/* 2. */
|
||||
*buffer_p = LIT_CHAR_0;
|
||||
JERRY_ASSERT (1 <= buffer_size);
|
||||
return 1;
|
||||
@@ -962,14 +962,14 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
|
||||
|
||||
if (ecma_number_is_negative (num))
|
||||
{
|
||||
// 3.
|
||||
/* 3. */
|
||||
*dst_p++ = LIT_CHAR_MINUS;
|
||||
num = ecma_number_negate (num);
|
||||
}
|
||||
|
||||
if (ecma_number_is_infinity (num))
|
||||
{
|
||||
// 4.
|
||||
/* 4. */
|
||||
dst_p = lit_copy_magic_string_to_buffer (LIT_MAGIC_STRING_INFINITY_UL, dst_p,
|
||||
(lit_utf8_size_t) (buffer_p + buffer_size - dst_p));
|
||||
JERRY_ASSERT (dst_p <= buffer_p + buffer_size);
|
||||
@@ -978,7 +978,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
|
||||
|
||||
JERRY_ASSERT (ecma_number_get_next (ecma_number_get_prev (num)) == num);
|
||||
|
||||
// 5.
|
||||
/* 5. */
|
||||
uint32_t num_uint32 = ecma_number_to_uint32 (num);
|
||||
|
||||
if (((ecma_number_t) num_uint32) == num)
|
||||
@@ -997,7 +997,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
|
||||
|
||||
if (k <= n && n <= 21)
|
||||
{
|
||||
// 6.
|
||||
/* 6. */
|
||||
dst_p += k;
|
||||
|
||||
memset (dst_p, LIT_CHAR_0, (size_t) (n - k));
|
||||
@@ -1009,7 +1009,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
|
||||
|
||||
if (0 < n && n <= 21)
|
||||
{
|
||||
// 7.
|
||||
/* 7. */
|
||||
memmove (dst_p + n + 1, dst_p + n, (size_t) (k - n));
|
||||
*(dst_p + n) = LIT_CHAR_DOT;
|
||||
dst_p += k + 1;
|
||||
@@ -1020,7 +1020,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
|
||||
|
||||
if (-6 < n && n <= 0)
|
||||
{
|
||||
// 8.
|
||||
/* 8. */
|
||||
memmove (dst_p + 2 - n, dst_p, (size_t) k);
|
||||
memset (dst_p + 2, LIT_CHAR_0, (size_t) -n);
|
||||
*dst_p = LIT_CHAR_0;
|
||||
@@ -1033,18 +1033,18 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
|
||||
|
||||
if (k == 1)
|
||||
{
|
||||
// 9.
|
||||
/* 9. */
|
||||
dst_p++;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 10.
|
||||
/* 10. */
|
||||
memmove (dst_p + 2, dst_p + 1, (size_t) (k - 1));
|
||||
*(dst_p + 1) = LIT_CHAR_DOT;
|
||||
dst_p += k + 1;
|
||||
}
|
||||
|
||||
// 9., 10.
|
||||
/* 9., 10. */
|
||||
*dst_p++ = LIT_CHAR_LOWERCASE_E;
|
||||
*dst_p++ = (n >= 1) ? LIT_CHAR_PLUS : LIT_CHAR_MINUS;
|
||||
uint32_t t = (uint32_t) (n >= 1 ? (n - 1) : -(n - 1));
|
||||
|
||||
@@ -40,7 +40,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_ARRAY_PROTOTYPE)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.4.4.1
|
||||
/* ECMA-262 v5, 15.4.4.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_ARRAY,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
@@ -48,7 +48,7 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
/* Number properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.4.4
|
||||
/* ECMA-262 v5, 15.4.4 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
0,
|
||||
ECMA_PROPERTY_FLAG_WRITABLE)
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_ARRAY)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.4.3.1
|
||||
/* ECMA-262 v5, 15.4.3.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_ARRAY_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -47,7 +47,7 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
/* Number properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.4.3
|
||||
/* ECMA-262 v5, 15.4.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
1,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -35,7 +35,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_BOOLEAN_PROTOTYPE)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.6.4.1
|
||||
/* ECMA-262 v5, 15.6.4.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_BOOLEAN,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_BOOLEAN)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.6.3.1
|
||||
/* ECMA-262 v5, 15.6.3.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_BOOLEAN_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -47,7 +47,7 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
/* Number properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.6.3
|
||||
/* ECMA-262 v5, 15.6.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
1,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
/* Object identifier */
|
||||
OBJECT_ID (ECMA_BUILTIN_ID_DATE)
|
||||
|
||||
// ECMA-262 v5, 15.9.4.1
|
||||
/* ECMA-262 v5, 15.9.4.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_DATE_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -58,7 +58,7 @@ ecma_builtin_error_prototype_object_to_string (ecma_value_t this_arg) /**< this
|
||||
{
|
||||
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
||||
|
||||
// 2.
|
||||
/* 2. */
|
||||
if (!ecma_is_value_object (this_arg))
|
||||
{
|
||||
ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Argument 'this' is not an object."));
|
||||
|
||||
@@ -39,17 +39,17 @@ OBJECT_ID (ECMA_BUILTIN_ID_ERROR_PROTOTYPE)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.11.4.1
|
||||
/* ECMA-262 v5, 15.11.4.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.4.2
|
||||
/* ECMA-262 v5, 15.11.4.2 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||
LIT_MAGIC_STRING_ERROR_UL,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.4.3
|
||||
/* ECMA-262 v5, 15.11.4.3 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_MESSAGE,
|
||||
LIT_MAGIC_STRING__EMPTY,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_ERROR)
|
||||
/* Number properties:
|
||||
* (property name, number value, writable, enumerable, configurable) */
|
||||
|
||||
// 15.11.3
|
||||
/* ECMA-262 v5, 15.11.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
1,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -47,7 +47,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.7.3.1
|
||||
/* ECMA-262 v5, 15.7.3.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_ERROR_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -35,17 +35,17 @@ OBJECT_ID (ECMA_BUILTIN_ID_EVAL_ERROR_PROTOTYPE)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.11.7.8
|
||||
/* ECMA-262 v5, 15.11.7.8 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_EVAL_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.7.9
|
||||
/* ECMA-262 v5, 15.11.7.9 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||
LIT_MAGIC_STRING_EVAL_ERROR_UL,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.7.10
|
||||
/* ECMA-262 v5, 15.11.7.10 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_MESSAGE,
|
||||
LIT_MAGIC_STRING__EMPTY,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_EVAL_ERROR)
|
||||
/* Number properties:
|
||||
* (property name, number value, writable, enumerable, configurable) */
|
||||
|
||||
// 15.11.3
|
||||
/* ECMA-262 v5, 15.11.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
1,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -47,7 +47,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.11.3.1
|
||||
/* ECMA-262 v5, 15.11.3.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_EVAL_ERROR_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.3.4.1
|
||||
/* ECMA-262 v5, 15.3.4.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_FUNCTION,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
@@ -47,7 +47,7 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
/* Number properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.3.4
|
||||
/* ECMA-262 v5, 15.3.4 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
0,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_FUNCTION)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.3.3.1
|
||||
/* ECMA-262 v5, 15.3.3.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -47,7 +47,7 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
/* Number properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.3.3.2
|
||||
/* ECMA-262 v5, 15.3.3.2 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
1,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -43,7 +43,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_GLOBAL)
|
||||
/* Simple value properties:
|
||||
* (property name, simple value, writable, enumerable, configurable) */
|
||||
|
||||
// ECMA-262 v5, 15.1.1.3
|
||||
/* ECMA-262 v5, 15.1.1.3 */
|
||||
SIMPLE_VALUE (LIT_MAGIC_STRING_UNDEFINED,
|
||||
ECMA_SIMPLE_VALUE_UNDEFINED,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -51,12 +51,12 @@ SIMPLE_VALUE (LIT_MAGIC_STRING_UNDEFINED,
|
||||
/* Number properties:
|
||||
* (property name, number value, writable, enumerable, configurable) */
|
||||
|
||||
// ECMA-262 v5, 15.1.1.1
|
||||
/* ECMA-262 v5, 15.1.1.1 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_NAN,
|
||||
ECMA_BUILTIN_NUMBER_NAN,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// ECMA-262 v5, 15.1.1.2
|
||||
/* ECMA-262 v5, 15.1.1.2 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_INFINITY_UL,
|
||||
ECMA_BUILTIN_NUMBER_POSITIVE_INFINITY,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -64,17 +64,17 @@ NUMBER_VALUE (LIT_MAGIC_STRING_INFINITY_UL,
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// ECMA-262 v5, 15.1.4.1
|
||||
/* ECMA-262 v5, 15.1.4.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_OBJECT_UL,
|
||||
ECMA_BUILTIN_ID_OBJECT,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// ECMA-262 v5, 15.1.4.2
|
||||
/* ECMA-262 v5, 15.1.4.2 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_FUNCTION_UL,
|
||||
ECMA_BUILTIN_ID_FUNCTION,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// ECMA-262 v5, 15.1.4.3
|
||||
/* ECMA-262 v5, 15.1.4.3 */
|
||||
#ifndef CONFIG_DISABLE_ARRAY_BUILTIN
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_ARRAY_UL,
|
||||
ECMA_BUILTIN_ID_ARRAY,
|
||||
@@ -82,87 +82,87 @@ OBJECT_VALUE (LIT_MAGIC_STRING_ARRAY_UL,
|
||||
#endif /* !CONFIG_DISABLE_ARRAY_BUILTIN*/
|
||||
|
||||
#ifndef CONFIG_DISABLE_STRING_BUILTIN
|
||||
// ECMA-262 v5, 15.1.4.4
|
||||
/* ECMA-262 v5, 15.1.4.4 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_STRING_UL,
|
||||
ECMA_BUILTIN_ID_STRING,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
#endif /* !CONFIG_DISABLE_STRING_BUILTIN */
|
||||
|
||||
#ifndef CONFIG_DISABLE_BOOLEAN_BUILTIN
|
||||
// ECMA-262 v5, 15.1.4.5
|
||||
/* ECMA-262 v5, 15.1.4.5 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_BOOLEAN_UL,
|
||||
ECMA_BUILTIN_ID_BOOLEAN,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
#endif /* !CONFIG_DISABLE_BOOLEAN_BUILTIN */
|
||||
|
||||
#ifndef CONFIG_DISABLE_NUMBER_BUILTIN
|
||||
// ECMA-262 v5, 15.1.4.6
|
||||
/* ECMA-262 v5, 15.1.4.6 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_NUMBER_UL,
|
||||
ECMA_BUILTIN_ID_NUMBER,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
#endif /* !CONFIG_DISABLE_NUMBER_BUILTIN */
|
||||
|
||||
#ifndef CONFIG_DISABLE_DATE_BUILTIN
|
||||
// ECMA-262 v5, 15.1.4.7
|
||||
/* ECMA-262 v5, 15.1.4.7 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_DATE_UL,
|
||||
ECMA_BUILTIN_ID_DATE,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
#endif /* !CONFIG_DISABLE_DATE_BUILTIN */
|
||||
|
||||
#ifndef CONFIG_DISABLE_REGEXP_BUILTIN
|
||||
// ECMA-262 v5, 15.1.4.8
|
||||
/* ECMA-262 v5, 15.1.4.8 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_REGEXP_UL,
|
||||
ECMA_BUILTIN_ID_REGEXP,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
#endif /* !CONFIG_DISABLE_REGEXP_BUILTIN */
|
||||
|
||||
// ECMA-262 v5, 15.1.4.9
|
||||
/* ECMA-262 v5, 15.1.4.9 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_ERROR_UL,
|
||||
ECMA_BUILTIN_ID_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
#ifndef CONFIG_DISABLE_ERROR_BUILTINS
|
||||
|
||||
// ECMA-262 v5, 15.1.4.10
|
||||
/* ECMA-262 v5, 15.1.4.10 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_EVAL_ERROR_UL,
|
||||
ECMA_BUILTIN_ID_EVAL_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// ECMA-262 v5, 15.1.4.11
|
||||
/* ECMA-262 v5, 15.1.4.11 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_RANGE_ERROR_UL,
|
||||
ECMA_BUILTIN_ID_RANGE_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// ECMA-262 v5, 15.1.4.12
|
||||
/* ECMA-262 v5, 15.1.4.12 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_REFERENCE_ERROR_UL,
|
||||
ECMA_BUILTIN_ID_REFERENCE_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// ECMA-262 v5, 15.1.4.13
|
||||
/* ECMA-262 v5, 15.1.4.13 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_SYNTAX_ERROR_UL,
|
||||
ECMA_BUILTIN_ID_SYNTAX_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// ECMA-262 v5, 15.1.4.14
|
||||
/* ECMA-262 v5, 15.1.4.14 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_TYPE_ERROR_UL,
|
||||
ECMA_BUILTIN_ID_TYPE_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// ECMA-262 v5, 15.1.4.15
|
||||
/* ECMA-262 v5, 15.1.4.15 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_URI_ERROR_UL,
|
||||
ECMA_BUILTIN_ID_URI_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
#endif /* !CONFIG_DISABLE_ERROR_BUILTINS */
|
||||
|
||||
#ifndef CONFIG_DISABLE_MATH_BUILTIN
|
||||
// ECMA-262 v5, 15.1.5.1
|
||||
/* ECMA-262 v5, 15.1.5.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_MATH_UL,
|
||||
ECMA_BUILTIN_ID_MATH,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
#endif /* !CONFIG_DISABLE_MATH_BUILTIN */
|
||||
|
||||
#ifndef CONFIG_DISABLE_JSON_BUILTIN
|
||||
// ECMA-262 v5, 15.1.5.2
|
||||
/* ECMA-262 v5, 15.1.5.2 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_JSON_U,
|
||||
ECMA_BUILTIN_ID_JSON,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
@@ -171,7 +171,7 @@ OBJECT_VALUE (LIT_MAGIC_STRING_JSON_U,
|
||||
/* Routine properties:
|
||||
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
||||
|
||||
// Implementation-defined 'print' routine
|
||||
/* Implementation-defined 'print' routine */
|
||||
ROUTINE (LIT_MAGIC_STRING_PRINT, ecma_builtin_global_object_print, NON_FIXED, 1)
|
||||
|
||||
ROUTINE (LIT_MAGIC_STRING_EVAL, ecma_builtin_global_object_eval, 1, 1)
|
||||
|
||||
@@ -43,42 +43,42 @@ OBJECT_ID (ECMA_BUILTIN_ID_MATH)
|
||||
/* Number properties:
|
||||
* (property name, number value, writable, enumerable, configurable) */
|
||||
|
||||
// ECMA-262 v5, 15.8.1.1
|
||||
/* ECMA-262 v5, 15.8.1.1 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_E_U,
|
||||
ECMA_BUILTIN_NUMBER_E,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// ECMA-262 v5, 15.8.1.2
|
||||
/* ECMA-262 v5, 15.8.1.2 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LN10_U,
|
||||
ECMA_BUILTIN_NUMBER_LN10,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// ECMA-262 v5, 15.8.1.3
|
||||
/* ECMA-262 v5, 15.8.1.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LN2_U,
|
||||
ECMA_BUILTIN_NUMBER_LN2,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// ECMA-262 v5, 15.8.1.4
|
||||
/* ECMA-262 v5, 15.8.1.4 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LOG2E_U,
|
||||
ECMA_BUILTIN_NUMBER_LOG2E,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// ECMA-262 v5, 15.8.1.5
|
||||
/* ECMA-262 v5, 15.8.1.5 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LOG10E_U,
|
||||
ECMA_BUILTIN_NUMBER_LOG10E,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// ECMA-262 v5, 15.8.1.6
|
||||
/* ECMA-262 v5, 15.8.1.6 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_PI_U,
|
||||
ECMA_BUILTIN_NUMBER_PI,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// ECMA-262 v5, 15.8.1.7
|
||||
/* ECMA-262 v5, 15.8.1.7 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_SQRT1_2_U,
|
||||
ECMA_BUILTIN_NUMBER_SQRT_1_2,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// ECMA-262 v5, 15.8.1.8
|
||||
/* ECMA-262 v5, 15.8.1.8 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_SQRT2_U,
|
||||
ECMA_BUILTIN_NUMBER_SQRT2,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -35,7 +35,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_NUMBER_PROTOTYPE)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.7.4.1
|
||||
/* ECMA-262 v5, 15.7.4.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_NUMBER,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
@@ -35,32 +35,32 @@ OBJECT_ID (ECMA_BUILTIN_ID_NUMBER)
|
||||
/* Number properties:
|
||||
* (property name, number value, writable, enumerable, configurable) */
|
||||
|
||||
// 15.7.3
|
||||
/* ECMA-262 v5, 15.7.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
1,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// 15.7.3.4
|
||||
/* ECMA-262 v5, 15.7.3.4 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_NAN,
|
||||
ECMA_BUILTIN_NUMBER_NAN,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// 15.7.3.2
|
||||
/* ECMA-262 v5, 15.7.3.2 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_MAX_VALUE_U,
|
||||
ECMA_BUILTIN_NUMBER_MAX,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// 15.7.3.3
|
||||
/* ECMA-262 v5, 15.7.3.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_MIN_VALUE_U,
|
||||
ECMA_BUILTIN_NUMBER_MIN,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// 15.7.3.5
|
||||
/* ECMA-262 v5, 15.7.3.5 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_POSITIVE_INFINITY_U,
|
||||
ECMA_BUILTIN_NUMBER_POSITIVE_INFINITY,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// 15.7.3.6
|
||||
/* ECMA-262 v5, 15.7.3.6 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_NEGATIVE_INFINITY_U,
|
||||
ECMA_BUILTIN_NUMBER_NEGATIVE_INFINITY,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -68,7 +68,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_NEGATIVE_INFINITY_U,
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.7.3.1
|
||||
/* ECMA-262 v5, 15.7.3.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_NUMBER_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -35,7 +35,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_OBJECT_PROTOTYPE)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.2.4.1
|
||||
/* ECMA-262 v5, 15.2.4.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_OBJECT,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
@@ -183,14 +183,14 @@ ecma_builtin_object_object_seal (ecma_value_t this_arg, /**< 'this' argument */
|
||||
JERRY_UNUSED (this_arg);
|
||||
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
||||
|
||||
// 1.
|
||||
/* 1. */
|
||||
if (!ecma_is_value_object (arg))
|
||||
{
|
||||
ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Argument is not an object."));
|
||||
}
|
||||
else
|
||||
{
|
||||
// 2.
|
||||
/* 2. */
|
||||
ecma_object_t *obj_p = ecma_get_object_from_value (arg);
|
||||
|
||||
ecma_collection_header_t *props_p = ecma_op_object_get_property_names (obj_p, false, false, false);
|
||||
@@ -203,7 +203,7 @@ ecma_builtin_object_object_seal (ecma_value_t this_arg, /**< 'this' argument */
|
||||
{
|
||||
ecma_string_t *property_name_p = ecma_get_string_from_value (*iter.current_value_p);
|
||||
|
||||
// 2.a
|
||||
/* 2.a */
|
||||
ecma_property_descriptor_t prop_desc;
|
||||
|
||||
if (!ecma_op_object_get_own_property_descriptor (obj_p, property_name_p, &prop_desc))
|
||||
@@ -211,10 +211,10 @@ ecma_builtin_object_object_seal (ecma_value_t this_arg, /**< 'this' argument */
|
||||
continue;
|
||||
}
|
||||
|
||||
// 2.b
|
||||
/* 2.b */
|
||||
prop_desc.is_configurable = false;
|
||||
|
||||
// 2.c
|
||||
/* 2.c */
|
||||
ECMA_TRY_CATCH (define_own_prop_ret,
|
||||
ecma_op_object_define_own_property (obj_p,
|
||||
property_name_p,
|
||||
@@ -230,10 +230,10 @@ ecma_builtin_object_object_seal (ecma_value_t this_arg, /**< 'this' argument */
|
||||
|
||||
if (ecma_is_value_empty (ret_value))
|
||||
{
|
||||
// 3.
|
||||
/* 3. */
|
||||
ecma_set_object_extensible (obj_p, false);
|
||||
|
||||
// 4.
|
||||
/* 4. */
|
||||
ret_value = ecma_copy_value (arg);
|
||||
}
|
||||
}
|
||||
@@ -257,14 +257,14 @@ ecma_builtin_object_object_freeze (ecma_value_t this_arg, /**< 'this' argument *
|
||||
JERRY_UNUSED (this_arg);
|
||||
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
||||
|
||||
// 1.
|
||||
/* 1. */
|
||||
if (!ecma_is_value_object (arg))
|
||||
{
|
||||
ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Argument is not an object."));
|
||||
}
|
||||
else
|
||||
{
|
||||
// 2.
|
||||
/* 2. */
|
||||
ecma_object_t *obj_p = ecma_get_object_from_value (arg);
|
||||
|
||||
ecma_collection_header_t *props_p = ecma_op_object_get_property_names (obj_p, false, false, false);
|
||||
@@ -278,7 +278,7 @@ ecma_builtin_object_object_freeze (ecma_value_t this_arg, /**< 'this' argument *
|
||||
{
|
||||
ecma_string_t *property_name_p = ecma_get_string_from_value (*iter.current_value_p);
|
||||
|
||||
// 2.a
|
||||
/* 2.a */
|
||||
ecma_property_descriptor_t prop_desc;
|
||||
|
||||
if (!ecma_op_object_get_own_property_descriptor (obj_p, property_name_p, &prop_desc))
|
||||
@@ -286,16 +286,16 @@ ecma_builtin_object_object_freeze (ecma_value_t this_arg, /**< 'this' argument *
|
||||
continue;
|
||||
}
|
||||
|
||||
// 2.b
|
||||
/* 2.b */
|
||||
if (prop_desc.is_writable_defined && prop_desc.is_writable)
|
||||
{
|
||||
prop_desc.is_writable = false;
|
||||
}
|
||||
|
||||
// 2.c
|
||||
/* 2.c */
|
||||
prop_desc.is_configurable = false;
|
||||
|
||||
// 2.d
|
||||
/* 2.d */
|
||||
ECMA_TRY_CATCH (define_own_prop_ret,
|
||||
ecma_op_object_define_own_property (obj_p,
|
||||
property_name_p,
|
||||
@@ -311,10 +311,10 @@ ecma_builtin_object_object_freeze (ecma_value_t this_arg, /**< 'this' argument *
|
||||
|
||||
if (ecma_is_value_empty (ret_value))
|
||||
{
|
||||
// 3.
|
||||
/* 3. */
|
||||
ecma_set_object_extensible (obj_p, false);
|
||||
|
||||
// 4.
|
||||
/* 4. */
|
||||
ret_value = ecma_copy_value (arg);
|
||||
}
|
||||
}
|
||||
@@ -369,7 +369,7 @@ ecma_builtin_object_object_is_sealed (ecma_value_t this_arg, /**< 'this' argumen
|
||||
JERRY_UNUSED (this_arg);
|
||||
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
||||
|
||||
// 1.
|
||||
/* 1. */
|
||||
if (!ecma_is_value_object (arg))
|
||||
{
|
||||
ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Argument is not an object."));
|
||||
@@ -380,7 +380,7 @@ ecma_builtin_object_object_is_sealed (ecma_value_t this_arg, /**< 'this' argumen
|
||||
|
||||
bool is_sealed;
|
||||
|
||||
// 3.
|
||||
/* 3. */
|
||||
if (ecma_get_object_extensible (obj_p))
|
||||
{
|
||||
is_sealed = false;
|
||||
@@ -390,7 +390,7 @@ ecma_builtin_object_object_is_sealed (ecma_value_t this_arg, /**< 'this' argumen
|
||||
/* the value can be updated in the loop below */
|
||||
is_sealed = true;
|
||||
|
||||
// 2.
|
||||
/* 2. */
|
||||
ecma_collection_header_t *props_p = ecma_op_object_get_property_names (obj_p, false, false, false);
|
||||
|
||||
ecma_collection_iterator_t iter;
|
||||
@@ -400,13 +400,13 @@ ecma_builtin_object_object_is_sealed (ecma_value_t this_arg, /**< 'this' argumen
|
||||
{
|
||||
ecma_string_t *property_name_p = ecma_get_string_from_value (*iter.current_value_p);
|
||||
|
||||
// 2.a
|
||||
/* 2.a */
|
||||
ecma_property_t property = ecma_op_object_get_own_property (obj_p,
|
||||
property_name_p,
|
||||
NULL,
|
||||
ECMA_PROPERTY_GET_NO_OPTIONS);
|
||||
|
||||
// 2.b
|
||||
/* 2.b */
|
||||
if (ecma_is_property_configurable (property))
|
||||
{
|
||||
is_sealed = false;
|
||||
@@ -417,7 +417,7 @@ ecma_builtin_object_object_is_sealed (ecma_value_t this_arg, /**< 'this' argumen
|
||||
ecma_free_values_collection (props_p, true);
|
||||
}
|
||||
|
||||
// 4.
|
||||
/* 4. */
|
||||
ret_value = ecma_make_simple_value (is_sealed ? ECMA_SIMPLE_VALUE_TRUE
|
||||
: ECMA_SIMPLE_VALUE_FALSE);
|
||||
}
|
||||
@@ -441,7 +441,7 @@ ecma_builtin_object_object_is_frozen (ecma_value_t this_arg, /**< 'this' argumen
|
||||
JERRY_UNUSED (this_arg);
|
||||
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
||||
|
||||
// 1.
|
||||
/* 1. */
|
||||
if (!ecma_is_value_object (arg))
|
||||
{
|
||||
ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Argument is not an object."));
|
||||
@@ -452,7 +452,7 @@ ecma_builtin_object_object_is_frozen (ecma_value_t this_arg, /**< 'this' argumen
|
||||
|
||||
bool is_frozen;
|
||||
|
||||
// 3.
|
||||
/* 3. */
|
||||
if (ecma_get_object_extensible (obj_p))
|
||||
{
|
||||
is_frozen = false;
|
||||
@@ -461,7 +461,7 @@ ecma_builtin_object_object_is_frozen (ecma_value_t this_arg, /**< 'this' argumen
|
||||
{
|
||||
is_frozen = true;
|
||||
|
||||
// 2.
|
||||
/* 2. */
|
||||
ecma_collection_header_t *props_p = ecma_op_object_get_property_names (obj_p, false, false, false);
|
||||
|
||||
ecma_collection_iterator_t iter;
|
||||
@@ -471,13 +471,13 @@ ecma_builtin_object_object_is_frozen (ecma_value_t this_arg, /**< 'this' argumen
|
||||
{
|
||||
ecma_string_t *property_name_p = ecma_get_string_from_value (*iter.current_value_p);
|
||||
|
||||
// 2.a
|
||||
/* 2.a */
|
||||
ecma_property_t property = ecma_op_object_get_own_property (obj_p,
|
||||
property_name_p,
|
||||
NULL,
|
||||
ECMA_PROPERTY_GET_NO_OPTIONS);
|
||||
|
||||
// 2.b
|
||||
/* 2.b */
|
||||
if (ECMA_PROPERTY_GET_TYPE (property) != ECMA_PROPERTY_TYPE_NAMEDACCESSOR
|
||||
&& ecma_is_property_writable (property))
|
||||
{
|
||||
@@ -485,7 +485,7 @@ ecma_builtin_object_object_is_frozen (ecma_value_t this_arg, /**< 'this' argumen
|
||||
break;
|
||||
}
|
||||
|
||||
// 2.c
|
||||
/* 2.c */
|
||||
if (ecma_is_property_configurable (property))
|
||||
{
|
||||
is_frozen = false;
|
||||
@@ -496,7 +496,7 @@ ecma_builtin_object_object_is_frozen (ecma_value_t this_arg, /**< 'this' argumen
|
||||
ecma_free_values_collection (props_p, true);
|
||||
}
|
||||
|
||||
// 4.
|
||||
/* 4 */
|
||||
ret_value = ecma_make_simple_value (is_frozen ? ECMA_SIMPLE_VALUE_TRUE
|
||||
: ECMA_SIMPLE_VALUE_FALSE);
|
||||
}
|
||||
@@ -585,7 +585,7 @@ ecma_builtin_object_object_get_own_property_descriptor (ecma_value_t this_arg, /
|
||||
JERRY_UNUSED (this_arg);
|
||||
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
||||
|
||||
// 1.
|
||||
/* 1. */
|
||||
if (!ecma_is_value_object (arg1))
|
||||
{
|
||||
ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Argument is not an object."));
|
||||
@@ -594,19 +594,19 @@ ecma_builtin_object_object_get_own_property_descriptor (ecma_value_t this_arg, /
|
||||
|
||||
ecma_object_t *obj_p = ecma_get_object_from_value (arg1);
|
||||
|
||||
// 2.
|
||||
/* 2. */
|
||||
ECMA_TRY_CATCH (name_str_value,
|
||||
ecma_op_to_string (arg2),
|
||||
ret_value);
|
||||
|
||||
ecma_string_t *name_str_p = ecma_get_string_from_value (name_str_value);
|
||||
|
||||
// 3.
|
||||
/* 3. */
|
||||
ecma_property_descriptor_t prop_desc;
|
||||
|
||||
if (ecma_op_object_get_own_property_descriptor (obj_p, name_str_p, &prop_desc))
|
||||
{
|
||||
// 4.
|
||||
/* 4. */
|
||||
ecma_object_t *desc_obj_p = ecma_op_from_property_descriptor (&prop_desc);
|
||||
|
||||
ecma_free_property_descriptor (&prop_desc);
|
||||
@@ -639,7 +639,7 @@ ecma_builtin_object_object_create (ecma_value_t this_arg, /**< 'this' argument *
|
||||
{
|
||||
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
||||
|
||||
// 1.
|
||||
/* 1. */
|
||||
if (!ecma_is_value_object (arg1) && !ecma_is_value_null (arg1))
|
||||
{
|
||||
ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Argument is not an object."));
|
||||
@@ -652,10 +652,10 @@ ecma_builtin_object_object_create (ecma_value_t this_arg, /**< 'this' argument *
|
||||
{
|
||||
obj_p = ecma_get_object_from_value (arg1);
|
||||
}
|
||||
// 2-3.
|
||||
/* 2-3. */
|
||||
ecma_object_t *result_obj_p = ecma_op_create_object_object_noarg_and_set_prototype (obj_p);
|
||||
|
||||
// 4.
|
||||
/* 4. */
|
||||
if (!ecma_is_value_undefined (arg2))
|
||||
{
|
||||
ECMA_TRY_CATCH (obj,
|
||||
@@ -666,7 +666,7 @@ ecma_builtin_object_object_create (ecma_value_t this_arg, /**< 'this' argument *
|
||||
ECMA_FINALIZE (obj);
|
||||
}
|
||||
|
||||
// 5.
|
||||
/* 5. */
|
||||
if (ecma_is_value_empty (ret_value))
|
||||
{
|
||||
ret_value = ecma_copy_value (ecma_make_object_value (result_obj_p));
|
||||
@@ -695,7 +695,7 @@ ecma_builtin_object_object_define_properties (ecma_value_t this_arg, /**< 'this'
|
||||
JERRY_UNUSED (this_arg);
|
||||
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
||||
|
||||
// 1.
|
||||
/* 1. */
|
||||
if (!ecma_is_value_object (arg1))
|
||||
{
|
||||
ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Argument is not an object."));
|
||||
@@ -704,20 +704,20 @@ ecma_builtin_object_object_define_properties (ecma_value_t this_arg, /**< 'this'
|
||||
{
|
||||
ecma_object_t *obj_p = ecma_get_object_from_value (arg1);
|
||||
|
||||
// 2.
|
||||
/* 2. */
|
||||
ECMA_TRY_CATCH (props,
|
||||
ecma_op_to_object (arg2),
|
||||
ret_value);
|
||||
|
||||
ecma_object_t *props_p = ecma_get_object_from_value (props);
|
||||
// 3.
|
||||
/* 3. */
|
||||
ecma_collection_header_t *prop_names_p = ecma_op_object_get_property_names (props_p, false, true, false);
|
||||
uint32_t property_number = prop_names_p->unit_number;
|
||||
|
||||
ecma_collection_iterator_t iter;
|
||||
ecma_collection_iterator_init (&iter, prop_names_p);
|
||||
|
||||
// 4.
|
||||
/* 4. */
|
||||
JMEM_DEFINE_LOCAL_ARRAY (property_descriptors, property_number, ecma_property_descriptor_t);
|
||||
|
||||
uint32_t property_descriptor_number = 0;
|
||||
@@ -725,12 +725,12 @@ ecma_builtin_object_object_define_properties (ecma_value_t this_arg, /**< 'this'
|
||||
while (ecma_collection_iterator_next (&iter)
|
||||
&& ecma_is_value_empty (ret_value))
|
||||
{
|
||||
// 5.a
|
||||
/* 5.a */
|
||||
ECMA_TRY_CATCH (desc_obj,
|
||||
ecma_op_object_get (props_p, ecma_get_string_from_value (*iter.current_value_p)),
|
||||
ret_value);
|
||||
|
||||
// 5.b
|
||||
/* 5.b */
|
||||
ECMA_TRY_CATCH (conv_result,
|
||||
ecma_op_to_property_descriptor (desc_obj,
|
||||
&property_descriptors[property_descriptor_number]),
|
||||
@@ -742,7 +742,7 @@ ecma_builtin_object_object_define_properties (ecma_value_t this_arg, /**< 'this'
|
||||
ECMA_FINALIZE (desc_obj);
|
||||
}
|
||||
|
||||
// 6.
|
||||
/* 6. */
|
||||
ecma_collection_iterator_init (&iter, prop_names_p);
|
||||
for (uint32_t index = 0;
|
||||
index < property_number && ecma_is_value_empty (ret_value);
|
||||
@@ -761,7 +761,7 @@ ecma_builtin_object_object_define_properties (ecma_value_t this_arg, /**< 'this'
|
||||
ECMA_FINALIZE (define_own_prop_ret);
|
||||
}
|
||||
|
||||
// Clean up
|
||||
/* Clean up. */
|
||||
for (uint32_t index = 0;
|
||||
index < property_descriptor_number;
|
||||
index++)
|
||||
@@ -773,7 +773,7 @@ ecma_builtin_object_object_define_properties (ecma_value_t this_arg, /**< 'this'
|
||||
|
||||
ecma_free_values_collection (prop_names_p, true);
|
||||
|
||||
// 7.
|
||||
/* 7. */
|
||||
if (ecma_is_value_empty (ret_value))
|
||||
{
|
||||
ret_value = ecma_copy_value (arg1);
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_OBJECT)
|
||||
/* Number properties:
|
||||
* (property name, number value, writable, enumerable, configurable) */
|
||||
|
||||
// 15.2.3
|
||||
/* ECMA-262 v5, 15.2.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
1,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -47,7 +47,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.2.3.1
|
||||
/* ECMA-262 v5, 15.2.3.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -35,17 +35,17 @@ OBJECT_ID (ECMA_BUILTIN_ID_RANGE_ERROR_PROTOTYPE)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.11.7.8
|
||||
/* ECMA-262 v5, 15.11.7.8 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_RANGE_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.7.9
|
||||
/* ECMA-262 v5, 15.11.7.9 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||
LIT_MAGIC_STRING_RANGE_ERROR_UL,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.7.10
|
||||
/* ECMA-262 v5, 15.11.7.10 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_MESSAGE,
|
||||
LIT_MAGIC_STRING__EMPTY,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_RANGE_ERROR)
|
||||
/* Number properties:
|
||||
* (property name, number value, writable, enumerable, configurable) */
|
||||
|
||||
// 15.11.3
|
||||
/* ECMA-262 v5, 15.11.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
1,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -47,7 +47,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.11.3.1
|
||||
/* ECMA-262 v5, 15.11.3.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_RANGE_ERROR_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -35,17 +35,17 @@ OBJECT_ID (ECMA_BUILTIN_ID_REFERENCE_ERROR_PROTOTYPE)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.11.7.8
|
||||
/* ECMA-262 v5, 15.11.7.8 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_REFERENCE_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.7.9
|
||||
/* ECMA-262 v5, 15.11.7.9 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||
LIT_MAGIC_STRING_REFERENCE_ERROR_UL,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.7.10
|
||||
/* ECMA-262 v5, 15.11.7.10 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_MESSAGE,
|
||||
LIT_MAGIC_STRING__EMPTY,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_REFERENCE_ERROR)
|
||||
/* Number properties:
|
||||
* (property name, number value, writable, enumerable, configurable) */
|
||||
|
||||
// 15.11.3
|
||||
/* ECMA-262 v5, 15.11.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
1,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -47,7 +47,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.11.3.1
|
||||
/* ECMA-262 v5, 15.11.3.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_REFERENCE_ERROR_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -45,32 +45,32 @@
|
||||
/* Object identifier */
|
||||
OBJECT_ID (ECMA_BUILTIN_ID_REGEXP_PROTOTYPE)
|
||||
|
||||
// ECMA-262 v5, 15.10.6.1
|
||||
/* ECMA-262 v5, 15.10.6.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_REGEXP,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// ECMA-262 v5, 15.10.7.1
|
||||
/* ECMA-262 v5, 15.10.7.1 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_SOURCE,
|
||||
LIT_MAGIC_STRING_EMPTY_NON_CAPTURE_GROUP,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// ECMA-262 v5, 15.10.7.2
|
||||
/* ECMA-262 v5, 15.10.7.2 */
|
||||
SIMPLE_VALUE (LIT_MAGIC_STRING_GLOBAL,
|
||||
ECMA_SIMPLE_VALUE_FALSE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// ECMA-262 v5, 15.10.7.3
|
||||
/* ECMA-262 v5, 15.10.7.3 */
|
||||
SIMPLE_VALUE (LIT_MAGIC_STRING_IGNORECASE_UL,
|
||||
ECMA_SIMPLE_VALUE_FALSE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// ECMA-262 v5, 15.10.7.4
|
||||
/* ECMA-262 v5, 15.10.7.4 */
|
||||
SIMPLE_VALUE (LIT_MAGIC_STRING_MULTILINE,
|
||||
ECMA_SIMPLE_VALUE_FALSE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// ECMA-262 v5, 15.10.7.5
|
||||
/* ECMA-262 v5, 15.10.7.5 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LASTINDEX_UL,
|
||||
0,
|
||||
ECMA_PROPERTY_FLAG_WRITABLE)
|
||||
|
||||
@@ -33,12 +33,12 @@
|
||||
/* Object identifier */
|
||||
OBJECT_ID (ECMA_BUILTIN_ID_REGEXP)
|
||||
|
||||
// ECMA-262 v5, 15.10.5
|
||||
/* ECMA-262 v5, 15.10.5 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
2,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
// ECMA-262 v5, 15.10.5.1
|
||||
/* ECMA-262 v5, 15.10.5.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_REGEXP_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_STRING_PROTOTYPE)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.5.4.1
|
||||
/* ECMA-262 v5, 15.5.4.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_STRING,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
@@ -47,7 +47,7 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
/* Number properties:
|
||||
* (property name, number value) */
|
||||
|
||||
// 15.5.4 (String.prototype is itself a String object whose value is an empty String), 15.5.5.1
|
||||
/* ECMA-262 v5, 15.5.4 (String.prototype is itself a String object whose value is an empty String), 15.5.5.1 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
0,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_STRING)
|
||||
/* Number properties:
|
||||
* (property name, number value, writable, enumerable, configurable) */
|
||||
|
||||
// 15.5.3
|
||||
/* ECMA-262 v5, 15.5.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
1,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -47,7 +47,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.7.3.1
|
||||
/* ECMA-262 v5, 15.7.3.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_STRING_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -35,17 +35,17 @@ OBJECT_ID (ECMA_BUILTIN_ID_SYNTAX_ERROR_PROTOTYPE)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.11.7.8
|
||||
/* ECMA-262 v5, 15.11.7.8 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_SYNTAX_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.7.9
|
||||
/* ECMA-262 v5, 15.11.7.9 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||
LIT_MAGIC_STRING_SYNTAX_ERROR_UL,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.7.10
|
||||
/* ECMA-262 v5, 15.11.7.10 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_MESSAGE,
|
||||
LIT_MAGIC_STRING__EMPTY,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_SYNTAX_ERROR)
|
||||
/* Number properties:
|
||||
* (property name, number value, writable, enumerable, configurable) */
|
||||
|
||||
// 15.11.3
|
||||
/* ECMA-262 v5, 15.11.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
1,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -47,7 +47,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.11.3.1
|
||||
/* ECMA-262 v5, 15.11.3.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_SYNTAX_ERROR_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -35,17 +35,17 @@ OBJECT_ID (ECMA_BUILTIN_ID_TYPE_ERROR_PROTOTYPE)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.11.7.8
|
||||
/* ECMA-262 v5, 15.11.7.8 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_TYPE_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.7.9
|
||||
/* ECMA-262 v5, 15.11.7.9 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||
LIT_MAGIC_STRING_TYPE_ERROR_UL,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.7.10
|
||||
/* ECMA-262 v5, 15.11.7.10 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_MESSAGE,
|
||||
LIT_MAGIC_STRING__EMPTY,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_TYPE_ERROR)
|
||||
/* Number properties:
|
||||
* (property name, number value, writable, enumerable, configurable) */
|
||||
|
||||
// 15.11.3
|
||||
/* ECMA-262 v5, 15.11.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
1,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -47,7 +47,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.11.3.1
|
||||
/* ECMA-262 v5, 15.11.3.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_TYPE_ERROR_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -35,17 +35,17 @@ OBJECT_ID (ECMA_BUILTIN_ID_URI_ERROR_PROTOTYPE)
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.11.7.8
|
||||
/* ECMA-262 v5, 15.11.7.8 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
|
||||
ECMA_BUILTIN_ID_URI_ERROR,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.7.9
|
||||
/* ECMA-262 v5, 15.11.7.9 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||
LIT_MAGIC_STRING_URI_ERROR_UL,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
// 15.11.7.10
|
||||
/* ECMA-262 v5, 15.11.7.10 */
|
||||
STRING_VALUE (LIT_MAGIC_STRING_MESSAGE,
|
||||
LIT_MAGIC_STRING__EMPTY,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
|
||||
@@ -39,7 +39,7 @@ OBJECT_ID (ECMA_BUILTIN_ID_URI_ERROR)
|
||||
/* Number properties:
|
||||
* (property name, number value, writable, enumerable, configurable) */
|
||||
|
||||
// 15.11.3
|
||||
/* ECMA-262 v5, 15.11.3 */
|
||||
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
1,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
@@ -47,7 +47,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
||||
/* Object properties:
|
||||
* (property name, object pointer getter) */
|
||||
|
||||
// 15.11.3.1
|
||||
/* ECMA-262 v5, 15.11.3.1 */
|
||||
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
ECMA_BUILTIN_ID_URI_ERROR_PROTOTYPE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
@@ -53,7 +53,7 @@ ecma_op_abstract_equality_compare (ecma_value_t x, /**< first operand */
|
||||
{
|
||||
if (ecma_is_value_number (y))
|
||||
{
|
||||
// 1.c
|
||||
/* 1.c */
|
||||
ecma_number_t x_num = ecma_get_number_from_value (x);
|
||||
ecma_number_t y_num = ecma_get_number_from_value (y);
|
||||
|
||||
@@ -94,7 +94,7 @@ ecma_op_abstract_equality_compare (ecma_value_t x, /**< first operand */
|
||||
{
|
||||
if (ecma_is_value_string (y))
|
||||
{
|
||||
// 1., d.
|
||||
/* 1., d. */
|
||||
ecma_string_t *x_str_p = ecma_get_string_from_value (x);
|
||||
ecma_string_t *y_str_p = ecma_get_string_from_value (y);
|
||||
|
||||
@@ -105,7 +105,7 @@ ecma_op_abstract_equality_compare (ecma_value_t x, /**< first operand */
|
||||
|
||||
if (ecma_is_value_number (y))
|
||||
{
|
||||
// 4.
|
||||
/* 4. */
|
||||
ecma_value_t x_num_value = ecma_op_to_number (x);
|
||||
|
||||
if (ECMA_IS_VALUE_ERROR (x_num_value))
|
||||
@@ -129,12 +129,12 @@ ecma_op_abstract_equality_compare (ecma_value_t x, /**< first operand */
|
||||
{
|
||||
if (ecma_is_value_boolean (x))
|
||||
{
|
||||
// 1., e.
|
||||
/* 1., e. */
|
||||
/* Note: the (x == y) comparison captures the true case. */
|
||||
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_FALSE);
|
||||
}
|
||||
|
||||
// 7.
|
||||
/* 7. */
|
||||
return ecma_op_abstract_equality_compare (x, ecma_make_integer_value (ecma_is_value_true (y) ? 1 : 0));
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@ ecma_op_abstract_equality_compare (ecma_value_t x, /**< first operand */
|
||||
if (ecma_is_value_string (y)
|
||||
|| ecma_is_value_number (y))
|
||||
{
|
||||
// 9.
|
||||
/* 9. */
|
||||
ecma_value_t x_prim_value = ecma_op_to_primitive (x, ECMA_PREFERRED_TYPE_NO);
|
||||
|
||||
if (ECMA_IS_VALUE_ERROR (x_prim_value))
|
||||
@@ -157,22 +157,22 @@ ecma_op_abstract_equality_compare (ecma_value_t x, /**< first operand */
|
||||
return compare_result;
|
||||
}
|
||||
|
||||
// 1., f.
|
||||
/* 1., f. */
|
||||
/* Note: the (x == y) comparison captures the true case. */
|
||||
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_FALSE);
|
||||
}
|
||||
|
||||
if (ecma_is_value_boolean (x))
|
||||
{
|
||||
// 6.
|
||||
/* 6. */
|
||||
return ecma_op_abstract_equality_compare (ecma_make_integer_value (ecma_is_value_true (x) ? 1 : 0), y);
|
||||
}
|
||||
|
||||
if (ecma_is_value_undefined (x)
|
||||
|| ecma_is_value_null (x))
|
||||
{
|
||||
// 1. a., b.
|
||||
// 2., 3.
|
||||
/* 1. a., b. */
|
||||
/* 2., 3. */
|
||||
bool is_equal = ecma_is_value_undefined (y) || ecma_is_value_null (y);
|
||||
|
||||
return ecma_make_boolean_value (is_equal);
|
||||
@@ -285,7 +285,7 @@ ecma_op_abstract_relational_compare (ecma_value_t x, /**< first operand */
|
||||
{
|
||||
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
||||
|
||||
// 1., 2.
|
||||
/* 1., 2. */
|
||||
ECMA_TRY_CATCH (prim_first_converted_value,
|
||||
ecma_op_to_primitive (x, ECMA_PREFERRED_TYPE_NUMBER),
|
||||
ret_value);
|
||||
@@ -301,17 +301,17 @@ ecma_op_abstract_relational_compare (ecma_value_t x, /**< first operand */
|
||||
|
||||
if (!(is_px_string && is_py_string))
|
||||
{
|
||||
// 3.
|
||||
/* 3. */
|
||||
|
||||
// a.
|
||||
/* a. */
|
||||
ECMA_OP_TO_NUMBER_TRY_CATCH (nx, px, ret_value);
|
||||
ECMA_OP_TO_NUMBER_TRY_CATCH (ny, py, ret_value);
|
||||
|
||||
// b.
|
||||
/* b. */
|
||||
if (ecma_number_is_nan (nx)
|
||||
|| ecma_number_is_nan (ny))
|
||||
{
|
||||
// c., d.
|
||||
/* c., d. */
|
||||
ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
|
||||
}
|
||||
else
|
||||
@@ -325,36 +325,36 @@ ecma_op_abstract_relational_compare (ecma_value_t x, /**< first operand */
|
||||
|| (ecma_number_is_zero (nx)
|
||||
&& ecma_number_is_zero (ny)))
|
||||
{
|
||||
// e., f., g.
|
||||
/* e., f., g. */
|
||||
is_x_less_than_y_check = false;
|
||||
}
|
||||
else if (ecma_number_is_infinity (nx)
|
||||
&& !ecma_number_is_negative (nx))
|
||||
{
|
||||
// h.
|
||||
/* h. */
|
||||
is_x_less_than_y_check = false;
|
||||
}
|
||||
else if (ecma_number_is_infinity (ny)
|
||||
&& !ecma_number_is_negative (ny))
|
||||
{
|
||||
// i.
|
||||
/* i. */
|
||||
is_x_less_than_y_check = true;
|
||||
}
|
||||
else if (ecma_number_is_infinity (ny)
|
||||
&& ecma_number_is_negative (ny))
|
||||
{
|
||||
// j.
|
||||
/* j. */
|
||||
is_x_less_than_y_check = false;
|
||||
}
|
||||
else if (ecma_number_is_infinity (nx)
|
||||
&& ecma_number_is_negative (nx))
|
||||
{
|
||||
// k.
|
||||
/* k. */
|
||||
is_x_less_than_y_check = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// l.
|
||||
/* l. */
|
||||
JERRY_ASSERT (!ecma_number_is_nan (nx)
|
||||
&& !ecma_number_is_infinity (nx));
|
||||
JERRY_ASSERT (!ecma_number_is_nan (ny)
|
||||
@@ -382,7 +382,7 @@ ecma_op_abstract_relational_compare (ecma_value_t x, /**< first operand */
|
||||
ECMA_OP_TO_NUMBER_FINALIZE (nx);
|
||||
}
|
||||
else
|
||||
{ // 4.
|
||||
{ /* 4. */
|
||||
JERRY_ASSERT (is_px_string && is_py_string);
|
||||
|
||||
ecma_string_t *str_x_p = ecma_get_string_from_value (px);
|
||||
|
||||
@@ -121,7 +121,7 @@ ecma_op_same_value (ecma_value_t x, /**< ecma value */
|
||||
* If both are NaN
|
||||
* return true;
|
||||
* else
|
||||
* // one of the numbers is NaN, and another - is not
|
||||
* one of the numbers is NaN, and another - is not
|
||||
* return false;
|
||||
*/
|
||||
return (is_x_nan && is_y_nan);
|
||||
@@ -435,7 +435,7 @@ ecma_op_to_object (ecma_value_t value) /**< ecma value */
|
||||
ecma_object_t *
|
||||
ecma_op_from_property_descriptor (const ecma_property_descriptor_t *src_prop_desc_p) /**< property descriptor */
|
||||
{
|
||||
// 2.
|
||||
/* 2. */
|
||||
ecma_object_t *obj_p = ecma_op_create_object_object_noarg ();
|
||||
|
||||
ecma_value_t completion;
|
||||
@@ -453,13 +453,13 @@ ecma_op_from_property_descriptor (const ecma_property_descriptor_t *src_prop_des
|
||||
prop_desc.is_configurable = true;
|
||||
}
|
||||
|
||||
// 3.
|
||||
/* 3. */
|
||||
if (src_prop_desc_p->is_value_defined
|
||||
|| src_prop_desc_p->is_writable_defined)
|
||||
{
|
||||
JERRY_ASSERT (prop_desc.is_value_defined && prop_desc.is_writable_defined);
|
||||
|
||||
// a.
|
||||
/* a. */
|
||||
prop_desc.value = src_prop_desc_p->value;
|
||||
|
||||
ecma_string_t *value_magic_string_p = ecma_get_magic_string (LIT_MAGIC_STRING_VALUE);
|
||||
@@ -470,7 +470,7 @@ ecma_op_from_property_descriptor (const ecma_property_descriptor_t *src_prop_des
|
||||
ecma_deref_ecma_string (value_magic_string_p);
|
||||
JERRY_ASSERT (ecma_is_value_true (completion));
|
||||
|
||||
// b.
|
||||
/* b. */
|
||||
const bool is_writable = (src_prop_desc_p->is_writable);
|
||||
prop_desc.value = ecma_make_boolean_value (is_writable);
|
||||
|
||||
@@ -484,11 +484,11 @@ ecma_op_from_property_descriptor (const ecma_property_descriptor_t *src_prop_des
|
||||
}
|
||||
else
|
||||
{
|
||||
// 4.
|
||||
/* 4. */
|
||||
JERRY_ASSERT (src_prop_desc_p->is_get_defined
|
||||
|| src_prop_desc_p->is_set_defined);
|
||||
|
||||
// a.
|
||||
/* a. */
|
||||
if (src_prop_desc_p->get_p == NULL)
|
||||
{
|
||||
prop_desc.value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
|
||||
@@ -506,7 +506,7 @@ ecma_op_from_property_descriptor (const ecma_property_descriptor_t *src_prop_des
|
||||
ecma_deref_ecma_string (get_magic_string_p);
|
||||
JERRY_ASSERT (ecma_is_value_true (completion));
|
||||
|
||||
// b.
|
||||
/* b. */
|
||||
if (src_prop_desc_p->set_p == NULL)
|
||||
{
|
||||
prop_desc.value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED);
|
||||
@@ -567,7 +567,7 @@ ecma_op_to_property_descriptor (ecma_value_t obj_value, /**< object value */
|
||||
{
|
||||
ecma_value_t ret_value = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
|
||||
|
||||
// 1.
|
||||
/* 1. */
|
||||
if (!ecma_is_value_object (obj_value))
|
||||
{
|
||||
ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Expected an object."));
|
||||
@@ -576,10 +576,10 @@ ecma_op_to_property_descriptor (ecma_value_t obj_value, /**< object value */
|
||||
{
|
||||
ecma_object_t *obj_p = ecma_get_object_from_value (obj_value);
|
||||
|
||||
// 2.
|
||||
/* 2. */
|
||||
ecma_property_descriptor_t prop_desc = ecma_make_empty_property_descriptor ();
|
||||
|
||||
// 3.
|
||||
/* 3. */
|
||||
ecma_string_t *enumerable_magic_string_p = ecma_get_magic_string (LIT_MAGIC_STRING_ENUMERABLE);
|
||||
|
||||
ECMA_TRY_CATCH (enumerable_prop_value,
|
||||
@@ -600,7 +600,7 @@ ecma_op_to_property_descriptor (ecma_value_t obj_value, /**< object value */
|
||||
{
|
||||
JERRY_ASSERT (ecma_is_value_empty (ret_value));
|
||||
|
||||
// 4.
|
||||
/* 4. */
|
||||
ecma_string_t *configurable_magic_string_p = ecma_get_magic_string (LIT_MAGIC_STRING_CONFIGURABLE);
|
||||
|
||||
ECMA_TRY_CATCH (configurable_prop_value,
|
||||
@@ -622,7 +622,7 @@ ecma_op_to_property_descriptor (ecma_value_t obj_value, /**< object value */
|
||||
{
|
||||
JERRY_ASSERT (ecma_is_value_empty (ret_value));
|
||||
|
||||
// 5.
|
||||
/* 5. */
|
||||
ecma_string_t *value_magic_string_p = ecma_get_magic_string (LIT_MAGIC_STRING_VALUE);
|
||||
|
||||
ECMA_TRY_CATCH (value_prop_value,
|
||||
@@ -644,7 +644,7 @@ ecma_op_to_property_descriptor (ecma_value_t obj_value, /**< object value */
|
||||
{
|
||||
JERRY_ASSERT (ecma_is_value_empty (ret_value));
|
||||
|
||||
// 6.
|
||||
/* 6. */
|
||||
ecma_string_t *writable_magic_string_p = ecma_get_magic_string (LIT_MAGIC_STRING_WRITABLE);
|
||||
|
||||
ECMA_TRY_CATCH (writable_prop_value,
|
||||
@@ -666,7 +666,7 @@ ecma_op_to_property_descriptor (ecma_value_t obj_value, /**< object value */
|
||||
{
|
||||
JERRY_ASSERT (ecma_is_value_empty (ret_value));
|
||||
|
||||
// 7.
|
||||
/* 7. */
|
||||
ecma_string_t *get_magic_string_p = ecma_get_magic_string (LIT_MAGIC_STRING_GET);
|
||||
|
||||
ECMA_TRY_CATCH (get_prop_value,
|
||||
@@ -709,8 +709,7 @@ ecma_op_to_property_descriptor (ecma_value_t obj_value, /**< object value */
|
||||
{
|
||||
JERRY_ASSERT (ecma_is_value_empty (ret_value));
|
||||
|
||||
// 8.
|
||||
|
||||
/* 8. */
|
||||
ecma_string_t *set_magic_string_p = ecma_get_magic_string (LIT_MAGIC_STRING_SET);
|
||||
|
||||
ECMA_TRY_CATCH (set_prop_value,
|
||||
@@ -753,7 +752,7 @@ ecma_op_to_property_descriptor (ecma_value_t obj_value, /**< object value */
|
||||
{
|
||||
JERRY_ASSERT (ecma_is_value_empty (ret_value));
|
||||
|
||||
// 9.
|
||||
/* 9. */
|
||||
if (prop_desc.is_get_defined
|
||||
|| prop_desc.is_set_defined)
|
||||
{
|
||||
|
||||
@@ -112,7 +112,7 @@ ecma_op_create_function_object (ecma_object_t *scope_p, /**< function's scope */
|
||||
is_strict_mode_code = true;
|
||||
}
|
||||
|
||||
// 1., 4., 13.
|
||||
/* 1., 4., 13. */
|
||||
ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE);
|
||||
|
||||
ecma_object_t *func_p = ecma_create_object (prototype_obj_p,
|
||||
@@ -121,14 +121,14 @@ ecma_op_create_function_object (ecma_object_t *scope_p, /**< function's scope */
|
||||
|
||||
ecma_deref_object (prototype_obj_p);
|
||||
|
||||
// 2., 6., 7., 8.
|
||||
/* 2., 6., 7., 8. */
|
||||
/*
|
||||
* We don't setup [[Get]], [[Call]], [[Construct]], [[HasInstance]] for each function object.
|
||||
* Instead we set the object's type to ECMA_OBJECT_TYPE_FUNCTION
|
||||
* that defines which version of the routine should be used on demand.
|
||||
*/
|
||||
|
||||
// 3.
|
||||
/* 3. */
|
||||
/*
|
||||
* [[Class]] property is not stored explicitly for objects of ECMA_OBJECT_TYPE_FUNCTION type.
|
||||
*
|
||||
@@ -137,21 +137,21 @@ ecma_op_create_function_object (ecma_object_t *scope_p, /**< function's scope */
|
||||
|
||||
ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) func_p;
|
||||
|
||||
// 9.
|
||||
/* 9. */
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (ext_func_p->u.function.scope_cp, scope_p);
|
||||
|
||||
// 10., 11., 12.
|
||||
/* 10., 11., 12. */
|
||||
ECMA_SET_INTERNAL_VALUE_POINTER (ext_func_p->u.function.bytecode_cp, bytecode_data_p);
|
||||
ecma_bytecode_ref ((ecma_compiled_code_t *) bytecode_data_p);
|
||||
|
||||
// 14., 15., 16., 17., 18.
|
||||
/* 14., 15., 16., 17., 18. */
|
||||
/*
|
||||
* 'length' and 'prototype' properties are instantiated lazily
|
||||
*
|
||||
* See also: ecma_op_function_try_lazy_instantiate_property
|
||||
*/
|
||||
|
||||
// 19.
|
||||
/* 19. */
|
||||
if (is_strict_mode_code)
|
||||
{
|
||||
ecma_object_t *thrower_p = ecma_builtin_get (ECMA_BUILTIN_ID_TYPE_ERROR_THROWER);
|
||||
@@ -481,7 +481,7 @@ ecma_op_function_call (ecma_object_t *func_obj_p, /**< Function object */
|
||||
ecma_object_t *scope_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_object_t,
|
||||
ext_func_p->u.function.scope_cp);
|
||||
|
||||
// 8.
|
||||
/* 8. */
|
||||
ecma_value_t this_binding;
|
||||
bool is_strict;
|
||||
bool is_no_lex_env;
|
||||
@@ -493,7 +493,7 @@ ecma_op_function_call (ecma_object_t *func_obj_p, /**< Function object */
|
||||
is_strict = (bytecode_data_p->status_flags & CBC_CODE_FLAGS_STRICT_MODE) ? true : false;
|
||||
is_no_lex_env = (bytecode_data_p->status_flags & CBC_CODE_FLAGS_LEXICAL_ENV_NOT_NEEDED) ? true : false;
|
||||
|
||||
// 1.
|
||||
/* 1. */
|
||||
if (is_strict)
|
||||
{
|
||||
this_binding = ecma_copy_value (this_arg_value);
|
||||
@@ -501,18 +501,18 @@ ecma_op_function_call (ecma_object_t *func_obj_p, /**< Function object */
|
||||
else if (ecma_is_value_undefined (this_arg_value)
|
||||
|| ecma_is_value_null (this_arg_value))
|
||||
{
|
||||
// 2.
|
||||
/* 2. */
|
||||
this_binding = ecma_make_object_value (ecma_builtin_get (ECMA_BUILTIN_ID_GLOBAL));
|
||||
}
|
||||
else
|
||||
{
|
||||
// 3., 4.
|
||||
/* 3., 4. */
|
||||
this_binding = ecma_op_to_object (this_arg_value);
|
||||
|
||||
JERRY_ASSERT (!ECMA_IS_VALUE_ERROR (this_binding));
|
||||
}
|
||||
|
||||
// 5.
|
||||
/* 5. */
|
||||
ecma_object_t *local_env_p;
|
||||
if (is_no_lex_env)
|
||||
{
|
||||
@@ -629,24 +629,24 @@ ecma_op_function_construct_simple_or_external (ecma_object_t *func_obj_p, /**< F
|
||||
|
||||
ecma_string_t *prototype_magic_string_p = ecma_get_magic_string (LIT_MAGIC_STRING_PROTOTYPE);
|
||||
|
||||
// 5.
|
||||
/* 5. */
|
||||
ECMA_TRY_CATCH (func_obj_prototype_prop_value,
|
||||
ecma_op_object_get (func_obj_p,
|
||||
prototype_magic_string_p),
|
||||
ret_value);
|
||||
|
||||
// 1., 2., 4.
|
||||
/* 1., 2., 4. */
|
||||
ecma_object_t *obj_p;
|
||||
if (ecma_is_value_object (func_obj_prototype_prop_value))
|
||||
{
|
||||
// 6.
|
||||
/* 6. */
|
||||
obj_p = ecma_create_object (ecma_get_object_from_value (func_obj_prototype_prop_value),
|
||||
0,
|
||||
ECMA_OBJECT_TYPE_GENERAL);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 7.
|
||||
/* 7. */
|
||||
ecma_object_t *prototype_p = ecma_builtin_get (ECMA_BUILTIN_ID_OBJECT_PROTOTYPE);
|
||||
|
||||
obj_p = ecma_create_object (prototype_p, 0, ECMA_OBJECT_TYPE_GENERAL);
|
||||
@@ -654,7 +654,7 @@ ecma_op_function_construct_simple_or_external (ecma_object_t *func_obj_p, /**< F
|
||||
ecma_deref_object (prototype_p);
|
||||
}
|
||||
|
||||
// 3.
|
||||
/* 3. */
|
||||
/*
|
||||
* [[Class]] property of ECMA_OBJECT_TYPE_GENERAL type objects
|
||||
* without ECMA_INTERNAL_PROPERTY_CLASS internal property
|
||||
@@ -663,7 +663,7 @@ ecma_op_function_construct_simple_or_external (ecma_object_t *func_obj_p, /**< F
|
||||
* See also: ecma_object_get_class_name.
|
||||
*/
|
||||
|
||||
// 8.
|
||||
/* 8. */
|
||||
ECMA_TRY_CATCH (call_completion,
|
||||
ecma_op_function_call (func_obj_p,
|
||||
ecma_make_object_value (obj_p),
|
||||
@@ -671,14 +671,14 @@ ecma_op_function_construct_simple_or_external (ecma_object_t *func_obj_p, /**< F
|
||||
arguments_list_len),
|
||||
ret_value);
|
||||
|
||||
// 9.
|
||||
/* 9. */
|
||||
if (ecma_is_value_object (call_completion))
|
||||
{
|
||||
ret_value = ecma_copy_value (call_completion);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 10.
|
||||
/* 10. */
|
||||
ecma_ref_object (obj_p);
|
||||
ret_value = ecma_make_object_value (obj_p);
|
||||
}
|
||||
|
||||
@@ -50,17 +50,17 @@ ecma_op_get_value_lex_env_base (ecma_object_t *ref_base_lex_env_p, /**< referenc
|
||||
{
|
||||
const bool is_unresolvable_reference = (ref_base_lex_env_p == NULL);
|
||||
|
||||
// 3.
|
||||
/* 3. */
|
||||
if (unlikely (is_unresolvable_reference))
|
||||
{
|
||||
return ecma_raise_reference_error (ECMA_ERR_MSG ("Cannot resolve reference."));
|
||||
}
|
||||
|
||||
// 5.
|
||||
/* 5. */
|
||||
JERRY_ASSERT (ref_base_lex_env_p != NULL
|
||||
&& ecma_is_lexical_environment (ref_base_lex_env_p));
|
||||
|
||||
// 5.a
|
||||
/* 5.a */
|
||||
return ecma_op_get_binding_value (ref_base_lex_env_p,
|
||||
var_name_string_p,
|
||||
is_strict);
|
||||
@@ -144,17 +144,17 @@ ecma_op_put_value_lex_env_base (ecma_object_t *ref_base_lex_env_p, /**< referenc
|
||||
{
|
||||
const bool is_unresolvable_reference = (ref_base_lex_env_p == NULL);
|
||||
|
||||
// 3.
|
||||
/* 3. */
|
||||
if (unlikely (is_unresolvable_reference))
|
||||
{
|
||||
// 3.a.
|
||||
/* 3.a. */
|
||||
if (is_strict)
|
||||
{
|
||||
return ecma_raise_reference_error (ECMA_ERR_MSG ("Cannot resolve reference."));
|
||||
}
|
||||
else
|
||||
{
|
||||
// 3.b.
|
||||
/* 3.b. */
|
||||
ecma_object_t *global_object_p = ecma_builtin_get (ECMA_BUILTIN_ID_GLOBAL);
|
||||
|
||||
ecma_value_t completion = ecma_op_object_put (global_object_p,
|
||||
@@ -170,11 +170,11 @@ ecma_op_put_value_lex_env_base (ecma_object_t *ref_base_lex_env_p, /**< referenc
|
||||
}
|
||||
}
|
||||
|
||||
// 5.
|
||||
/* 5. */
|
||||
JERRY_ASSERT (ref_base_lex_env_p != NULL
|
||||
&& ecma_is_lexical_environment (ref_base_lex_env_p));
|
||||
|
||||
// 5.a
|
||||
/* 5.a */
|
||||
return ecma_op_set_mutable_binding (ref_base_lex_env_p,
|
||||
var_name_string_p,
|
||||
value,
|
||||
|
||||
@@ -114,7 +114,7 @@ ecma_op_create_arguments_object (ecma_object_t *func_obj_p, /**< callee function
|
||||
|
||||
ecma_property_value_t *prop_value_p;
|
||||
|
||||
// 11.a, 11.b
|
||||
/* 11.a, 11.b */
|
||||
for (ecma_length_t indx = 0;
|
||||
indx < arguments_number;
|
||||
indx++)
|
||||
@@ -131,7 +131,7 @@ ecma_op_create_arguments_object (ecma_object_t *func_obj_p, /**< callee function
|
||||
ecma_deref_ecma_string (indx_string_p);
|
||||
}
|
||||
|
||||
// 7.
|
||||
/* 7. */
|
||||
ecma_string_t *length_magic_string_p = ecma_new_ecma_length_string ();
|
||||
|
||||
prop_value_p = ecma_create_named_data_property (obj_p,
|
||||
@@ -145,7 +145,7 @@ ecma_op_create_arguments_object (ecma_object_t *func_obj_p, /**< callee function
|
||||
|
||||
ecma_property_descriptor_t prop_desc = ecma_make_empty_property_descriptor ();
|
||||
|
||||
// 13.
|
||||
/* 13. */
|
||||
if (!is_strict)
|
||||
{
|
||||
ecma_string_t *callee_magic_string_p = ecma_get_magic_string (LIT_MAGIC_STRING_CALLEE);
|
||||
@@ -163,7 +163,7 @@ ecma_op_create_arguments_object (ecma_object_t *func_obj_p, /**< callee function
|
||||
{
|
||||
ecma_object_t *thrower_p = ecma_builtin_get (ECMA_BUILTIN_ID_TYPE_ERROR_THROWER);
|
||||
|
||||
// 14.
|
||||
/* 14. */
|
||||
prop_desc = ecma_make_empty_property_descriptor ();
|
||||
{
|
||||
prop_desc.is_get_defined = true;
|
||||
@@ -244,7 +244,7 @@ ecma_op_arguments_object_define_own_property (ecma_object_t *object_p, /**< the
|
||||
* descriptor */
|
||||
bool is_throw) /**< flag that controls failure handling */
|
||||
{
|
||||
// 3.
|
||||
/* 3. */
|
||||
ecma_value_t ret_value = ecma_op_general_object_define_own_property (object_p,
|
||||
property_name_p,
|
||||
property_desc_p,
|
||||
@@ -326,7 +326,7 @@ ecma_op_arguments_object_delete (ecma_object_t *object_p, /**< the object */
|
||||
ecma_string_t *property_name_p, /**< property name */
|
||||
bool is_throw) /**< flag that controls failure handling */
|
||||
{
|
||||
// 3.
|
||||
/* 3. */
|
||||
ecma_value_t ret_value = ecma_op_general_object_delete (object_p, property_name_p, is_throw);
|
||||
|
||||
if (ECMA_IS_VALUE_ERROR (ret_value))
|
||||
|
||||
@@ -62,7 +62,7 @@ ecma_op_create_object_object_noarg (void)
|
||||
{
|
||||
ecma_object_t *object_prototype_p = ecma_builtin_get (ECMA_BUILTIN_ID_OBJECT_PROTOTYPE);
|
||||
|
||||
// 3., 4., 6., 7.
|
||||
/* 3., 4., 6., 7. */
|
||||
ecma_object_t *obj_p = ecma_op_create_object_object_noarg_and_set_prototype (object_prototype_p);
|
||||
|
||||
ecma_deref_object (object_prototype_p);
|
||||
@@ -87,12 +87,12 @@ ecma_op_create_object_object_arg (ecma_value_t value) /**< argument of construct
|
||||
|| ecma_is_value_string (value)
|
||||
|| ecma_is_value_boolean (value))
|
||||
{
|
||||
// 1.b, 1.c, 1.d
|
||||
/* 1.b, 1.c, 1.d */
|
||||
return ecma_op_to_object (value);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 2.
|
||||
/* 2. */
|
||||
JERRY_ASSERT (ecma_is_value_undefined (value)
|
||||
|| ecma_is_value_null (value));
|
||||
|
||||
@@ -147,7 +147,7 @@ ecma_op_general_object_delete (ecma_object_t *obj_p, /**< the object */
|
||||
&& !ecma_is_lexical_environment (obj_p));
|
||||
JERRY_ASSERT (property_name_p != NULL);
|
||||
|
||||
// 1.
|
||||
/* 1. */
|
||||
ecma_property_ref_t property_ref;
|
||||
|
||||
ecma_property_t property = ecma_op_object_get_own_property (obj_p,
|
||||
@@ -155,29 +155,29 @@ ecma_op_general_object_delete (ecma_object_t *obj_p, /**< the object */
|
||||
&property_ref,
|
||||
ECMA_PROPERTY_GET_NO_OPTIONS);
|
||||
|
||||
// 2.
|
||||
/* 2. */
|
||||
if (property == ECMA_PROPERTY_TYPE_NOT_FOUND)
|
||||
{
|
||||
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_TRUE);
|
||||
}
|
||||
|
||||
// 3.
|
||||
/* 3. */
|
||||
if (ecma_is_property_configurable (property))
|
||||
{
|
||||
// a.
|
||||
/* a. */
|
||||
ecma_delete_property (obj_p, property_ref.value_p);
|
||||
|
||||
// b.
|
||||
/* b. */
|
||||
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_TRUE);
|
||||
}
|
||||
else if (is_throw)
|
||||
{
|
||||
// 4.
|
||||
/* 4. */
|
||||
return ecma_raise_type_error (ECMA_ERR_MSG ("Expected a configurable property."));
|
||||
}
|
||||
else
|
||||
{
|
||||
// 5.
|
||||
/* 5. */
|
||||
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_FALSE);
|
||||
}
|
||||
|
||||
@@ -313,7 +313,7 @@ ecma_op_general_object_define_own_property (ecma_object_t *object_p, /**< the ob
|
||||
JERRY_ASSERT (property_desc_p->is_enumerable_defined || !property_desc_p->is_enumerable);
|
||||
JERRY_ASSERT (property_desc_p->is_writable_defined || !property_desc_p->is_writable);
|
||||
|
||||
// 1.
|
||||
/* 1. */
|
||||
ecma_extended_property_ref_t ext_property_ref;
|
||||
ecma_property_t current_prop;
|
||||
|
||||
@@ -324,18 +324,18 @@ ecma_op_general_object_define_own_property (ecma_object_t *object_p, /**< the ob
|
||||
|
||||
if (current_prop == ECMA_PROPERTY_TYPE_NOT_FOUND)
|
||||
{
|
||||
// 3.
|
||||
/* 3. */
|
||||
if (!ecma_get_object_extensible (object_p))
|
||||
{
|
||||
// 2.
|
||||
/* 2. */
|
||||
return ecma_reject (is_throw);
|
||||
}
|
||||
|
||||
// 4.
|
||||
/* 4. */
|
||||
|
||||
if (property_desc_type != ECMA_PROPERTY_TYPE_NAMEDACCESSOR)
|
||||
{
|
||||
// a.
|
||||
/* a. */
|
||||
|
||||
JERRY_ASSERT (property_desc_type == ECMA_PROPERTY_TYPE_GENERIC
|
||||
|| property_desc_type == ECMA_PROPERTY_TYPE_NAMEDDATA);
|
||||
@@ -367,7 +367,7 @@ ecma_op_general_object_define_own_property (ecma_object_t *object_p, /**< the ob
|
||||
}
|
||||
else
|
||||
{
|
||||
// b.
|
||||
/* b. */
|
||||
|
||||
uint8_t prop_attributes = 0;
|
||||
|
||||
@@ -390,7 +390,7 @@ ecma_op_general_object_define_own_property (ecma_object_t *object_p, /**< the ob
|
||||
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_TRUE);
|
||||
}
|
||||
|
||||
// 6.
|
||||
/* 6. */
|
||||
ecma_property_types_t current_property_type = ECMA_PROPERTY_GET_TYPE (current_prop);
|
||||
const bool is_current_configurable = ecma_is_property_configurable (current_prop);
|
||||
|
||||
@@ -398,7 +398,7 @@ ecma_op_general_object_define_own_property (ecma_object_t *object_p, /**< the ob
|
||||
|| current_property_type == ECMA_PROPERTY_TYPE_NAMEDACCESSOR
|
||||
|| current_property_type == ECMA_PROPERTY_TYPE_VIRTUAL);
|
||||
|
||||
// 7. a., b.
|
||||
/* 7. a., b. */
|
||||
if (!is_current_configurable
|
||||
&& (property_desc_p->is_configurable
|
||||
|| (property_desc_p->is_enumerable_defined
|
||||
@@ -430,7 +430,7 @@ ecma_op_general_object_define_own_property (ecma_object_t *object_p, /**< the ob
|
||||
return result;
|
||||
}
|
||||
|
||||
// 8.
|
||||
/* 8. */
|
||||
if (property_desc_type == ECMA_PROPERTY_TYPE_GENERIC)
|
||||
{
|
||||
/* No action required. */
|
||||
@@ -442,7 +442,7 @@ ecma_op_general_object_define_own_property (ecma_object_t *object_p, /**< the ob
|
||||
{
|
||||
if (property_desc_type == ECMA_PROPERTY_TYPE_NAMEDDATA)
|
||||
{
|
||||
// 10. a. i. & ii.
|
||||
/* 10. a. i. & ii. */
|
||||
if (!ecma_is_property_writable (current_prop)
|
||||
&& (property_desc_p->is_writable
|
||||
|| (property_desc_p->is_value_defined
|
||||
@@ -454,9 +454,9 @@ ecma_op_general_object_define_own_property (ecma_object_t *object_p, /**< the ob
|
||||
}
|
||||
else
|
||||
{
|
||||
// 11.
|
||||
/* 11. */
|
||||
|
||||
// a.
|
||||
/* a. */
|
||||
ecma_property_value_t *value_p = ext_property_ref.property_ref.value_p;
|
||||
|
||||
if ((property_desc_p->is_get_defined
|
||||
@@ -464,7 +464,7 @@ ecma_op_general_object_define_own_property (ecma_object_t *object_p, /**< the ob
|
||||
|| (property_desc_p->is_set_defined
|
||||
&& property_desc_p->set_p != ecma_get_named_accessor_property_setter (value_p)))
|
||||
{
|
||||
// i., ii.
|
||||
/* i., ii. */
|
||||
return ecma_reject (is_throw);
|
||||
}
|
||||
}
|
||||
@@ -472,10 +472,10 @@ ecma_op_general_object_define_own_property (ecma_object_t *object_p, /**< the ob
|
||||
}
|
||||
else
|
||||
{
|
||||
// 9.
|
||||
/* 9. */
|
||||
if (!is_current_configurable)
|
||||
{
|
||||
// a.
|
||||
/* a. */
|
||||
return ecma_reject (is_throw);
|
||||
}
|
||||
|
||||
@@ -516,7 +516,7 @@ ecma_op_general_object_define_own_property (ecma_object_t *object_p, /**< the ob
|
||||
*(ext_property_ref.property_p) = prop_flags;
|
||||
}
|
||||
|
||||
// 12.
|
||||
/* 12. */
|
||||
if (property_desc_type == ECMA_PROPERTY_TYPE_NAMEDDATA)
|
||||
{
|
||||
JERRY_ASSERT (ECMA_PROPERTY_GET_TYPE (*ext_property_ref.property_p) == ECMA_PROPERTY_TYPE_NAMEDDATA);
|
||||
|
||||
+17
-17
@@ -190,13 +190,13 @@ void jmem_heap_finalize (void)
|
||||
static __attr_hot___
|
||||
void *jmem_heap_alloc_block_internal (const size_t size)
|
||||
{
|
||||
// Align size
|
||||
/* Align size. */
|
||||
const size_t required_size = ((size + JMEM_ALIGNMENT - 1) / JMEM_ALIGNMENT) * JMEM_ALIGNMENT;
|
||||
jmem_heap_free_t *data_space_p = NULL;
|
||||
|
||||
VALGRIND_DEFINED_SPACE (&JERRY_HEAP_CONTEXT (first), sizeof (jmem_heap_free_t));
|
||||
|
||||
// Fast path for 8 byte chunks, first region is guaranteed to be sufficient
|
||||
/* Fast path for 8 byte chunks, first region is guaranteed to be sufficient. */
|
||||
if (required_size == JMEM_ALIGNMENT
|
||||
&& likely (JERRY_HEAP_CONTEXT (first).next_offset != JMEM_HEAP_END_OF_LIST))
|
||||
{
|
||||
@@ -233,7 +233,7 @@ void *jmem_heap_alloc_block_internal (const size_t size)
|
||||
JERRY_CONTEXT (jmem_heap_list_skip_p) = JMEM_HEAP_GET_ADDR_FROM_OFFSET (JERRY_HEAP_CONTEXT (first).next_offset);
|
||||
}
|
||||
}
|
||||
// Slow path for larger regions
|
||||
/* Slow path for larger regions. */
|
||||
else
|
||||
{
|
||||
uint32_t current_offset = JERRY_HEAP_CONTEXT (first).next_offset;
|
||||
@@ -252,31 +252,31 @@ void *jmem_heap_alloc_block_internal (const size_t size)
|
||||
|
||||
if (current_p->size >= required_size)
|
||||
{
|
||||
// Region is sufficiently big, store address
|
||||
/* Region is sufficiently big, store address. */
|
||||
data_space_p = current_p;
|
||||
JERRY_CONTEXT (jmem_heap_allocated_size) += required_size;
|
||||
|
||||
// Region was larger than necessary
|
||||
/* Region was larger than necessary. */
|
||||
if (current_p->size > required_size)
|
||||
{
|
||||
// Get address of remaining space
|
||||
/* Get address of remaining space. */
|
||||
jmem_heap_free_t *const remaining_p = (jmem_heap_free_t *) ((uint8_t *) current_p + required_size);
|
||||
|
||||
// Update metadata
|
||||
/* Update metadata. */
|
||||
VALGRIND_DEFINED_SPACE (remaining_p, sizeof (jmem_heap_free_t));
|
||||
remaining_p->size = current_p->size - (uint32_t) required_size;
|
||||
remaining_p->next_offset = next_offset;
|
||||
VALGRIND_NOACCESS_SPACE (remaining_p, sizeof (jmem_heap_free_t));
|
||||
|
||||
// Update list
|
||||
/* Update list. */
|
||||
VALGRIND_DEFINED_SPACE (prev_p, sizeof (jmem_heap_free_t));
|
||||
prev_p->next_offset = JMEM_HEAP_GET_OFFSET_FROM_ADDR (remaining_p);
|
||||
VALGRIND_NOACCESS_SPACE (prev_p, sizeof (jmem_heap_free_t));
|
||||
}
|
||||
// Block is an exact fit
|
||||
/* Block is an exact fit. */
|
||||
else
|
||||
{
|
||||
// Remove the region from the list
|
||||
/* Remove the region from the list. */
|
||||
VALGRIND_DEFINED_SPACE (prev_p, sizeof (jmem_heap_free_t));
|
||||
prev_p->next_offset = next_offset;
|
||||
VALGRIND_NOACCESS_SPACE (prev_p, sizeof (jmem_heap_free_t));
|
||||
@@ -284,12 +284,12 @@ void *jmem_heap_alloc_block_internal (const size_t size)
|
||||
|
||||
JERRY_CONTEXT (jmem_heap_list_skip_p) = prev_p;
|
||||
|
||||
// Found enough space
|
||||
/* Found enough space. */
|
||||
break;
|
||||
}
|
||||
|
||||
VALGRIND_NOACCESS_SPACE (current_p, sizeof (jmem_heap_free_t));
|
||||
// Next in list
|
||||
/* Next in list. */
|
||||
prev_p = current_p;
|
||||
current_offset = next_offset;
|
||||
}
|
||||
@@ -450,7 +450,7 @@ jmem_heap_free_block (void *ptr, /**< pointer to beginning of data space of the
|
||||
const uint32_t block_offset = JMEM_HEAP_GET_OFFSET_FROM_ADDR (block_p);
|
||||
|
||||
VALGRIND_DEFINED_SPACE (prev_p, sizeof (jmem_heap_free_t));
|
||||
// Find position of region in the list
|
||||
/* Find position of region in the list. */
|
||||
while (prev_p->next_offset < block_offset)
|
||||
{
|
||||
jmem_heap_free_t *const next_p = JMEM_HEAP_GET_ADDR_FROM_OFFSET (prev_p->next_offset);
|
||||
@@ -471,10 +471,10 @@ jmem_heap_free_block (void *ptr, /**< pointer to beginning of data space of the
|
||||
|
||||
VALGRIND_DEFINED_SPACE (block_p, sizeof (jmem_heap_free_t));
|
||||
VALGRIND_DEFINED_SPACE (prev_p, sizeof (jmem_heap_free_t));
|
||||
// Update prev
|
||||
/* Update prev. */
|
||||
if (jmem_heap_get_region_end (prev_p) == block_p)
|
||||
{
|
||||
// Can be merged
|
||||
/* Can be merged. */
|
||||
prev_p->size += (uint32_t) aligned_size;
|
||||
VALGRIND_NOACCESS_SPACE (block_p, sizeof (jmem_heap_free_t));
|
||||
block_p = prev_p;
|
||||
@@ -486,7 +486,7 @@ jmem_heap_free_block (void *ptr, /**< pointer to beginning of data space of the
|
||||
}
|
||||
|
||||
VALGRIND_DEFINED_SPACE (next_p, sizeof (jmem_heap_free_t));
|
||||
// Update next
|
||||
/* Update next. */
|
||||
if (jmem_heap_get_region_end (block_p) == next_p)
|
||||
{
|
||||
if (unlikely (next_p == JERRY_CONTEXT (jmem_heap_list_skip_p)))
|
||||
@@ -494,7 +494,7 @@ jmem_heap_free_block (void *ptr, /**< pointer to beginning of data space of the
|
||||
JERRY_CONTEXT (jmem_heap_list_skip_p) = block_p;
|
||||
}
|
||||
|
||||
// Can be merged
|
||||
/* Can be merged. */
|
||||
block_p->size += next_p->size;
|
||||
block_p->next_offset = next_p->next_offset;
|
||||
|
||||
|
||||
@@ -228,7 +228,7 @@ lit_char_is_identifier_start (const uint8_t *src_p) /**< pointer to a vaild UTF8
|
||||
bool
|
||||
lit_char_is_identifier_start_character (uint16_t chr) /**< EcmaScript character */
|
||||
{
|
||||
// Fast path for ASCII-defined letters
|
||||
/* Fast path for ASCII-defined letters. */
|
||||
if (chr <= LIT_UTF8_1_BYTE_CODE_POINT_MAX)
|
||||
{
|
||||
return ((LEXER_TO_ASCII_LOWERCASE (chr) >= LIT_CHAR_LOWERCASE_A
|
||||
@@ -264,7 +264,7 @@ lit_char_is_identifier_part (const uint8_t *src_p) /**< pointer to a vaild UTF8
|
||||
bool
|
||||
lit_char_is_identifier_part_character (uint16_t chr) /**< EcmaScript character */
|
||||
{
|
||||
// Fast path for ASCII-defined letters
|
||||
/* Fast path for ASCII-defined letters. */
|
||||
if (chr <= LIT_UTF8_1_BYTE_CODE_POINT_MAX)
|
||||
{
|
||||
return ((LEXER_TO_ASCII_LOWERCASE (chr) >= LIT_CHAR_LOWERCASE_A
|
||||
|
||||
@@ -541,7 +541,7 @@ lit_utf8_string_hash_combine (lit_string_hash_t hash_basis, /**< hash to be comb
|
||||
|
||||
for (uint32_t i = 0; i < utf8_buf_size; i++)
|
||||
{
|
||||
// 16777619 is 32 bit FNV_prime = 2^24 + 2^8 + 0x93 = 16777619
|
||||
/* 16777619 is 32 bit FNV_prime = 2^24 + 2^8 + 0x93 = 16777619 */
|
||||
hash = (hash ^ utf8_buf_p[i]) * 16777619;
|
||||
}
|
||||
|
||||
@@ -559,7 +559,7 @@ lit_utf8_string_calc_hash (const lit_utf8_byte_t *utf8_buf_p, /**< characters bu
|
||||
{
|
||||
JERRY_ASSERT (utf8_buf_p != NULL || utf8_buf_size == 0);
|
||||
|
||||
// 32 bit offset_basis for FNV = 2166136261
|
||||
/* 32 bit offset_basis for FNV = 2166136261 */
|
||||
return lit_utf8_string_hash_combine ((lit_string_hash_t) 2166136261, utf8_buf_p, utf8_buf_size);
|
||||
} /* lit_utf8_string_calc_hash */
|
||||
|
||||
|
||||
@@ -525,7 +525,7 @@ vfprintf (FILE *stream, /**< stream pointer */
|
||||
assert (false && "unsupported width field *");
|
||||
}
|
||||
|
||||
// If there is a number, recognize it as field width
|
||||
/* If there is a number, recognize it as field width. */
|
||||
while (*format_iter_p >= '0' && *format_iter_p <= '9')
|
||||
{
|
||||
width = width * 10u + (uint32_t) (*format_iter_p - '0');
|
||||
|
||||
@@ -56,7 +56,7 @@ CALL_PRAGMA (GCC optimize ("-fno-tree-loop-distribute-patterns"))
|
||||
*
|
||||
* @return @a s
|
||||
*/
|
||||
void * __attr_used___ // FIXME
|
||||
void * __attr_used___
|
||||
memset (void *s, /**< area to set values in */
|
||||
int c, /**< value to set */
|
||||
size_t n) /**< area size */
|
||||
@@ -98,7 +98,7 @@ memcmp (const void *s1, /**< first area */
|
||||
/**
|
||||
* memcpy
|
||||
*/
|
||||
void * __attr_used___ // FIXME
|
||||
void * __attr_used___
|
||||
memcpy (void *s1, /**< destination */
|
||||
const void *s2, /**< source */
|
||||
size_t n) /**< bytes number */
|
||||
@@ -137,7 +137,7 @@ memcpy (void *s1, /**< destination */
|
||||
*
|
||||
* @return the dest pointer's value
|
||||
*/
|
||||
void * __attr_used___ // FIXME
|
||||
void * __attr_used___
|
||||
memmove (void *s1, /**< destination */
|
||||
const void *s2, /**< source */
|
||||
size_t n) /**< bytes number */
|
||||
@@ -216,7 +216,7 @@ strncmp (const char *s1, const char *s2, size_t n)
|
||||
/** Copy a string. At most n bytes of src are copied. Warning: If there is no
|
||||
null byte among the first n bytes of src, the string placed in dest will not be null-terminated.
|
||||
@return a pointer to the destination string dest. */
|
||||
char * __attr_used___ // FIXME
|
||||
char * __attr_used___
|
||||
strncpy (char *dest, const char *src, size_t n)
|
||||
{
|
||||
while (n--)
|
||||
|
||||
@@ -272,7 +272,7 @@ gettimeofday (void *tp, /**< struct timeval */
|
||||
return (int) syscall_2 (SYSCALL_NO (gettimeofday), (long int) tp, (long int) tzp);
|
||||
} /* gettimeofday */
|
||||
|
||||
// FIXME
|
||||
/* FIXME */
|
||||
#if 0
|
||||
/**
|
||||
* Setup new memory limits
|
||||
|
||||
@@ -22,8 +22,7 @@ extern "C"
|
||||
{
|
||||
#endif /* __cplusplus */
|
||||
|
||||
// General Constants
|
||||
|
||||
/* General Constants. */
|
||||
#define INFINITY (1.0/0.0)
|
||||
#define NAN (0.0/0.0)
|
||||
#define HUGE_VAL INFINITY
|
||||
@@ -32,8 +31,7 @@ extern "C"
|
||||
#define isinf(x) (((x) == INFINITY) || ((x) == -INFINITY))
|
||||
#define isfinite(x) (!(isinf(x)) && (x != NAN))
|
||||
|
||||
// Exponential and Logarithmic constants
|
||||
|
||||
/* Exponential and Logarithmic constants. */
|
||||
#define M_E 2.7182818284590452353602874713526625
|
||||
#define M_SQRT2 1.4142135623730950488016887242096981
|
||||
#define M_SQRT1_2 0.7071067811865475244008443621048490
|
||||
@@ -42,8 +40,7 @@ extern "C"
|
||||
#define M_LN2 0.6931471805599453094172321214581765
|
||||
#define M_LN10 2.3025850929940456840179914546843642
|
||||
|
||||
// Trigonometric Constants
|
||||
|
||||
/* Trigonometric Constants. */
|
||||
#define M_PI 3.1415926535897932384626433832795029
|
||||
#define M_PI_2 1.5707963267948966192313216916397514
|
||||
#define M_PI_4 0.7853981633974483096156608458198757
|
||||
@@ -51,7 +48,7 @@ extern "C"
|
||||
#define M_2_PI 0.6366197723675813430755350534900574
|
||||
#define M_2_SQRTPI 1.1283791670955125738961589031215452
|
||||
|
||||
// Trigonometric functions
|
||||
/* Trigonometric functions. */
|
||||
double cos (double);
|
||||
double sin (double);
|
||||
double tan (double);
|
||||
@@ -60,19 +57,19 @@ double asin (double);
|
||||
double atan (double);
|
||||
double atan2 (double, double);
|
||||
|
||||
// Exponential and logarithmic functions
|
||||
/* Exponential and logarithmic functions. */
|
||||
double exp (double);
|
||||
double log (double);
|
||||
|
||||
// Power functions
|
||||
/* Power functions. */
|
||||
double pow (double, double);
|
||||
double sqrt (double);
|
||||
|
||||
// Rounding and remainder functions
|
||||
/* Rounding and remainder functions. */
|
||||
double ceil (double);
|
||||
double floor (double);
|
||||
|
||||
// Other functions
|
||||
/* Other functions. */
|
||||
double fabs (double);
|
||||
double fmod (double, double);
|
||||
|
||||
|
||||
+48
-48
@@ -334,7 +334,7 @@ main (void)
|
||||
|
||||
global_obj_val = jerry_get_global_object ();
|
||||
|
||||
// Test corner case for jerry_string_to_char_buffer
|
||||
/* Test corner case for jerry_string_to_char_buffer */
|
||||
args[0] = jerry_create_string ((jerry_char_t *) "");
|
||||
sz = jerry_get_string_size (args[0]);
|
||||
TEST_ASSERT (sz == 0);
|
||||
@@ -398,24 +398,24 @@ main (void)
|
||||
TEST_ASSERT (utf8_sz == 12);
|
||||
jerry_release_value (args[0]);
|
||||
|
||||
// Get global.boo (non-existing field)
|
||||
/* Get global.boo (non-existing field) */
|
||||
val_t = get_property (global_obj_val, "boo");
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (val_t));
|
||||
TEST_ASSERT (jerry_value_is_undefined (val_t));
|
||||
|
||||
// Get global.t
|
||||
/* Get global.t */
|
||||
val_t = get_property (global_obj_val, "t");
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (val_t));
|
||||
TEST_ASSERT (jerry_value_is_number (val_t)
|
||||
&& jerry_get_number_value (val_t) == 1.0);
|
||||
jerry_release_value (val_t);
|
||||
|
||||
// Get global.foo
|
||||
/* Get global.foo */
|
||||
val_foo = get_property (global_obj_val, "foo");
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (val_foo));
|
||||
TEST_ASSERT (jerry_value_is_object (val_foo));
|
||||
|
||||
// Call foo (4, 2)
|
||||
/* Call foo (4, 2) */
|
||||
args[0] = jerry_create_number (4);
|
||||
args[1] = jerry_create_number (2);
|
||||
res = jerry_call_function (val_foo, jerry_create_undefined (), args, 2);
|
||||
@@ -424,12 +424,12 @@ main (void)
|
||||
&& jerry_get_number_value (res) == 1.0);
|
||||
jerry_release_value (res);
|
||||
|
||||
// Get global.bar
|
||||
/* Get global.bar */
|
||||
val_bar = get_property (global_obj_val, "bar");
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (val_bar));
|
||||
TEST_ASSERT (jerry_value_is_object (val_bar));
|
||||
|
||||
// Call bar (4, 2)
|
||||
/* Call bar (4, 2) */
|
||||
res = jerry_call_function (val_bar, jerry_create_undefined (), args, 2);
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (res));
|
||||
TEST_ASSERT (jerry_value_is_number (res)
|
||||
@@ -437,7 +437,7 @@ main (void)
|
||||
jerry_release_value (res);
|
||||
jerry_release_value (val_bar);
|
||||
|
||||
// Set global.t = "abcd"
|
||||
/* Set global.t = "abcd" */
|
||||
jerry_release_value (args[0]);
|
||||
args[0] = jerry_create_string ((jerry_char_t *) "abcd");
|
||||
res = set_property (global_obj_val, "t", args[0]);
|
||||
@@ -445,7 +445,7 @@ main (void)
|
||||
TEST_ASSERT (jerry_get_boolean_value (res));
|
||||
jerry_release_value (res);
|
||||
|
||||
// Call foo (4, 2)
|
||||
/* Call foo (4, 2) */
|
||||
res = jerry_call_function (val_foo, jerry_create_undefined (), args, 2);
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (res));
|
||||
TEST_ASSERT (jerry_value_is_string (res));
|
||||
@@ -458,12 +458,12 @@ main (void)
|
||||
jerry_release_value (args[0]);
|
||||
jerry_release_value (args[1]);
|
||||
|
||||
// Get global.A
|
||||
/* Get global.A */
|
||||
val_A = get_property (global_obj_val, "A");
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (val_A));
|
||||
TEST_ASSERT (jerry_value_is_object (val_A));
|
||||
|
||||
// Get A.prototype
|
||||
/* Get A.prototype */
|
||||
is_ok = jerry_value_is_constructor (val_A);
|
||||
TEST_ASSERT (is_ok);
|
||||
val_A_prototype = get_property (val_A, "prototype");
|
||||
@@ -471,7 +471,7 @@ main (void)
|
||||
TEST_ASSERT (jerry_value_is_object (val_A_prototype));
|
||||
jerry_release_value (val_A);
|
||||
|
||||
// Set A.prototype.foo = global.foo
|
||||
/* Set A.prototype.foo = global.foo */
|
||||
res = set_property (val_A_prototype, "foo", val_foo);
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (res));
|
||||
TEST_ASSERT (jerry_get_boolean_value (res));
|
||||
@@ -479,42 +479,42 @@ main (void)
|
||||
jerry_release_value (val_A_prototype);
|
||||
jerry_release_value (val_foo);
|
||||
|
||||
// Get global.a
|
||||
/* Get global.a */
|
||||
val_a = get_property (global_obj_val, "a");
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (val_a));
|
||||
TEST_ASSERT (jerry_value_is_object (val_a));
|
||||
|
||||
// Get a.t
|
||||
/* Get a.t */
|
||||
res = get_property (val_a, "t");
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (res));
|
||||
TEST_ASSERT (jerry_value_is_number (res)
|
||||
&& jerry_get_number_value (res) == 12.0);
|
||||
jerry_release_value (res);
|
||||
|
||||
// foreach properties
|
||||
/* foreach properties */
|
||||
val_p = get_property (global_obj_val, "p");
|
||||
is_ok = jerry_foreach_object_property (val_p, foreach, (void *) "user_data");
|
||||
TEST_ASSERT (is_ok);
|
||||
|
||||
// break foreach at third element
|
||||
/* break foreach at third element */
|
||||
int count = 0;
|
||||
is_ok = jerry_foreach_object_property (val_p, foreach_subset, &count);
|
||||
TEST_ASSERT (is_ok);
|
||||
TEST_ASSERT (count == 3);
|
||||
jerry_release_value (val_p);
|
||||
|
||||
// foreach with throw test
|
||||
/* foreach with throw test */
|
||||
val_np = get_property (global_obj_val, "np");
|
||||
is_ok = !jerry_foreach_object_property (val_np, foreach_exception, NULL);
|
||||
TEST_ASSERT (is_ok);
|
||||
jerry_release_value (val_np);
|
||||
|
||||
// Get a.foo
|
||||
/* Get a.foo */
|
||||
val_a_foo = get_property (val_a, "foo");
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (val_a_foo));
|
||||
TEST_ASSERT (jerry_value_is_object (val_a_foo));
|
||||
|
||||
// Call a.foo ()
|
||||
/* Call a.foo () */
|
||||
res = jerry_call_function (val_a_foo, val_a, NULL, 0);
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (res));
|
||||
TEST_ASSERT (jerry_value_is_number (res)
|
||||
@@ -524,7 +524,7 @@ main (void)
|
||||
|
||||
jerry_release_value (val_a);
|
||||
|
||||
// Create native handler bound function object and set it to 'external' variable
|
||||
/* Create native handler bound function object and set it to 'external' variable */
|
||||
external_func_val = jerry_create_external_function (handler);
|
||||
TEST_ASSERT (jerry_value_is_function (external_func_val)
|
||||
&& jerry_value_is_constructor (external_func_val));
|
||||
@@ -534,7 +534,7 @@ main (void)
|
||||
TEST_ASSERT (jerry_get_boolean_value (res));
|
||||
jerry_release_value (external_func_val);
|
||||
|
||||
// Call 'call_external' function that should call external function created above
|
||||
/* Call 'call_external' function that should call external function created above */
|
||||
val_call_external = get_property (global_obj_val, "call_external");
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (val_call_external));
|
||||
TEST_ASSERT (jerry_value_is_object (val_call_external));
|
||||
@@ -549,7 +549,7 @@ main (void)
|
||||
jerry_release_value (res);
|
||||
TEST_ASSERT (!strncmp (buffer, "string from handler", (size_t) sz));
|
||||
|
||||
// Create native handler bound function object and set it to 'external_construct' variable
|
||||
/* Create native handler bound function object and set it to 'external_construct' variable */
|
||||
external_construct_val = jerry_create_external_function (handler_construct);
|
||||
TEST_ASSERT (jerry_value_is_function (external_construct_val)
|
||||
&& jerry_value_is_constructor (external_construct_val));
|
||||
@@ -559,14 +559,14 @@ main (void)
|
||||
TEST_ASSERT (jerry_get_boolean_value (res));
|
||||
jerry_release_value (res);
|
||||
|
||||
// Call external function created above, as constructor
|
||||
/* Call external function created above, as constructor */
|
||||
args[0] = jerry_create_boolean (true);
|
||||
res = jerry_construct_object (external_construct_val, args, 1);
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (res));
|
||||
TEST_ASSERT (jerry_value_is_object (res));
|
||||
val_value_field = get_property (res, "value_field");
|
||||
|
||||
// Get 'value_field' of constructed object
|
||||
/* Get 'value_field' of constructed object */
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (val_value_field));
|
||||
TEST_ASSERT (jerry_value_is_boolean (val_value_field)
|
||||
&& jerry_get_boolean_value (val_value_field));
|
||||
@@ -580,7 +580,7 @@ main (void)
|
||||
|
||||
jerry_release_value (res);
|
||||
|
||||
// Test: Throwing exception from native handler.
|
||||
/* Test: Throwing exception from native handler. */
|
||||
throw_test_handler_val = jerry_create_external_function (handler_throw_test);
|
||||
TEST_ASSERT (jerry_value_is_function (throw_test_handler_val));
|
||||
|
||||
@@ -599,7 +599,7 @@ main (void)
|
||||
jerry_release_value (val_t);
|
||||
jerry_release_value (res);
|
||||
|
||||
// Test: Unhandled exception in called function
|
||||
/* Test: Unhandled exception in called function */
|
||||
val_t = get_property (global_obj_val, "throw_reference_error");
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (val_t));
|
||||
TEST_ASSERT (jerry_value_is_object (val_t));
|
||||
@@ -609,22 +609,22 @@ main (void)
|
||||
TEST_ASSERT (jerry_value_has_error_flag (res));
|
||||
jerry_release_value (val_t);
|
||||
|
||||
// 'res' should contain exception object
|
||||
/* 'res' should contain exception object */
|
||||
TEST_ASSERT (jerry_value_is_object (res));
|
||||
jerry_release_value (res);
|
||||
|
||||
// Test: Call of non-function
|
||||
/* Test: Call of non-function */
|
||||
obj_val = jerry_create_object ();
|
||||
res = jerry_call_function (obj_val, global_obj_val, NULL, 0);
|
||||
TEST_ASSERT (jerry_value_has_error_flag (res));
|
||||
|
||||
// 'res' should contain exception object
|
||||
/* 'res' should contain exception object */
|
||||
TEST_ASSERT (jerry_value_is_object (res));
|
||||
jerry_release_value (res);
|
||||
|
||||
jerry_release_value (obj_val);
|
||||
|
||||
// Test: Unhandled exception in function called, as constructor
|
||||
/* Test: Unhandled exception in function called, as constructor */
|
||||
val_t = get_property (global_obj_val, "throw_reference_error");
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (val_t));
|
||||
TEST_ASSERT (jerry_value_is_object (val_t));
|
||||
@@ -633,22 +633,22 @@ main (void)
|
||||
TEST_ASSERT (jerry_value_has_error_flag (res));
|
||||
jerry_release_value (val_t);
|
||||
|
||||
// 'res' should contain exception object
|
||||
/* 'res' should contain exception object */
|
||||
TEST_ASSERT (jerry_value_is_object (res));
|
||||
jerry_release_value (res);
|
||||
|
||||
// Test: Call of non-function as constructor
|
||||
/* Test: Call of non-function as constructor */
|
||||
obj_val = jerry_create_object ();
|
||||
res = jerry_construct_object (obj_val, NULL, 0);
|
||||
TEST_ASSERT (jerry_value_has_error_flag (res));
|
||||
|
||||
// 'res' should contain exception object
|
||||
/* 'res' should contain exception object */
|
||||
TEST_ASSERT (jerry_value_is_object (res));
|
||||
jerry_release_value (res);
|
||||
|
||||
jerry_release_value (obj_val);
|
||||
|
||||
// Test: Array Object API
|
||||
/* Test: Array Object API */
|
||||
jerry_value_t array_obj_val = jerry_create_array (10);
|
||||
TEST_ASSERT (jerry_value_is_array (array_obj_val));
|
||||
TEST_ASSERT (jerry_get_array_length (array_obj_val) == 10);
|
||||
@@ -664,7 +664,7 @@ main (void)
|
||||
jerry_release_value (v_out);
|
||||
jerry_release_value (array_obj_val);
|
||||
|
||||
// Test: init property descriptor
|
||||
/* Test: init property descriptor */
|
||||
jerry_property_descriptor_t prop_desc;
|
||||
jerry_init_property_descriptor_fields (&prop_desc);
|
||||
TEST_ASSERT (prop_desc.is_value_defined == false);
|
||||
@@ -680,7 +680,7 @@ main (void)
|
||||
TEST_ASSERT (prop_desc.is_set_defined == false);
|
||||
TEST_ASSERT (jerry_value_is_undefined (prop_desc.setter));
|
||||
|
||||
// Test: define own properties
|
||||
/* Test: define own properties */
|
||||
jerry_value_t prop_name = jerry_create_string ((const jerry_char_t *) "my_defined_property");
|
||||
prop_desc.is_value_defined = true;
|
||||
prop_desc.value = jerry_acquire_value (prop_name);
|
||||
@@ -691,7 +691,7 @@ main (void)
|
||||
jerry_release_value (res);
|
||||
jerry_free_property_descriptor_fields (&prop_desc);
|
||||
|
||||
// Test: get own property descriptor
|
||||
/* Test: get own property descriptor */
|
||||
is_ok = jerry_get_own_property_descriptor (global_obj_val, prop_name, &prop_desc);
|
||||
TEST_ASSERT (is_ok);
|
||||
TEST_ASSERT (prop_desc.is_value_defined == true);
|
||||
@@ -706,13 +706,13 @@ main (void)
|
||||
jerry_release_value (prop_name);
|
||||
jerry_free_property_descriptor_fields (&prop_desc);
|
||||
|
||||
// Test: object keys
|
||||
/* Test: object keys */
|
||||
res = jerry_get_object_keys (global_obj_val);
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (res));
|
||||
TEST_ASSERT (jerry_value_is_array (res));
|
||||
jerry_release_value (res);
|
||||
|
||||
// Test: jerry_value_to_primitive
|
||||
/* Test: jerry_value_to_primitive */
|
||||
obj_val = jerry_eval ((jerry_char_t *) "new String ('hello')", 20, false);
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (obj_val));
|
||||
TEST_ASSERT (jerry_value_is_object (obj_val));
|
||||
@@ -722,13 +722,13 @@ main (void)
|
||||
TEST_ASSERT (jerry_value_is_string (prim_val));
|
||||
jerry_release_value (prim_val);
|
||||
|
||||
// Test: jerry_get_prototype
|
||||
/* Test: jerry_get_prototype */
|
||||
proto_val = jerry_get_prototype (obj_val);
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (proto_val));
|
||||
TEST_ASSERT (jerry_value_is_object (proto_val));
|
||||
jerry_release_value (obj_val);
|
||||
|
||||
// Test: jerry_set_prototype
|
||||
/* Test: jerry_set_prototype */
|
||||
obj_val = jerry_create_object ();
|
||||
res = jerry_set_prototype (obj_val, jerry_create_null ());
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (res));
|
||||
@@ -745,7 +745,7 @@ main (void)
|
||||
jerry_release_value (proto_val);
|
||||
jerry_release_value (obj_val);
|
||||
|
||||
// Test: eval
|
||||
/* Test: eval */
|
||||
const char *eval_code_src_p = "(function () { return 123; })";
|
||||
val_t = jerry_eval ((jerry_char_t *) eval_code_src_p, strlen (eval_code_src_p), true);
|
||||
TEST_ASSERT (!jerry_value_has_error_flag (val_t));
|
||||
@@ -760,13 +760,13 @@ main (void)
|
||||
|
||||
jerry_release_value (val_t);
|
||||
|
||||
// cleanup.
|
||||
/* cleanup. */
|
||||
jerry_release_value (global_obj_val);
|
||||
|
||||
// Test: run gc.
|
||||
/* Test: run gc. */
|
||||
jerry_gc ();
|
||||
|
||||
// Test: number
|
||||
/* Test: number */
|
||||
val_t = jerry_create_number (6.25);
|
||||
number_val = jerry_get_number_value (val_t);
|
||||
TEST_ASSERT (number_val * 3 == 18.75);
|
||||
@@ -786,7 +786,7 @@ main (void)
|
||||
|
||||
TEST_ASSERT (test_api_is_free_callback_was_called);
|
||||
|
||||
// Test: parser error location
|
||||
/* Test: parser error location */
|
||||
jerry_init (JERRY_INIT_SHOW_OPCODES);
|
||||
|
||||
const char *parser_err_src_p = "b = 'hello';\nvar a = (;";
|
||||
@@ -808,7 +808,7 @@ main (void)
|
||||
"SyntaxError: Primary expression expected. [line: 2, column: 10]"));
|
||||
jerry_cleanup ();
|
||||
|
||||
// External Magic String
|
||||
/* External Magic String */
|
||||
jerry_init (JERRY_INIT_SHOW_OPCODES);
|
||||
|
||||
uint32_t num_magic_string_items = (uint32_t) (sizeof (magic_string_items) / sizeof (jerry_char_ptr_t));
|
||||
@@ -827,7 +827,7 @@ main (void)
|
||||
|
||||
jerry_cleanup ();
|
||||
|
||||
// Dump / execute snapshot
|
||||
/* Dump / execute snapshot */
|
||||
if (true)
|
||||
{
|
||||
static uint8_t global_mode_snapshot_buffer[1024];
|
||||
|
||||
@@ -18,16 +18,16 @@
|
||||
|
||||
#include "test-common.h"
|
||||
|
||||
// Heap size is 32K
|
||||
/* Heap size is 32K. */
|
||||
#define test_heap_size (32 * 1024)
|
||||
|
||||
// Iterations count
|
||||
/* Iterations count. */
|
||||
#define test_iters (4 * 1024)
|
||||
|
||||
// Subiterations count
|
||||
/* Subiterations count. */
|
||||
#define test_sub_iters 32
|
||||
|
||||
// Threshold size of block to allocate
|
||||
/* Threshold size of block to allocate. */
|
||||
#define test_threshold_block_size 8192
|
||||
|
||||
uint8_t *ptrs[test_sub_iters];
|
||||
|
||||
@@ -43,7 +43,7 @@ main ()
|
||||
|
||||
size_t length;
|
||||
|
||||
// test 1-byte-long unicode sequences
|
||||
/* Test 1-byte-long unicode sequences. */
|
||||
length = lit_char_get_utf8_length (lexer_hex_to_character (0, _1_byte_long1 + 2, 4));
|
||||
TEST_ASSERT (length == 1);
|
||||
|
||||
@@ -53,7 +53,7 @@ main ()
|
||||
length = lit_char_get_utf8_length (lexer_hex_to_character (0, _1_byte_long3 + 2, 4));
|
||||
TEST_ASSERT (length == 1);
|
||||
|
||||
// test 2-byte-long unicode sequences
|
||||
/* Test 2-byte-long unicode sequences. */
|
||||
length = lit_char_get_utf8_length (lexer_hex_to_character (0, _2_byte_long1 + 2, 4));
|
||||
TEST_ASSERT (length == 2);
|
||||
|
||||
@@ -63,7 +63,7 @@ main ()
|
||||
length = lit_char_get_utf8_length (lexer_hex_to_character (0, _2_byte_long3 + 2, 4));
|
||||
TEST_ASSERT (length == 2);
|
||||
|
||||
// test 3-byte-long unicode sequences
|
||||
/* Test 3-byte-long unicode sequences. */
|
||||
length = lit_char_get_utf8_length (lexer_hex_to_character (0, _3_byte_long1 + 2, 4));
|
||||
TEST_ASSERT (length != 2);
|
||||
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
#include "ecma-literal-storage.h"
|
||||
#include "test-common.h"
|
||||
|
||||
// Iterations count
|
||||
/* Iterations count. */
|
||||
#define test_iters 64
|
||||
|
||||
// Subiterations count
|
||||
/* Subiterations count. */
|
||||
#define test_sub_iters 64
|
||||
|
||||
// Max characters in a string
|
||||
/* Max characters in a string. */
|
||||
#define max_characters_in_string 256
|
||||
|
||||
static void
|
||||
@@ -100,7 +100,7 @@ main ()
|
||||
}
|
||||
}
|
||||
|
||||
// Add empty string
|
||||
/* Add empty string. */
|
||||
ecma_find_or_create_literal_string (NULL, 0);
|
||||
|
||||
for (uint32_t j = 0; j < test_sub_iters; j++)
|
||||
@@ -124,7 +124,7 @@ main ()
|
||||
TEST_ASSERT (lit1 == lit2);
|
||||
}
|
||||
|
||||
// Check empty string exists
|
||||
/* Check empty string exists. */
|
||||
TEST_ASSERT (ecma_find_or_create_literal_string (NULL, 0) != JMEM_CP_NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -25,10 +25,10 @@
|
||||
|
||||
#include "test-common.h"
|
||||
|
||||
// Iterations count
|
||||
/* Iterations count. */
|
||||
const uint32_t test_iters = 1024;
|
||||
|
||||
// Subiterations count
|
||||
/* Subiterations count. */
|
||||
#define TEST_MAX_SUB_ITERS 1024
|
||||
#define TEST_CHUNK_SIZE 8
|
||||
|
||||
|
||||
@@ -20,13 +20,13 @@
|
||||
|
||||
#include "test-common.h"
|
||||
|
||||
// Iterations count
|
||||
/* Iterations count. */
|
||||
#define test_iters (1024)
|
||||
|
||||
// Sub iterations count
|
||||
/* Sub iterations count. */
|
||||
#define test_subiters (128)
|
||||
|
||||
// Max bytes in string
|
||||
/* Max bytes in string. */
|
||||
#define max_bytes_in_string (16 * 1024)
|
||||
#define max_code_units_in_string (max_bytes_in_string)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user