Skip to content

Commit 953e45f

Browse files
committed
Remove 'ecma_assert_object_type_is_valid' from release
JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
1 parent 210ba6d commit 953e45f

File tree

1 file changed

+53
-42
lines changed

1 file changed

+53
-42
lines changed

jerry-core/ecma/operations/ecma-objects.c

Lines changed: 53 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,22 @@
3333

3434
/**
3535
* Assert that specified object type value is valid
36+
*
37+
* @param object's implementation-defined type
3638
*/
37-
static void
38-
ecma_assert_object_type_is_valid (ecma_object_type_t type) /**< object's implementation-defined type */
39-
{
40-
JERRY_ASSERT (type == ECMA_OBJECT_TYPE_GENERAL
41-
|| type == ECMA_OBJECT_TYPE_ARRAY
42-
|| type == ECMA_OBJECT_TYPE_FUNCTION
43-
|| type == ECMA_OBJECT_TYPE_BOUND_FUNCTION
44-
|| type == ECMA_OBJECT_TYPE_BUILT_IN_FUNCTION
45-
|| type == ECMA_OBJECT_TYPE_STRING
46-
|| type == ECMA_OBJECT_TYPE_ARGUMENTS
39+
#ifndef JERRY_NDEBUG
40+
#define JERRY_ASSERT_OBJECT_TYPE_IS_VALID(type) \
41+
JERRY_ASSERT (type == ECMA_OBJECT_TYPE_GENERAL \
42+
|| type == ECMA_OBJECT_TYPE_ARRAY \
43+
|| type == ECMA_OBJECT_TYPE_FUNCTION \
44+
|| type == ECMA_OBJECT_TYPE_BOUND_FUNCTION \
45+
|| type == ECMA_OBJECT_TYPE_BUILT_IN_FUNCTION \
46+
|| type == ECMA_OBJECT_TYPE_STRING \
47+
|| type == ECMA_OBJECT_TYPE_ARGUMENTS \
4748
|| type == ECMA_OBJECT_TYPE_EXTERNAL_FUNCTION);
48-
} /* ecma_assert_object_type_is_valid */
49-
49+
#else /* JERRY_NDEBUG */
50+
#define JERRY_ASSERT_OBJECT_TYPE_IS_VALID(type)
51+
#endif /* !JERRY_NDEBUG */
5052
/**
5153
* [[Get]] ecma object's operation
5254
*
@@ -65,7 +67,6 @@ ecma_op_object_get (ecma_object_t *obj_p, /**< the object */
6567
JERRY_ASSERT (property_name_p != NULL);
6668

6769
const ecma_object_type_t type = ecma_get_object_type (obj_p);
68-
ecma_assert_object_type_is_valid (type);
6970

7071
switch (type)
7172
{
@@ -84,11 +85,13 @@ ecma_op_object_get (ecma_object_t *obj_p, /**< the object */
8485
{
8586
return ecma_op_arguments_object_get (obj_p, property_name_p);
8687
}
87-
}
88-
89-
JERRY_ASSERT (false);
88+
default:
89+
{
90+
JERRY_ASSERT (false);
9091

91-
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
92+
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
93+
}
94+
}
9295
} /* ecma_op_object_get */
9396

9497
/**
@@ -102,8 +105,6 @@ ecma_op_object_get_own_property_longpath (ecma_object_t *obj_p, /**< the object
102105
ecma_string_t *property_name_p) /**< property name */
103106
{
104107
const ecma_object_type_t type = ecma_get_object_type (obj_p);
105-
ecma_assert_object_type_is_valid (type);
106-
107108
const bool is_builtin = ecma_get_object_is_builtin (obj_p);
108109

109110
ecma_property_t *prop_p = NULL;
@@ -141,6 +142,11 @@ ecma_op_object_get_own_property_longpath (ecma_object_t *obj_p, /**< the object
141142

142143
break;
143144
}
145+
default:
146+
{
147+
JERRY_UNREACHABLE ();
148+
break;
149+
}
144150
}
145151

146152
if (unlikely (prop_p == NULL))
@@ -200,8 +206,7 @@ ecma_op_object_get_property (ecma_object_t *obj_p, /**< the object */
200206
&& !ecma_is_lexical_environment (obj_p));
201207
JERRY_ASSERT (property_name_p != NULL);
202208

203-
const ecma_object_type_t type = ecma_get_object_type (obj_p);
204-
ecma_assert_object_type_is_valid (type);
209+
JERRY_ASSERT_OBJECT_TYPE_IS_VALID (ecma_get_object_type (obj_p));
205210

206211
/*
207212
* typedef ecma_property_t * (*get_property_ptr_t) (ecma_object_t *, ecma_string_t *);
@@ -242,8 +247,7 @@ ecma_op_object_put (ecma_object_t *obj_p, /**< the object */
242247
&& !ecma_is_lexical_environment (obj_p));
243248
JERRY_ASSERT (property_name_p != NULL);
244249

245-
const ecma_object_type_t type = ecma_get_object_type (obj_p);
246-
ecma_assert_object_type_is_valid (type);
250+
JERRY_ASSERT_OBJECT_TYPE_IS_VALID (ecma_get_object_type (obj_p));
247251

