mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
Add support for builtin/builtin routine 'name' property (#3810)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
This commit is contained in:
parent
5895b96bdb
commit
3b4c259281
@ -818,6 +818,18 @@ typedef struct
|
|||||||
} u;
|
} u;
|
||||||
} ecma_built_in_props_t;
|
} ecma_built_in_props_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builtin routine function object status flags
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
ECMA_BUILTIN_ROUTINE_NO_OPTS = 0, /**< No options are provided */
|
||||||
|
ECMA_BUILTIN_ROUTINE_LENGTH_INITIALIZED = (1u << 0), /**< 'length' property has been initialized */
|
||||||
|
ECMA_BUILTIN_ROUTINE_NAME_INITIALIZED = (1u << 1), /**< 'name' property has been initialized */
|
||||||
|
ECMA_BUILTIN_ROUTINE_GETTER = (1u << 2), /**< this routine is getter */
|
||||||
|
ECMA_BUILTIN_ROUTINE_SETTER = (1u << 3), /**< this routine is setter */
|
||||||
|
} ecma_builtin_routine_flags_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start position of bit set size in length_and_bitset_size field.
|
* Start position of bit set size in length_and_bitset_size field.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -36,6 +36,12 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
|||||||
1,
|
1,
|
||||||
ECMA_PROPERTY_FLAG_DEFAULT_LENGTH)
|
ECMA_PROPERTY_FLAG_DEFAULT_LENGTH)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_ARRAY_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
/* Routine properties:
|
/* Routine properties:
|
||||||
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
||||||
ROUTINE (LIT_MAGIC_STRING_IS_ARRAY_UL, ecma_builtin_array_object_is_array, 1, 1)
|
ROUTINE (LIT_MAGIC_STRING_IS_ARRAY_UL, ecma_builtin_array_object_is_array, 1, 1)
|
||||||
|
|||||||
@ -35,6 +35,10 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
|||||||
ECMA_BUILTIN_ID_ARRAYBUFFER_PROTOTYPE,
|
ECMA_BUILTIN_ID_ARRAYBUFFER_PROTOTYPE,
|
||||||
ECMA_PROPERTY_FIXED)
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_ARRAY_BUFFER_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
|
||||||
/* Routine properties:
|
/* Routine properties:
|
||||||
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
||||||
|
|
||||||
|
|||||||
@ -36,6 +36,12 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
|||||||
1,
|
1,
|
||||||
ECMA_PROPERTY_FLAG_DEFAULT_LENGTH)
|
ECMA_PROPERTY_FLAG_DEFAULT_LENGTH)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_BOOLEAN_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_BOOLEAN) */
|
#endif /* ENABLED (JERRY_BUILTIN_BOOLEAN) */
|
||||||
|
|
||||||
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
||||||
|
|||||||
@ -34,6 +34,12 @@ ROUTINE (LIT_MAGIC_STRING_PARSE, ecma_builtin_date_parse, 1, 1)
|
|||||||
ROUTINE (LIT_MAGIC_STRING_UTC_U, ecma_builtin_date_utc, NON_FIXED, 7)
|
ROUTINE (LIT_MAGIC_STRING_UTC_U, ecma_builtin_date_utc, NON_FIXED, 7)
|
||||||
ROUTINE (LIT_MAGIC_STRING_NOW, ecma_builtin_date_now, 0, 0)
|
ROUTINE (LIT_MAGIC_STRING_NOW, ecma_builtin_date_now, 0, 0)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_DATE_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_DATE) */
|
#endif /* ENABLED (JERRY_BUILTIN_DATE) */
|
||||||
|
|
||||||
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
||||||
|
|||||||
@ -34,4 +34,10 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
|||||||
ECMA_BUILTIN_ID_ERROR_PROTOTYPE,
|
ECMA_BUILTIN_ID_ERROR_PROTOTYPE,
|
||||||
ECMA_PROPERTY_FIXED)
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_ERROR_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
||||||
|
|||||||
@ -36,6 +36,12 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
|||||||
ECMA_BUILTIN_ID_EVAL_ERROR_PROTOTYPE,
|
ECMA_BUILTIN_ID_EVAL_ERROR_PROTOTYPE,
|
||||||
ECMA_PROPERTY_FIXED)
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_EVAL_ERROR_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
|
#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
|
||||||
|
|
||||||
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
||||||
|
|||||||
@ -348,15 +348,21 @@ ecma_builtin_function_prototype_object_bind (ecma_object_t *this_arg_obj_p , /**
|
|||||||
return name_value;
|
return name_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ecma_is_value_string (name_value))
|
ecma_string_t *name_p;
|
||||||
|
|
||||||
|
if (ecma_is_value_string (name_value))
|
||||||
|
{
|
||||||
|
name_p = ecma_get_string_from_value (name_value);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
ecma_free_value (name_value);
|
ecma_free_value (name_value);
|
||||||
name_value = ecma_make_magic_string_value (LIT_MAGIC_STRING__EMPTY);
|
name_p = ecma_get_magic_string (LIT_MAGIC_STRING__EMPTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
ecma_value_t bound_function_name = ecma_op_function_form_name (name_value, "bound ", 6);
|
ecma_value_t bound_function_name = ecma_op_function_form_name (name_p, "bound ", 6);
|
||||||
|
|
||||||
ecma_free_value (name_value);
|
ecma_deref_ecma_string (name_p);
|
||||||
|
|
||||||
ecma_property_value_t *name_prop_value_p;
|
ecma_property_value_t *name_prop_value_p;
|
||||||
name_prop_value_p = ecma_create_named_data_property (function_p,
|
name_prop_value_p = ecma_create_named_data_property (function_p,
|
||||||
|
|||||||
@ -34,6 +34,12 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
|||||||
0,
|
0,
|
||||||
ECMA_PROPERTY_FLAG_DEFAULT_LENGTH)
|
ECMA_PROPERTY_FLAG_DEFAULT_LENGTH)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING__EMPTY,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
/* Routine properties:
|
/* Routine properties:
|
||||||
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
||||||
ROUTINE (LIT_MAGIC_STRING_TO_STRING_UL, ECMA_FUNCTION_PROTOTYPE_TO_STRING, 0, 0)
|
ROUTINE (LIT_MAGIC_STRING_TO_STRING_UL, ECMA_FUNCTION_PROTOTYPE_TO_STRING, 0, 0)
|
||||||
|
|||||||
@ -34,4 +34,10 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
|||||||
1,
|
1,
|
||||||
ECMA_PROPERTY_FLAG_DEFAULT_LENGTH)
|
ECMA_PROPERTY_FLAG_DEFAULT_LENGTH)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_FUNCTION_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
||||||
|
|||||||
@ -70,6 +70,9 @@ NUMBER_VALUE (LIT_MAGIC_STRING_MIN_SAFE_INTEGER_U,
|
|||||||
ECMA_BUILTIN_NUMBER_MIN_SAFE_INTEGER,
|
ECMA_BUILTIN_NUMBER_MIN_SAFE_INTEGER,
|
||||||
ECMA_PROPERTY_FIXED)
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_NUMBER_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
#endif /* ENABLED (JERRY_ES2015) */
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
/* Object properties:
|
/* Object properties:
|
||||||
|
|||||||
@ -34,6 +34,12 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
|||||||
ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
|
ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
|
||||||
ECMA_PROPERTY_FIXED)
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_OBJECT_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
/* Routine properties:
|
/* Routine properties:
|
||||||
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
||||||
ROUTINE (LIT_MAGIC_STRING_GET_PROTOTYPE_OF_UL, ECMA_OBJECT_ROUTINE_GET_PROTOTYPE_OF, 1, 1)
|
ROUTINE (LIT_MAGIC_STRING_GET_PROTOTYPE_OF_UL, ECMA_OBJECT_ROUTINE_GET_PROTOTYPE_OF, 1, 1)
|
||||||
|
|||||||
@ -35,6 +35,10 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
|||||||
ECMA_BUILTIN_ID_PROMISE_PROTOTYPE,
|
ECMA_BUILTIN_ID_PROMISE_PROTOTYPE,
|
||||||
ECMA_PROPERTY_FIXED)
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_PROMISE_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
|
||||||
/* Routine properties:
|
/* Routine properties:
|
||||||
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
||||||
ROUTINE (LIT_MAGIC_STRING_REJECT, ecma_builtin_promise_reject, 1, 1)
|
ROUTINE (LIT_MAGIC_STRING_REJECT, ecma_builtin_promise_reject, 1, 1)
|
||||||
|
|||||||
@ -28,6 +28,10 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
|||||||
2,
|
2,
|
||||||
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_PROXY_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
|
||||||
/* Routine properties:
|
/* Routine properties:
|
||||||
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
||||||
|
|
||||||
|
|||||||
@ -36,6 +36,12 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
|||||||
ECMA_BUILTIN_ID_RANGE_ERROR_PROTOTYPE,
|
ECMA_BUILTIN_ID_RANGE_ERROR_PROTOTYPE,
|
||||||
ECMA_PROPERTY_FIXED)
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_RANGE_ERROR_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
|
#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
|
||||||
|
|
||||||
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
||||||
|
|||||||
@ -36,6 +36,12 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
|||||||
ECMA_BUILTIN_ID_REFERENCE_ERROR_PROTOTYPE,
|
ECMA_BUILTIN_ID_REFERENCE_ERROR_PROTOTYPE,
|
||||||
ECMA_PROPERTY_FIXED)
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_REFERENCE_ERROR_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
|
#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
|
||||||
|
|
||||||
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
||||||
|
|||||||
@ -31,6 +31,10 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
|||||||
ECMA_PROPERTY_FIXED)
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
#if ENABLED (JERRY_ES2015)
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_REGEXP_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
|
||||||
/* ECMA-262 v6, 21.2.4.2 */
|
/* ECMA-262 v6, 21.2.4.2 */
|
||||||
ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES,
|
ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES,
|
||||||
ecma_builtin_regexp_species_get,
|
ecma_builtin_regexp_species_get,
|
||||||
|
|||||||
@ -36,6 +36,12 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
|||||||
ECMA_BUILTIN_ID_STRING_PROTOTYPE,
|
ECMA_BUILTIN_ID_STRING_PROTOTYPE,
|
||||||
ECMA_PROPERTY_FIXED)
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_STRING_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
/* Routine properties:
|
/* Routine properties:
|
||||||
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
||||||
ROUTINE (LIT_MAGIC_STRING_FROM_CHAR_CODE_UL, ecma_builtin_string_object_from_char_code, NON_FIXED, 1)
|
ROUTINE (LIT_MAGIC_STRING_FROM_CHAR_CODE_UL, ecma_builtin_string_object_from_char_code, NON_FIXED, 1)
|
||||||
|
|||||||
@ -29,6 +29,10 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
|
|||||||
0,
|
0,
|
||||||
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_STRING_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
|
||||||
/* Object properties:
|
/* Object properties:
|
||||||
* (property name, object pointer getter) */
|
* (property name, object pointer getter) */
|
||||||
|
|
||||||
|
|||||||
@ -36,6 +36,12 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
|||||||
ECMA_BUILTIN_ID_SYNTAX_ERROR_PROTOTYPE,
|
ECMA_BUILTIN_ID_SYNTAX_ERROR_PROTOTYPE,
|
||||||
ECMA_PROPERTY_FIXED)
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_SYNTAX_ERROR_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
|
#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
|
||||||
|
|
||||||
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
||||||
|
|||||||
@ -36,6 +36,12 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
|||||||
ECMA_BUILTIN_ID_TYPE_ERROR_PROTOTYPE,
|
ECMA_BUILTIN_ID_TYPE_ERROR_PROTOTYPE,
|
||||||
ECMA_PROPERTY_FIXED)
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_SYNTAX_ERROR_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
|
#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
|
||||||
|
|
||||||
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
||||||
|
|||||||
@ -36,6 +36,12 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
|||||||
ECMA_BUILTIN_ID_URI_ERROR_PROTOTYPE,
|
ECMA_BUILTIN_ID_URI_ERROR_PROTOTYPE,
|
||||||
ECMA_PROPERTY_FIXED)
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
STRING_VALUE (LIT_MAGIC_STRING_NAME,
|
||||||
|
LIT_MAGIC_STRING_URI_ERROR_UL,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE)
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
|
#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
|
||||||
|
|
||||||
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
#include "ecma-builtin-helpers-macro-undefs.inc.h"
|
||||||
|
|||||||
@ -19,6 +19,7 @@
|
|||||||
#include "ecma-gc.h"
|
#include "ecma-gc.h"
|
||||||
#include "ecma-globals.h"
|
#include "ecma-globals.h"
|
||||||
#include "ecma-helpers.h"
|
#include "ecma-helpers.h"
|
||||||
|
#include "ecma-function-object.h"
|
||||||
#include "ecma-objects.h"
|
#include "ecma-objects.h"
|
||||||
#include "jcontext.h"
|
#include "jcontext.h"
|
||||||
#include "jrt-bit-fields.h"
|
#include "jrt-bit-fields.h"
|
||||||
@ -556,6 +557,7 @@ ecma_builtin_make_function_object_for_routine (ecma_builtin_id_t builtin_id, /**
|
|||||||
uint16_t routine_id, /**< builtin-wide identifier of the built-in
|
uint16_t routine_id, /**< builtin-wide identifier of the built-in
|
||||||
* object's routine property */
|
* object's routine property */
|
||||||
uint16_t name_id, /**< magic string id of 'name' property */
|
uint16_t name_id, /**< magic string id of 'name' property */
|
||||||
|
uint16_t flags, /**< see also: ecma_builtin_routine_flags */
|
||||||
uint8_t length_prop_value) /**< value of 'length' property */
|
uint8_t length_prop_value) /**< value of 'length' property */
|
||||||
{
|
{
|
||||||
JERRY_ASSERT (length_prop_value < (1 << ECMA_BUILT_IN_BITSET_SHIFT));
|
JERRY_ASSERT (length_prop_value < (1 << ECMA_BUILT_IN_BITSET_SHIFT));
|
||||||
@ -576,7 +578,7 @@ ecma_builtin_make_function_object_for_routine (ecma_builtin_id_t builtin_id, /**
|
|||||||
ext_func_obj_p->u.built_in.id = (uint8_t) builtin_id;
|
ext_func_obj_p->u.built_in.id = (uint8_t) builtin_id;
|
||||||
ext_func_obj_p->u.built_in.routine_id = routine_id;
|
ext_func_obj_p->u.built_in.routine_id = routine_id;
|
||||||
ext_func_obj_p->u.built_in.u.builtin_routine.name = name_id;
|
ext_func_obj_p->u.built_in.u.builtin_routine.name = name_id;
|
||||||
ext_func_obj_p->u.built_in.u.builtin_routine.bitset = 0;
|
ext_func_obj_p->u.built_in.u.builtin_routine.bitset = flags;
|
||||||
|
|
||||||
ext_func_obj_p->u.built_in.length_and_bitset_size = length_prop_value;
|
ext_func_obj_p->u.built_in.length_and_bitset_size = length_prop_value;
|
||||||
|
|
||||||
@ -594,7 +596,11 @@ ecma_builtin_make_function_object_for_getter_accessor (ecma_builtin_id_t builtin
|
|||||||
* object's routine property */
|
* object's routine property */
|
||||||
uint16_t name_id) /**< magic string id of 'name' property */
|
uint16_t name_id) /**< magic string id of 'name' property */
|
||||||
{
|
{
|
||||||
return ecma_builtin_make_function_object_for_routine (builtin_id, routine_id, name_id, 0);
|
return ecma_builtin_make_function_object_for_routine (builtin_id,
|
||||||
|
routine_id,
|
||||||
|
name_id,
|
||||||
|
ECMA_BUILTIN_ROUTINE_GETTER,
|
||||||
|
0);
|
||||||
} /* ecma_builtin_make_function_object_for_getter_accessor */
|
} /* ecma_builtin_make_function_object_for_getter_accessor */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -608,7 +614,11 @@ ecma_builtin_make_function_object_for_setter_accessor (ecma_builtin_id_t builtin
|
|||||||
* object's routine property */
|
* object's routine property */
|
||||||
uint16_t name_id) /**< magic string id of 'name' property */
|
uint16_t name_id) /**< magic string id of 'name' property */
|
||||||
{
|
{
|
||||||
return ecma_builtin_make_function_object_for_routine (builtin_id, routine_id, name_id, 1);
|
return ecma_builtin_make_function_object_for_routine (builtin_id,
|
||||||
|
routine_id,
|
||||||
|
name_id,
|
||||||
|
ECMA_BUILTIN_ROUTINE_SETTER,
|
||||||
|
1);
|
||||||
} /* ecma_builtin_make_function_object_for_setter_accessor */
|
} /* ecma_builtin_make_function_object_for_setter_accessor */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -638,14 +648,14 @@ ecma_builtin_routine_try_to_instantiate_property (ecma_object_t *object_p, /**<
|
|||||||
ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p;
|
ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p;
|
||||||
#if ENABLED (JERRY_ES2015)
|
#if ENABLED (JERRY_ES2015)
|
||||||
uint16_t *bitset_p = &ext_func_p->u.built_in.u.builtin_routine.bitset;
|
uint16_t *bitset_p = &ext_func_p->u.built_in.u.builtin_routine.bitset;
|
||||||
if (*bitset_p & (1u << 0))
|
if (*bitset_p & ECMA_BUILTIN_ROUTINE_LENGTH_INITIALIZED)
|
||||||
{
|
{
|
||||||
/* length property was already instantiated */
|
/* length property was already instantiated */
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
/* We mark that the property was lazily instantiated,
|
/* We mark that the property was lazily instantiated,
|
||||||
* as it is configurable and so can be deleted (ECMA-262 v6, 19.2.4.1) */
|
* as it is configurable and so can be deleted (ECMA-262 v6, 19.2.4.1) */
|
||||||
*bitset_p |= (1u << 0);
|
*bitset_p |= ECMA_BUILTIN_ROUTINE_LENGTH_INITIALIZED;
|
||||||
ecma_property_value_t *len_prop_value_p = ecma_create_named_data_property (object_p,
|
ecma_property_value_t *len_prop_value_p = ecma_create_named_data_property (object_p,
|
||||||
string_p,
|
string_p,
|
||||||
ECMA_PROPERTY_FLAG_CONFIGURABLE,
|
ECMA_PROPERTY_FLAG_CONFIGURABLE,
|
||||||
@ -667,6 +677,70 @@ ecma_builtin_routine_try_to_instantiate_property (ecma_object_t *object_p, /**<
|
|||||||
return len_prop_p;
|
return len_prop_p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ENABLED (JERRY_ES2015)
|
||||||
|
/*
|
||||||
|
* Lazy instantiation of 'name' property
|
||||||
|
*/
|
||||||
|
if (ecma_compare_ecma_string_to_magic_id (string_p, LIT_MAGIC_STRING_NAME))
|
||||||
|
{
|
||||||
|
ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p;
|
||||||
|
uint16_t *bitset_p = &ext_func_p->u.built_in.u.builtin_routine.bitset;
|
||||||
|
|
||||||
|
if (*bitset_p & ECMA_BUILTIN_ROUTINE_NAME_INITIALIZED)
|
||||||
|
{
|
||||||
|
/* name property was already instantiated */
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* We mark that the property was lazily instantiated */
|
||||||
|
*bitset_p |= ECMA_BUILTIN_ROUTINE_NAME_INITIALIZED;
|
||||||
|
ecma_property_t *name_prop_p;
|
||||||
|
ecma_property_value_t *name_prop_value_p = ecma_create_named_data_property (object_p,
|
||||||
|
string_p,
|
||||||
|
ECMA_PROPERTY_FLAG_CONFIGURABLE,
|
||||||
|
&name_prop_p);
|
||||||
|
|
||||||
|
ecma_string_t *name_p;
|
||||||
|
lit_magic_string_id_t name_id = ext_func_p->u.built_in.u.builtin_routine.name;
|
||||||
|
|
||||||
|
if (JERRY_UNLIKELY (name_id > LIT_NON_INTERNAL_MAGIC_STRING__COUNT))
|
||||||
|
{
|
||||||
|
/* Note: Whenever new intrinsic routine is being added this mapping should be updated as well! */
|
||||||
|
if (JERRY_UNLIKELY (name_id == LIT_INTERNAL_MAGIC_STRING_ARRAY_PROTOTYPE_VALUES))
|
||||||
|
{
|
||||||
|
name_p = ecma_get_magic_string (LIT_MAGIC_STRING_VALUES);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
JERRY_ASSERT (LIT_IS_GLOBAL_SYMBOL (name_id));
|
||||||
|
name_p = ecma_op_get_global_symbol (name_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
name_p = ecma_get_magic_string (name_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
char *prefix_p = NULL;
|
||||||
|
lit_utf8_size_t prefix_size = 0;
|
||||||
|
|
||||||
|
if (*bitset_p & (ECMA_BUILTIN_ROUTINE_GETTER | ECMA_BUILTIN_ROUTINE_SETTER))
|
||||||
|
{
|
||||||
|
prefix_size = 4;
|
||||||
|
prefix_p = (*bitset_p & ECMA_BUILTIN_ROUTINE_GETTER) ? "get " : "set ";
|
||||||
|
}
|
||||||
|
|
||||||
|
name_prop_value_p->value = ecma_op_function_form_name (name_p, prefix_p, prefix_size);
|
||||||
|
|
||||||
|
if (JERRY_UNLIKELY (name_id > LIT_NON_INTERNAL_MAGIC_STRING__COUNT))
|
||||||
|
{
|
||||||
|
ecma_deref_ecma_string (name_p);
|
||||||
|
}
|
||||||
|
|
||||||
|
return name_prop_p;
|
||||||
|
}
|
||||||
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
} /* ecma_builtin_routine_try_to_instantiate_property */
|
} /* ecma_builtin_routine_try_to_instantiate_property */
|
||||||
|
|
||||||
@ -870,6 +944,7 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object *
|
|||||||
func_obj_p = ecma_builtin_make_function_object_for_routine (builtin_id,
|
func_obj_p = ecma_builtin_make_function_object_for_routine (builtin_id,
|
||||||
ECMA_GET_ROUTINE_ID (curr_property_p->value),
|
ECMA_GET_ROUTINE_ID (curr_property_p->value),
|
||||||
curr_property_p->magic_string_id,
|
curr_property_p->magic_string_id,
|
||||||
|
ECMA_BUILTIN_ROUTINE_NO_OPTS,
|
||||||
ECMA_GET_ROUTINE_LENGTH (curr_property_p->value));
|
ECMA_GET_ROUTINE_LENGTH (curr_property_p->value));
|
||||||
value = ecma_make_object_value (func_obj_p);
|
value = ecma_make_object_value (func_obj_p);
|
||||||
break;
|
break;
|
||||||
@ -967,11 +1042,16 @@ ecma_builtin_routine_list_lazy_property_names (ecma_object_t *object_p, /**< a b
|
|||||||
{
|
{
|
||||||
#if ENABLED (JERRY_ES2015)
|
#if ENABLED (JERRY_ES2015)
|
||||||
ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p;
|
ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p;
|
||||||
if (!(ext_func_p->u.built_in.u.builtin_routine.bitset & (1u << 0)))
|
if (!(ext_func_p->u.built_in.u.builtin_routine.bitset & ECMA_BUILTIN_ROUTINE_LENGTH_INITIALIZED))
|
||||||
{
|
{
|
||||||
/* Unintialized 'length' property is non-enumerable (ECMA-262 v6, 19.2.4.1) */
|
/* Unintialized 'length' property is non-enumerable (ECMA-262 v6, 19.2.4.1) */
|
||||||
ecma_collection_push_back (for_non_enumerable_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_LENGTH));
|
ecma_collection_push_back (for_non_enumerable_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_LENGTH));
|
||||||
}
|
}
|
||||||
|
if (!(ext_func_p->u.built_in.u.builtin_routine.bitset & ECMA_BUILTIN_ROUTINE_NAME_INITIALIZED))
|
||||||
|
{
|
||||||
|
/* Unintialized 'name' property is non-enumerable (ECMA-262 v6, 19.2.4.2) */
|
||||||
|
ecma_collection_push_back (for_non_enumerable_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_NAME));
|
||||||
|
}
|
||||||
#else /* !ENABLED (JERRY_ES2015) */
|
#else /* !ENABLED (JERRY_ES2015) */
|
||||||
/* 'length' property is non-enumerable (ECMA-262 v5, 15) */
|
/* 'length' property is non-enumerable (ECMA-262 v5, 15) */
|
||||||
ecma_collection_push_back (for_non_enumerable_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_LENGTH));
|
ecma_collection_push_back (for_non_enumerable_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_LENGTH));
|
||||||
|
|||||||
@ -60,12 +60,10 @@ ecma_op_resource_name (const ecma_compiled_code_t *bytecode_header_p)
|
|||||||
* @return resource name as ecma-string
|
* @return resource name as ecma-string
|
||||||
*/
|
*/
|
||||||
ecma_value_t
|
ecma_value_t
|
||||||
ecma_op_function_form_name (ecma_value_t prop_name, /**< property name */
|
ecma_op_function_form_name (ecma_string_t *prop_name_p, /**< property name */
|
||||||
char *prefix_p, /**< prefix */
|
char *prefix_p, /**< prefix */
|
||||||
lit_utf8_size_t prefix_size) /**< prefix length */
|
lit_utf8_size_t prefix_size) /**< prefix length */
|
||||||
{
|
{
|
||||||
ecma_string_t *prop_name_p = ecma_get_prop_name_from_value (prop_name);
|
|
||||||
|
|
||||||
/* 4. */
|
/* 4. */
|
||||||
if (ecma_prop_name_is_symbol (prop_name_p))
|
if (ecma_prop_name_is_symbol (prop_name_p))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -32,7 +32,7 @@ ecma_value_t ecma_op_resource_name (const ecma_compiled_code_t *bytecode_header_
|
|||||||
#endif /* ENABLED (JERRY_RESOURCE_NAME) */
|
#endif /* ENABLED (JERRY_RESOURCE_NAME) */
|
||||||
|
|
||||||
#if ENABLED (JERRY_ES2015)
|
#if ENABLED (JERRY_ES2015)
|
||||||
ecma_value_t ecma_op_function_form_name (ecma_value_t prop_name, char *prefix_p, lit_utf8_size_t prefix_size);
|
ecma_value_t ecma_op_function_form_name (ecma_string_t *prop_name_p, char *prefix_p, lit_utf8_size_t prefix_size);
|
||||||
#endif /* ENABLED (JERRY_ES2015) */
|
#endif /* ENABLED (JERRY_ES2015) */
|
||||||
|
|
||||||
bool ecma_op_is_callable (ecma_value_t value);
|
bool ecma_op_is_callable (ecma_value_t value);
|
||||||
|
|||||||
@ -75,6 +75,11 @@ typedef enum
|
|||||||
LIT_MAGIC_STRING__COUNT /**< number of magic strings */
|
LIT_MAGIC_STRING__COUNT /**< number of magic strings */
|
||||||
} lit_magic_string_id_t;
|
} lit_magic_string_id_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the given id corresponds to a global symbol
|
||||||
|
*/
|
||||||
|
#define LIT_IS_GLOBAL_SYMBOL(id) ((id) >= LIT_GLOBAL_SYMBOL_HAS_INSTANCE && (id) <= LIT_GLOBAL_SYMBOL_UNSCOPABLES)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Identifiers of implementation-defined external magic string constants
|
* Identifiers of implementation-defined external magic string constants
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1883,7 +1883,9 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */
|
|||||||
ECMA_SET_SECOND_BIT_TO_POINTER_TAG (((ecma_extended_object_t *) func_obj_p)->u.function.scope_cp);
|
ECMA_SET_SECOND_BIT_TO_POINTER_TAG (((ecma_extended_object_t *) func_obj_p)->u.function.scope_cp);
|
||||||
}
|
}
|
||||||
|
|
||||||
value_p->value = ecma_op_function_form_name (left_value, prefix_p, prefix_size);
|
value_p->value = ecma_op_function_form_name (ecma_get_prop_name_from_value (left_value),
|
||||||
|
prefix_p,
|
||||||
|
prefix_size);
|
||||||
ecma_free_value (left_value);
|
ecma_free_value (left_value);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
287
tests/jerry/es2015/function-name.js
Normal file
287
tests/jerry/es2015/function-name.js
Normal file
@ -0,0 +1,287 @@
|
|||||||
|
// Copyright JS Foundation and other contributors, http://js.foundation
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
function assertNameExists(func) {
|
||||||
|
assert(func.hasOwnProperty('name') === true);
|
||||||
|
}
|
||||||
|
function assertNameNotExists(func) {
|
||||||
|
assert(func.hasOwnProperty('name') === false);
|
||||||
|
assert(Function.prototype.name === '');
|
||||||
|
assert(func.name === '');
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertConfigurableOnlyMethod(func) {
|
||||||
|
let desc = Object.getOwnPropertyDescriptor(func, 'name');
|
||||||
|
assert(desc.configurable === true);
|
||||||
|
assert(desc.writable === false);
|
||||||
|
assert(desc.enumerable === false);
|
||||||
|
|
||||||
|
delete func.name;
|
||||||
|
assertNameNotExists(func);
|
||||||
|
|
||||||
|
Object.defineProperty(func, 'name', {value: 'newName', configurable: true});
|
||||||
|
assert (Object.getOwnPropertyDescriptor(func, 'name').value === 'newName');
|
||||||
|
assertNameExists(func);
|
||||||
|
|
||||||
|
delete func.name;
|
||||||
|
assertNameNotExists(func);
|
||||||
|
Object.defineProperty(func, 'name', desc);
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertConfigurableOnlyAccessor(func, name, method) {
|
||||||
|
let accessor = Object.getOwnPropertyDescriptor(func, name)[method];
|
||||||
|
assertConfigurableOnlyMethod(accessor);
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertMethodName(func, name, functionName = name) {
|
||||||
|
assertNameExists(func);
|
||||||
|
assertConfigurableOnlyMethod(func)
|
||||||
|
assert(Object.getOwnPropertyDescriptor(func, 'name').value === functionName)
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertGetterName(obj, name, functionName = name) {
|
||||||
|
assertConfigurableOnlyAccessor(obj, name, 'get');
|
||||||
|
assert(Object.getOwnPropertyDescriptor(obj, name).get['name'] === 'get ' + functionName)
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertSetterName(obj, name, functionName = name) {
|
||||||
|
assertConfigurableOnlyAccessor(obj, name, 'set');
|
||||||
|
assert(Object.getOwnPropertyDescriptor(obj, name).set['name'] === 'set ' + functionName)
|
||||||
|
}
|
||||||
|
|
||||||
|
var func1 = function () {};
|
||||||
|
assertMethodName(func1, 'func1');
|
||||||
|
|
||||||
|
var func2 = function bar() {};
|
||||||
|
assertMethodName(func2, 'bar');
|
||||||
|
|
||||||
|
var func3 = (function () {}).prototype.constructor;
|
||||||
|
assert(typeof func3 === 'function');
|
||||||
|
assertNameNotExists(func3);
|
||||||
|
|
||||||
|
var func4;
|
||||||
|
func4 = function () {}
|
||||||
|
assertMethodName(func4, 'func4');
|
||||||
|
|
||||||
|
var func5;
|
||||||
|
func5 = function bar () {}
|
||||||
|
assertMethodName(func5, 'bar');
|
||||||
|
|
||||||
|
var func6;
|
||||||
|
(func6) = function () {}
|
||||||
|
assertNameNotExists(func6);
|
||||||
|
|
||||||
|
var func7;
|
||||||
|
(func7) = function bar () {}
|
||||||
|
assertMethodName(func7, 'bar');
|
||||||
|
|
||||||
|
let emptySymbolMethod = Symbol();
|
||||||
|
let namedSymbolMethod = Symbol('foo');
|
||||||
|
let emptySymbolGetter = Symbol();
|
||||||
|
let namedSymbolGetter = Symbol('foo');
|
||||||
|
let emptySymbolSetter = Symbol();
|
||||||
|
let namedSymbolSetter = Symbol('foo');
|
||||||
|
|
||||||
|
var o = {
|
||||||
|
func1() {},
|
||||||
|
func2: function () {},
|
||||||
|
func3: function bar() {},
|
||||||
|
func4: () => {},
|
||||||
|
func5: class {},
|
||||||
|
func6: class A {},
|
||||||
|
func7: class name { static name () {} },
|
||||||
|
['func' + '8']() {},
|
||||||
|
['func' + '9']: function () {},
|
||||||
|
['func' + '10']: function bar() {},
|
||||||
|
['func' + '11']: () => {},
|
||||||
|
['func' + '12']: class {},
|
||||||
|
['func' + '13']: class A {},
|
||||||
|
['func' + '14']: class name { static name () {} },
|
||||||
|
get func15() {},
|
||||||
|
get ['func' + '16']() {},
|
||||||
|
set func17(a) {},
|
||||||
|
set ['func' + '18'](a) {},
|
||||||
|
[emptySymbolMethod]() {},
|
||||||
|
[namedSymbolMethod]() {},
|
||||||
|
get [emptySymbolGetter]() {},
|
||||||
|
get [namedSymbolGetter]() {},
|
||||||
|
set [emptySymbolSetter](a) {},
|
||||||
|
set [namedSymbolSetter](a) {},
|
||||||
|
}
|
||||||
|
|
||||||
|
assertMethodName(o.func1, 'func1');
|
||||||
|
assertMethodName(o.func2, 'func2');
|
||||||
|
assertMethodName(o.func3, 'bar');
|
||||||
|
assertMethodName(o.func4, 'func4');
|
||||||
|
assertMethodName(o.func5, 'func5');
|
||||||
|
assertMethodName(o.func6, 'A');
|
||||||
|
assert(typeof o.func7 === 'function');
|
||||||
|
|
||||||
|
assertMethodName(o.func8, 'func8');
|
||||||
|
assertMethodName(o.func9, 'func9');
|
||||||
|
assertMethodName(o.func10, 'bar');
|
||||||
|
assertMethodName(o.func11, 'func11');
|
||||||
|
assertMethodName(o.func12, 'func12');
|
||||||
|
assertMethodName(o.func13, 'A');
|
||||||
|
assert(typeof o.func14 === 'function');
|
||||||
|
|
||||||
|
assertGetterName(o, 'func15');
|
||||||
|
assertGetterName(o, 'func16');
|
||||||
|
assertSetterName(o, 'func17');
|
||||||
|
assertSetterName(o, 'func17');
|
||||||
|
|
||||||
|
assertMethodName(o[emptySymbolMethod], '');
|
||||||
|
assertMethodName(o[namedSymbolMethod], '[foo]');
|
||||||
|
assertGetterName(o, emptySymbolGetter, '');
|
||||||
|
assertGetterName(o, namedSymbolGetter, '[foo]');
|
||||||
|
assertSetterName(o, emptySymbolSetter, '');
|
||||||
|
assertSetterName(o, namedSymbolSetter, '[foo]');
|
||||||
|
|
||||||
|
class A {
|
||||||
|
constructor () {}
|
||||||
|
func1() {}
|
||||||
|
get func2() {}
|
||||||
|
set func3(a) {}
|
||||||
|
|
||||||
|
static func4() {}
|
||||||
|
static get func5() {}
|
||||||
|
static set func6(a) {}
|
||||||
|
|
||||||
|
['func' + '7']() {}
|
||||||
|
get ['func' + '8']() {}
|
||||||
|
set ['func' + '9'](a) {}
|
||||||
|
|
||||||
|
static ['func' + '10']() {}
|
||||||
|
static get ['func' + '11']() {}
|
||||||
|
static set ['func' + '12'](a) {}
|
||||||
|
|
||||||
|
[emptySymbolMethod]() {}
|
||||||
|
[namedSymbolMethod]() {}
|
||||||
|
get [emptySymbolGetter]() {}
|
||||||
|
get [namedSymbolGetter]() {}
|
||||||
|
set [emptySymbolSetter](a) {}
|
||||||
|
set [namedSymbolSetter](a) {}
|
||||||
|
|
||||||
|
static [emptySymbolMethod]() {}
|
||||||
|
static [namedSymbolMethod]() {}
|
||||||
|
static get [emptySymbolGetter]() {}
|
||||||
|
static get [namedSymbolGetter]() {}
|
||||||
|
static set [emptySymbolSetter](a) {}
|
||||||
|
static set [namedSymbolSetter](a) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
assertMethodName(A.prototype.func1, 'func1');
|
||||||
|
assertGetterName(A.prototype, 'func2');
|
||||||
|
assertSetterName(A.prototype, 'func3');
|
||||||
|
|
||||||
|
assertMethodName(A.func4, 'func4');
|
||||||
|
assertGetterName(A, 'func5');
|
||||||
|
assertSetterName(A, 'func6');
|
||||||
|
|
||||||
|
assertMethodName(A.prototype.func7, 'func7');
|
||||||
|
assertGetterName(A.prototype, 'func8');
|
||||||
|
assertSetterName(A.prototype, 'func9');
|
||||||
|
|
||||||
|
assertMethodName(A.func10, 'func10');
|
||||||
|
assertGetterName(A, 'func11');
|
||||||
|
assertSetterName(A, 'func12');
|
||||||
|
|
||||||
|
assertMethodName(A[emptySymbolMethod], '');
|
||||||
|
assertMethodName(A[namedSymbolMethod], '[foo]');
|
||||||
|
assertGetterName(A, emptySymbolGetter, '');
|
||||||
|
assertGetterName(A, namedSymbolGetter, '[foo]');
|
||||||
|
assertSetterName(A, emptySymbolSetter, '');
|
||||||
|
assertSetterName(A, namedSymbolSetter, '[foo]');
|
||||||
|
|
||||||
|
assertMethodName(A.prototype[emptySymbolMethod], '');
|
||||||
|
assertMethodName(A.prototype[namedSymbolMethod], '[foo]');
|
||||||
|
assertGetterName(A.prototype, emptySymbolGetter, '');
|
||||||
|
assertGetterName(A.prototype, namedSymbolGetter, '[foo]');
|
||||||
|
assertSetterName(A.prototype, emptySymbolSetter, '');
|
||||||
|
assertSetterName(A.prototype, namedSymbolSetter, '[foo]');
|
||||||
|
|
||||||
|
class B {
|
||||||
|
func1() {}
|
||||||
|
get func2() {}
|
||||||
|
set func3(a) {}
|
||||||
|
|
||||||
|
static func4() {}
|
||||||
|
static get func5() {}
|
||||||
|
static set func6(a) {}
|
||||||
|
|
||||||
|
['func' + '7']() {}
|
||||||
|
get ['func' + '8']() {}
|
||||||
|
set ['func' + '9'](a) {}
|
||||||
|
|
||||||
|
static ['func' + '10']() {}
|
||||||
|
static get ['func' + '11']() {}
|
||||||
|
static set ['func' + '12'](a) {}
|
||||||
|
|
||||||
|
[emptySymbolMethod]() {}
|
||||||
|
[namedSymbolMethod]() {}
|
||||||
|
get [emptySymbolGetter]() {}
|
||||||
|
get [namedSymbolGetter]() {}
|
||||||
|
set [emptySymbolSetter](a) {}
|
||||||
|
set [namedSymbolSetter](a) {}
|
||||||
|
|
||||||
|
static [emptySymbolMethod]() {}
|
||||||
|
static [namedSymbolMethod]() {}
|
||||||
|
static get [emptySymbolGetter]() {}
|
||||||
|
static get [namedSymbolGetter]() {}
|
||||||
|
static set [emptySymbolSetter](a) {}
|
||||||
|
static set [namedSymbolSetter](a) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
assertMethodName(B.prototype.func1, 'func1');
|
||||||
|
assertGetterName(B.prototype, 'func2');
|
||||||
|
assertSetterName(B.prototype, 'func3');
|
||||||
|
|
||||||
|
assertMethodName(B.func4, 'func4');
|
||||||
|
assertGetterName(B, 'func5');
|
||||||
|
assertSetterName(B, 'func6');
|
||||||
|
|
||||||
|
assertMethodName(B.prototype.func7, 'func7');
|
||||||
|
assertGetterName(B.prototype, 'func8');
|
||||||
|
assertSetterName(B.prototype, 'func9');
|
||||||
|
|
||||||
|
assertMethodName(B.func10, 'func10');
|
||||||
|
assertGetterName(B, 'func11');
|
||||||
|
assertSetterName(B, 'func12');
|
||||||
|
|
||||||
|
assertMethodName(B[emptySymbolMethod], '');
|
||||||
|
assertMethodName(B[namedSymbolMethod], '[foo]');
|
||||||
|
assertGetterName(B, emptySymbolGetter, '');
|
||||||
|
assertGetterName(B, namedSymbolGetter, '[foo]');
|
||||||
|
assertSetterName(B, emptySymbolSetter, '');
|
||||||
|
assertSetterName(B, namedSymbolSetter, '[foo]');
|
||||||
|
|
||||||
|
assertMethodName(B.prototype[emptySymbolMethod], '');
|
||||||
|
assertMethodName(B.prototype[namedSymbolMethod], '[foo]');
|
||||||
|
assertGetterName(B.prototype, emptySymbolGetter, '');
|
||||||
|
assertGetterName(B.prototype, namedSymbolGetter, '[foo]');
|
||||||
|
assertSetterName(B.prototype, emptySymbolSetter, '');
|
||||||
|
assertSetterName(B.prototype, namedSymbolSetter, '[foo]');
|
||||||
|
|
||||||
|
let names = ['push', 'pop', 'reduce', 'reduceRight'];
|
||||||
|
|
||||||
|
for (let n of names) {
|
||||||
|
assert(Array.prototype[n].name === n);
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(Array.prototype[Symbol.iterator].name === 'values');
|
||||||
|
assert(Array.prototype.values.name === 'values');
|
||||||
|
assert(Object.getOwnPropertyDescriptor(Array, Symbol.species).get.name === 'get [Symbol.species]');
|
||||||
|
assert(Object.getOwnPropertyDescriptor(String.prototype, Symbol.iterator).value.name === '[Symbol.iterator]');
|
||||||
|
assert(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').get.name === 'get __proto__');
|
||||||
|
assert(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set.name === 'set __proto__');
|
||||||
@ -1,6 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<excludeList>
|
<excludeList>
|
||||||
<test id="annexB/B.2.2.1.1.js"><reason></reason></test>
|
|
||||||
<test id="annexB/B.2.2.1.2.js"><reason></reason></test>
|
<test id="annexB/B.2.2.1.2.js"><reason></reason></test>
|
||||||
<test id="annexB/B.2.3.10.js"><reason></reason></test>
|
<test id="annexB/B.2.3.10.js"><reason></reason></test>
|
||||||
<test id="annexB/B.2.3.11.js"><reason></reason></test>
|
<test id="annexB/B.2.3.11.js"><reason></reason></test>
|
||||||
@ -15,17 +14,6 @@
|
|||||||
<test id="annexB/B.2.3.7.js"><reason></reason></test>
|
<test id="annexB/B.2.3.7.js"><reason></reason></test>
|
||||||
<test id="annexB/B.2.3.8.js"><reason></reason></test>
|
<test id="annexB/B.2.3.8.js"><reason></reason></test>
|
||||||
<test id="annexB/B.2.3.9.js"><reason></reason></test>
|
<test id="annexB/B.2.3.9.js"><reason></reason></test>
|
||||||
<test id="built-ins/ArrayBuffer/prototype/byteLength/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/ArrayBuffer/symbol-species.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/ArrayBuffer/symbol-species-name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Array/from/Array.from-name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Array/of/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Array/prototype/copyWithin/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Array/prototype/entries/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Array/prototype/fill/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Array/prototype/findIndex/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Array/prototype/find/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Array/prototype/keys/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-28.js"><reason></reason></test>
|
<test id="built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-28.js"><reason></reason></test>
|
||||||
<test id="built-ins/Array/prototype/map/15.4.4.19-3-14.js"><reason></reason></test>
|
<test id="built-ins/Array/prototype/map/15.4.4.19-3-14.js"><reason></reason></test>
|
||||||
<test id="built-ins/Array/prototype/map/15.4.4.19-3-28.js"><reason></reason></test>
|
<test id="built-ins/Array/prototype/map/15.4.4.19-3-28.js"><reason></reason></test>
|
||||||
@ -41,44 +29,24 @@
|
|||||||
<test id="built-ins/Array/prototype/splice/S15.4.4.12_A3_T1.js"><reason></reason></test>
|
<test id="built-ins/Array/prototype/splice/S15.4.4.12_A3_T1.js"><reason></reason></test>
|
||||||
<test id="built-ins/Array/prototype/toLocaleString/primitive_this_value_getter.js"><reason></reason></test>
|
<test id="built-ins/Array/prototype/toLocaleString/primitive_this_value_getter.js"><reason></reason></test>
|
||||||
<test id="built-ins/Array/prototype/toLocaleString/primitive_this_value.js"><reason></reason></test>
|
<test id="built-ins/Array/prototype/toLocaleString/primitive_this_value.js"><reason></reason></test>
|
||||||
<test id="built-ins/Array/prototype/values/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Array/symbol-species-name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Boolean/prototype/S15.6.3.1_A1.js"><reason></reason></test>
|
<test id="built-ins/Boolean/prototype/S15.6.3.1_A1.js"><reason></reason></test>
|
||||||
<test id="built-ins/Boolean/prototype/S15.6.4_A1.js"><reason></reason></test>
|
<test id="built-ins/Boolean/prototype/S15.6.4_A1.js"><reason></reason></test>
|
||||||
<test id="built-ins/Boolean/prototype/toString/S15.6.4.2_A1_T1.js"><reason></reason></test>
|
<test id="built-ins/Boolean/prototype/toString/S15.6.4.2_A1_T1.js"><reason></reason></test>
|
||||||
<test id="built-ins/Boolean/prototype/toString/S15.6.4.2_A1_T2.js"><reason></reason></test>
|
<test id="built-ins/Boolean/prototype/toString/S15.6.4.2_A1_T2.js"><reason></reason></test>
|
||||||
<test id="built-ins/Boolean/prototype/valueOf/S15.6.4.3_A1_T1.js"><reason></reason></test>
|
<test id="built-ins/Boolean/prototype/valueOf/S15.6.4.3_A1_T1.js"><reason></reason></test>
|
||||||
<test id="built-ins/Boolean/prototype/valueOf/S15.6.4.3_A1_T2.js"><reason></reason></test>
|
<test id="built-ins/Boolean/prototype/valueOf/S15.6.4.3_A1_T2.js"><reason></reason></test>
|
||||||
<test id="built-ins/DataView/prototype/buffer/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/DataView/prototype/byteLength/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/DataView/prototype/byteOffset/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Date/construct_with_date.js"><reason></reason></test>
|
<test id="built-ins/Date/construct_with_date.js"><reason></reason></test>
|
||||||
<test id="built-ins/Date/prototype/Symbol.toPrimitive/hint-invalid.js"><reason></reason></test>
|
<test id="built-ins/Date/prototype/Symbol.toPrimitive/hint-invalid.js"><reason></reason></test>
|
||||||
<test id="built-ins/Date/prototype/Symbol.toPrimitive/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/decodeURIComponent/S15.1.3.2_A2.5_T1.js"><reason></reason></test>
|
<test id="built-ins/decodeURIComponent/S15.1.3.2_A2.5_T1.js"><reason></reason></test>
|
||||||
<test id="built-ins/decodeURI/S15.1.3.1_A2.5_T1.js"><reason></reason></test>
|
<test id="built-ins/decodeURI/S15.1.3.1_A2.5_T1.js"><reason></reason></test>
|
||||||
<test id="built-ins/Function/prototype/bind/15.3.4.5-15-5.js"><reason></reason></test>
|
<test id="built-ins/Function/prototype/bind/15.3.4.5-15-5.js"><reason></reason></test>
|
||||||
<test id="built-ins/Function/prototype/bind/BoundFunction_restricted-properties.js"><reason></reason></test>
|
<test id="built-ins/Function/prototype/bind/BoundFunction_restricted-properties.js"><reason></reason></test>
|
||||||
<test id="built-ins/Function/prototype/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Function/prototype/Symbol.hasInstance/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Function/StrictFunction_restricted-properties.js"><reason></reason></test>
|
<test id="built-ins/Function/StrictFunction_restricted-properties.js"><reason></reason></test>
|
||||||
<test id="built-ins/GeneratorFunction/instance-restricted-properties.js"><reason></reason></test>
|
<test id="built-ins/GeneratorFunction/instance-restricted-properties.js"><reason></reason></test>
|
||||||
<test id="built-ins/GeneratorPrototype/next/context-constructor-invocation.js"><reason></reason></test>
|
<test id="built-ins/GeneratorPrototype/next/context-constructor-invocation.js"><reason></reason></test>
|
||||||
<test id="built-ins/GeneratorPrototype/throw/from-state-completed.js"><reason></reason></test>
|
<test id="built-ins/GeneratorPrototype/throw/from-state-completed.js"><reason></reason></test>
|
||||||
<test id="built-ins/IteratorPrototype/Symbol.iterator/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Map/prototype/clear/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Map/prototype/delete/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Map/prototype/entries/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Map/prototype/forEach/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Map/prototype/get/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Map/prototype/has/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Map/prototype/keys/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Map/prototype/set/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Map/prototype/size/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Map/prototype/size/size.js"><reason></reason></test>
|
<test id="built-ins/Map/prototype/size/size.js"><reason></reason></test>
|
||||||
<test id="built-ins/Map/prototype/Symbol.iterator.js"><reason></reason></test>
|
<test id="built-ins/Map/prototype/Symbol.iterator.js"><reason></reason></test>
|
||||||
<test id="built-ins/Map/prototype/values/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Map/symbol-species-name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Number/15.7.4-1.js"><reason></reason></test>
|
<test id="built-ins/Number/15.7.4-1.js"><reason></reason></test>
|
||||||
<test id="built-ins/Number/prototype/S15.7.3.1_A2_T1.js"><reason></reason></test>
|
<test id="built-ins/Number/prototype/S15.7.3.1_A2_T1.js"><reason></reason></test>
|
||||||
<test id="built-ins/Number/prototype/S15.7.3.1_A2_T2.js"><reason></reason></test>
|
<test id="built-ins/Number/prototype/S15.7.3.1_A2_T2.js"><reason></reason></test>
|
||||||
@ -124,9 +92,6 @@
|
|||||||
<test id="built-ins/Number/prototype/toString/S15.7.4.2_A2_T34.js"><reason></reason></test>
|
<test id="built-ins/Number/prototype/toString/S15.7.4.2_A2_T34.js"><reason></reason></test>
|
||||||
<test id="built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T01.js"><reason></reason></test>
|
<test id="built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T01.js"><reason></reason></test>
|
||||||
<test id="built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T02.js"><reason></reason></test>
|
<test id="built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T02.js"><reason></reason></test>
|
||||||
<test id="built-ins/Object/assign/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Object/is/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Object/is/object-is.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Object/prototype/hasOwnProperty/symbol_property_toPrimitive.js"><reason></reason></test>
|
<test id="built-ins/Object/prototype/hasOwnProperty/symbol_property_toPrimitive.js"><reason></reason></test>
|
||||||
<test id="built-ins/Object/prototype/hasOwnProperty/symbol_property_toString.js"><reason></reason></test>
|
<test id="built-ins/Object/prototype/hasOwnProperty/symbol_property_toString.js"><reason></reason></test>
|
||||||
<test id="built-ins/Object/prototype/hasOwnProperty/symbol_property_valueOf.js"><reason></reason></test>
|
<test id="built-ins/Object/prototype/hasOwnProperty/symbol_property_valueOf.js"><reason></reason></test>
|
||||||
@ -135,57 +100,28 @@
|
|||||||
<test id="built-ins/Object/prototype/propertyIsEnumerable/symbol_property_valueOf.js"><reason></reason></test>
|
<test id="built-ins/Object/prototype/propertyIsEnumerable/symbol_property_valueOf.js"><reason></reason></test>
|
||||||
<test id="built-ins/Object/prototype/toLocaleString/primitive_this_value_getter.js"><reason></reason></test>
|
<test id="built-ins/Object/prototype/toLocaleString/primitive_this_value_getter.js"><reason></reason></test>
|
||||||
<test id="built-ins/Object/prototype/toLocaleString/primitive_this_value.js"><reason></reason></test>
|
<test id="built-ins/Object/prototype/toLocaleString/primitive_this_value.js"><reason></reason></test>
|
||||||
<test id="built-ins/Object/setPrototypeOf/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Promise/all/invoke-then.js"><reason></reason></test>
|
<test id="built-ins/Promise/all/invoke-then.js"><reason></reason></test>
|
||||||
<test id="built-ins/Promise/all/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Promise/all/species-get-error.js"><reason></reason></test>
|
<test id="built-ins/Promise/all/species-get-error.js"><reason></reason></test>
|
||||||
<test id="built-ins/Promise/exec-args.js"><reason></reason></test>
|
<test id="built-ins/Promise/exec-args.js"><reason></reason></test>
|
||||||
<test id="built-ins/Promise/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Promise/prototype/catch/invokes-then.js"><reason></reason></test>
|
<test id="built-ins/Promise/prototype/catch/invokes-then.js"><reason></reason></test>
|
||||||
<test id="built-ins/Promise/prototype/catch/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Promise/prototype/then/ctor-custom.js"><reason></reason></test>
|
<test id="built-ins/Promise/prototype/then/ctor-custom.js"><reason></reason></test>
|
||||||
<test id="built-ins/Promise/prototype/then/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Promise/prototype/then/on-fulfilled-return-thenable.js"><reason></reason></test>
|
<test id="built-ins/Promise/prototype/then/on-fulfilled-return-thenable.js"><reason></reason></test>
|
||||||
<test id="built-ins/Promise/race/invoke-then.js"><reason></reason></test>
|
<test id="built-ins/Promise/race/invoke-then.js"><reason></reason></test>
|
||||||
<test id="built-ins/Promise/race/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Promise/race/species-get-error.js"><reason></reason></test>
|
<test id="built-ins/Promise/race/species-get-error.js"><reason></reason></test>
|
||||||
<test id="built-ins/Promise/reject/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Promise/resolve/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Promise/symbol-species-name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Proxy/enumerate/call-parameters.js"><reason></reason></test>
|
<test id="built-ins/Proxy/enumerate/call-parameters.js"><reason></reason></test>
|
||||||
<test id="built-ins/Proxy/enumerate/return-is-abrupt.js"><reason></reason></test>
|
<test id="built-ins/Proxy/enumerate/return-is-abrupt.js"><reason></reason></test>
|
||||||
<test id="built-ins/Proxy/enumerate/return-trap-result.js"><reason></reason></test>
|
<test id="built-ins/Proxy/enumerate/return-trap-result.js"><reason></reason></test>
|
||||||
<test id="built-ins/Proxy/enumerate/return-trap-result-no-value.js"><reason></reason></test>
|
<test id="built-ins/Proxy/enumerate/return-trap-result-no-value.js"><reason></reason></test>
|
||||||
<test id="built-ins/Proxy/enumerate/trap-is-undefined.js"><reason></reason></test>
|
<test id="built-ins/Proxy/enumerate/trap-is-undefined.js"><reason></reason></test>
|
||||||
<test id="built-ins/Proxy/getOwnPropertyDescriptor/trap-is-undefined.js"><reason></reason></test>
|
<test id="built-ins/Proxy/getOwnPropertyDescriptor/trap-is-undefined.js"><reason></reason></test>
|
||||||
<test id="built-ins/Proxy/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Reflect/apply/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Reflect/construct/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Reflect/defineProperty/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Reflect/deleteProperty/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Reflect/enumerate/does-not-iterate-over-symbol-properties.js"><reason></reason></test>
|
<test id="built-ins/Reflect/enumerate/does-not-iterate-over-symbol-properties.js"><reason></reason></test>
|
||||||
<test id="built-ins/Reflect/enumerate/enumerate.js"><reason></reason></test>
|
<test id="built-ins/Reflect/enumerate/enumerate.js"><reason></reason></test>
|
||||||
<test id="built-ins/Reflect/enumerate/length.js"><reason></reason></test>
|
<test id="built-ins/Reflect/enumerate/length.js"><reason></reason></test>
|
||||||
<test id="built-ins/Reflect/enumerate/name.js"><reason></reason></test>
|
<test id="built-ins/Reflect/enumerate/name.js"><reason></reason></test>
|
||||||
<test id="built-ins/Reflect/enumerate/return-abrupt-from-result.js"><reason></reason></test>
|
<test id="built-ins/Reflect/enumerate/return-abrupt-from-result.js"><reason></reason></test>
|
||||||
<test id="built-ins/Reflect/enumerate/return-iterator.js"><reason></reason></test>
|
<test id="built-ins/Reflect/enumerate/return-iterator.js"><reason></reason></test>
|
||||||
<test id="built-ins/Reflect/get/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Reflect/getOwnPropertyDescriptor/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Reflect/getPrototypeOf/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Reflect/has/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Reflect/isExtensible/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Reflect/ownKeys/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Reflect/preventExtensions/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Reflect/set/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Reflect/setPrototypeOf/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/RegExp/prototype/exec/get-sticky-coerce.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/exec/get-sticky-coerce.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/exec/get-sticky-err.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/exec/get-sticky-err.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/flags/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/RegExp/prototype/global/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/RegExp/prototype/ignoreCase/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/RegExp/prototype/multiline/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/RegExp/prototype/source/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/RegExp/prototype/sticky/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.match/builtin-coerce-global.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.match/builtin-coerce-global.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.match/builtin-coerce-lastindex-err.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.match/builtin-coerce-lastindex-err.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.match/builtin-coerce-sticky.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.match/builtin-coerce-sticky.js"><reason></reason></test>
|
||||||
@ -198,11 +134,9 @@
|
|||||||
<test id="built-ins/RegExp/prototype/Symbol.match/coerce-global.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.match/coerce-global.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.match/coerce-sticky.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.match/coerce-sticky.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.match/get-sticky-err.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.match/get-sticky-err.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.match/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.replace/coerce-global.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.replace/coerce-global.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.replace/coerce-unicode.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.replace/coerce-unicode.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.replace/get-sticky-coerce.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.replace/get-sticky-coerce.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.replace/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.replace/y-fail-global-return.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.replace/y-fail-global-return.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.replace/y-fail-lastindex.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.replace/y-fail-lastindex.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.replace/y-fail-lastindex-no-write.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.replace/y-fail-lastindex-no-write.js"><reason></reason></test>
|
||||||
@ -210,27 +144,10 @@
|
|||||||
<test id="built-ins/RegExp/prototype/Symbol.replace/y-set-lastindex.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.replace/y-set-lastindex.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.search/get-sticky-coerce.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.search/get-sticky-coerce.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.search/get-sticky-err.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/Symbol.search/get-sticky-err.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.search/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/RegExp/prototype/Symbol.split/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/RegExp/prototype/test/get-sticky-err.js"><reason></reason></test>
|
<test id="built-ins/RegExp/prototype/test/get-sticky-err.js"><reason></reason></test>
|
||||||
<test id="built-ins/RegExp/prototype/unicode/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/RegExp/symbol-species-name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Set/prototype/add/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Set/prototype/clear/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Set/prototype/delete/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Set/prototype/entries/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Set/prototype/forEach/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Set/prototype/has/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Set/prototype/keys/keys.js"><reason></reason></test>
|
<test id="built-ins/Set/prototype/keys/keys.js"><reason></reason></test>
|
||||||
<test id="built-ins/Set/prototype/size/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Set/prototype/size/size.js"><reason></reason></test>
|
<test id="built-ins/Set/prototype/size/size.js"><reason></reason></test>
|
||||||
<test id="built-ins/Set/prototype/Symbol.iterator.js"><reason></reason></test>
|
<test id="built-ins/Set/prototype/Symbol.iterator.js"><reason></reason></test>
|
||||||
<test id="built-ins/Set/prototype/values/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Set/symbol-species-name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/String/fromCodePoint/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/String/prototype/codePointAt/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/String/prototype/endsWith/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/String/prototype/includes/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/String/prototype/normalize/form-is-not-valid-throws.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/normalize/form-is-not-valid-throws.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/normalize/length.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/normalize/length.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/normalize/name.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/normalize/name.js"><reason></reason></test>
|
||||||
@ -240,30 +157,17 @@
|
|||||||
<test id="built-ins/String/prototype/normalize/return-normalized-string-from-coerced-form.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/normalize/return-normalized-string-from-coerced-form.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/normalize/return-normalized-string.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/normalize/return-normalized-string.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/normalize/return-normalized-string-using-default-parameter.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/normalize/return-normalized-string-using-default-parameter.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/repeat/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/String/prototype/S15.5.4_A1.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/S15.5.4_A1.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/S15.5.4_A2.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/S15.5.4_A2.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/S15.5.4_A3.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/S15.5.4_A3.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/split/S15.5.4.14_A2_T37.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/split/S15.5.4.14_A2_T37.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/startsWith/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/String/prototype/Symbol.iterator/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/String/prototype/toLocaleLowerCase/special_casing_conditional.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/toLocaleLowerCase/special_casing_conditional.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/toLocaleLowerCase/supplementary_plane.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/toLocaleLowerCase/supplementary_plane.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/toLocaleUpperCase/supplementary_plane.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/toLocaleUpperCase/supplementary_plane.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/toLowerCase/special_casing_conditional.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/toLowerCase/special_casing_conditional.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/toLowerCase/supplementary_plane.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/toLowerCase/supplementary_plane.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/prototype/toUpperCase/supplementary_plane.js"><reason></reason></test>
|
<test id="built-ins/String/prototype/toUpperCase/supplementary_plane.js"><reason></reason></test>
|
||||||
<test id="built-ins/String/raw/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Symbol/prototype/Symbol.toPrimitive/length.js"><reason></reason></test>
|
<test id="built-ins/Symbol/prototype/Symbol.toPrimitive/length.js"><reason></reason></test>
|
||||||
<test id="built-ins/Symbol/prototype/Symbol.toPrimitive/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/Symbol/species/builtin-getter-name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/WeakMap/prototype/delete/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/WeakMap/prototype/get/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/WeakMap/prototype/has/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/WeakMap/prototype/set/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/WeakSet/prototype/add/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/WeakSet/prototype/delete/name.js"><reason></reason></test>
|
|
||||||
<test id="built-ins/WeakSet/prototype/has/name.js"><reason></reason></test>
|
|
||||||
<test id="intl402/6.2.2_a.js"><reason></reason></test>
|
<test id="intl402/6.2.2_a.js"><reason></reason></test>
|
||||||
<test id="intl402/6.2.2_b.js"><reason></reason></test>
|
<test id="intl402/6.2.2_b.js"><reason></reason></test>
|
||||||
<test id="intl402/6.2.2_c.js"><reason></reason></test>
|
<test id="intl402/6.2.2_c.js"><reason></reason></test>
|
||||||
@ -459,7 +363,6 @@
|
|||||||
<test id="language/expressions/compound-assignment/S11.13.2_A7.9_T4.js"><reason></reason></test>
|
<test id="language/expressions/compound-assignment/S11.13.2_A7.9_T4.js"><reason></reason></test>
|
||||||
<test id="language/expressions/equals/coerce-symbol-to-prim-return-prim.js"><reason></reason></test>
|
<test id="language/expressions/equals/coerce-symbol-to-prim-return-prim.js"><reason></reason></test>
|
||||||
<test id="language/expressions/generators/has-instance.js"><reason></reason></test>
|
<test id="language/expressions/generators/has-instance.js"><reason></reason></test>
|
||||||
<test id="language/expressions/generators/no-name.js"><reason></reason></test>
|
|
||||||
<test id="language/expressions/generators/prototype-value.js"><reason></reason></test>
|
<test id="language/expressions/generators/prototype-value.js"><reason></reason></test>
|
||||||
<test id="language/expressions/object/method-definition/generator-invoke-ctor.js"><reason></reason></test>
|
<test id="language/expressions/object/method-definition/generator-invoke-ctor.js"><reason></reason></test>
|
||||||
<test id="language/expressions/object/method-definition/generator-super-prop-body.js"><reason></reason></test>
|
<test id="language/expressions/object/method-definition/generator-super-prop-body.js"><reason></reason></test>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user