248252
/*
249253
* typedef ecma_property_t * (*put_ptr_t) (ecma_object_t *, ecma_string_t *);
@@ -282,8 +286,7 @@ ecma_op_object_can_put (ecma_object_t *obj_p, /**< the object */
282286
&& !ecma_is_lexical_environment (obj_p));
283287
JERRY_ASSERT (property_name_p != NULL);
284288

285-
const ecma_object_type_t type = ecma_get_object_type (obj_p);
286-
ecma_assert_object_type_is_valid (type);
289+
JERRY_ASSERT_OBJECT_TYPE_IS_VALID (ecma_get_object_type (obj_p));
287290

288291
/*
289292
* typedef ecma_property_t * (*can_put_ptr_t) (ecma_object_t *, ecma_string_t *);
@@ -324,7 +327,6 @@ ecma_op_object_delete (ecma_object_t *obj_p, /**< the object */
324327
JERRY_ASSERT (property_name_p != NULL);
325328

326329
const ecma_object_type_t type = ecma_get_object_type (obj_p);
327-
ecma_assert_object_type_is_valid (type);
328330

329331
switch (type)
330332
{
@@ -347,11 +349,13 @@ ecma_op_object_delete (ecma_object_t *obj_p, /**< the object */
347349
property_name_p,
348350
is_throw);
349351
}
350-
}
351-
352-
JERRY_ASSERT (false);
352+
default:
353+
{
354+
JERRY_ASSERT (false);
353355

354-
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
356+
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
357+
}
358+
}
355359
} /* ecma_op_object_delete */
356360

357361
/**
@@ -370,8 +374,7 @@ ecma_op_object_default_value (ecma_object_t *obj_p, /**< the object */
370374
JERRY_ASSERT (obj_p != NULL
371375
&& !ecma_is_lexical_environment (obj_p));
372376

373-
const ecma_object_type_t type = ecma_get_object_type (obj_p);
374-
ecma_assert_object_type_is_valid (type);
377+
JERRY_ASSERT_OBJECT_TYPE_IS_VALID (ecma_get_object_type (obj_p));
375378

376379
/*
377380
* typedef ecma_property_t * (*default_value_ptr_t) (ecma_object_t *, ecma_string_t *);
@@ -414,7 +417,6 @@ ecma_op_object_define_own_property (ecma_object_t *obj_p, /**< the object */
414417
JERRY_ASSERT (property_name_p != NULL);
415418

416419
const ecma_object_type_t type = ecma_get_object_type (obj_p);
417-
ecma_assert_object_type_is_valid (type);
418420

419421
switch (type)
420422
{
@@ -446,11 +448,13 @@ ecma_op_object_define_own_property (ecma_object_t *obj_p, /**< the object */
446448
property_desc_p,
447449
is_throw);
448450
}
449-
}
450-
451-
JERRY_ASSERT (false);
451+
default:
452+
{
453+
JERRY_ASSERT (false);
452454

453-
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
455+
return ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
456+
}
457+
}
454458
} /* ecma_op_object_define_own_property */
455459

456460
/**
@@ -467,7 +471,6 @@ ecma_op_object_has_instance (ecma_object_t *obj_p, /**< the object */
467471
&& !ecma_is_lexical_environment (obj_p));
468472

469473
const ecma_object_type_t type = ecma_get_object_type (obj_p);
470-
ecma_assert_object_type_is_valid (type);
471474

472475
switch (type)
473476
{
@@ -486,9 +489,12 @@ ecma_op_object_has_instance (ecma_object_t *obj_p, /**< the object */
486489
{
487490
return ecma_op_function_has_instance (obj_p, value);
488491
}
492+
default:
493+
{
494+
JERRY_UNREACHABLE ();
495+
break;
496+
}
489497
}
490-
491-
JERRY_UNREACHABLE ();
492498
} /* ecma_op_object_has_instance */
493499

494500
/**
@@ -547,7 +553,7 @@ ecma_op_object_get_property_names (ecma_object_t *obj_p, /**< object */
547553
ecma_collection_header_t *skipped_non_enumerable_p = ecma_new_strings_collection (NULL, 0);
548554

549555
const ecma_object_type_t type = ecma_get_object_type (obj_p);
550-
ecma_assert_object_type_is_valid (type);
556+
const bool obj_is_builtin = ecma_get_object_is_builtin (obj_p);
551557

552558
const size_t bitmap_row_size = sizeof (uint32_t) * JERRY_BITSINBYTE;
553559
uint32_t names_hashes_bitmap[(1u << LIT_STRING_HASH_BITS) / bitmap_row_size];
@@ -564,7 +570,7 @@ ecma_op_object_get_property_names (ecma_object_t *obj_p, /**< object */
564570

565571
ecma_collection_header_t *prop_names_p = ecma_new_strings_collection (NULL, 0);
566572

567-
if (ecma_get_object_is_builtin (obj_p))
573+
if (obj_is_builtin)
568574
{
569575
ecma_builtin_list_lazy_property_names (obj_p,
570576
is_enumerable_only,
@@ -601,6 +607,11 @@ ecma_op_object_get_property_names (ecma_object_t *obj_p, /**< object */
601607
{
602608
break;
603609
}
610+
default:
611+
{
612+
JERRY_UNREACHABLE ();
613+
break;
614+
}
604615
}
605616
}
606617

0 commit comments

Comments
 (0)