jerryscript-project / jerryscript

Ultra-lightweight JavaScript engine for the Internet of Things.
https://jerryscript.net
Apache License 2.0
6.96k stars 673 forks source link

Assertion 'ecma_object_check_class_name_is_object (obj_p)' failed in ecma_object_get_class_name #1765

Closed renatahodovan closed 7 years ago

renatahodovan commented 7 years ago
Jerry version:
Checked revision: 67c641e
Build: ./tools/build.py --clean --debug --profile=es2015-subset
OS:
Ubuntu 16.04.2 LTS
Test case:
Function()(Promise.prototype.toLocaleString())
Backtrace:
ICE: Assertion 'ecma_object_check_class_name_is_object (obj_p)' failed at jerryscript/jerry-core/ecma/operations/ecma-objects.c(ecma_object_get_class_name):1796.
Error: ERR_FAILED_INTERNAL_ASSERTION
bt
#0  0x000000000047697d in syscall_2 () at jerryscript/jerry-libc/target/posix/jerry-asm.S:59
#1  0x000000000040474f in raise (sig=6) at jerryscript/jerry-libc/target/posix/jerry-libc-target.c:95
#2  0x0000000000404721 in abort () at jerryscript/jerry-libc/target/posix/jerry-libc-target.c:81
#3  0x00000000004133af in jerry_port_fatal (code=ERR_FAILED_INTERNAL_ASSERTION) at jerryscript/targets/default/jerry-port-default-fatal.c:53
#4  0x000000000042ad54 in jerry_fatal (code=ERR_FAILED_INTERNAL_ASSERTION) at jerryscript/jerry-core/jrt/jrt-fatals.c:61
#5  0x000000000042ada6 in jerry_assert_fail (assertion=0x4816f0 "ecma_object_check_class_name_is_object (obj_p)", file=0x480fc8 "jerryscript/jerry-core/ecma/operations/ecma-objects.c", function=0x4902f0 <__func__.4267.lto_priv.382> "ecma_object_get_class_name", line=1796) at jerryscript/jerry-core/jrt/jrt-fatals.c:85
#6  0x000000000043bc4e in ecma_object_get_class_name (obj_p=0x69f740 <jerry_global_heap+1144>) at jerryscript/jerry-core/ecma/operations/ecma-objects.c:1796
#7  0x000000000045ce23 in ecma_builtin_helper_object_to_string (this_arg=1147) at jerryscript/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c:76
#8  0x000000000043d47b in ecma_builtin_object_prototype_object_to_string.lto_priv.488 (this_arg=1147) at jerryscript/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c:59
#9  0x000000000044506c in ecma_builtin_object_prototype_dispatch_routine (builtin_routine_id=58, this_arg_value=1147, arguments_list=0x0, arguments_number=0) at jerryscript/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.inc.h:32
#10 0x000000000045f7e7 in ecma_builtin_dispatch_routine (builtin_object_id=ECMA_BUILTIN_ID_OBJECT_PROTOTYPE, builtin_routine_id=58, this_arg_value=1147, arguments_list=0x0, arguments_number=0) at jerryscript/jerry-core/ecma/builtin-objects/ecma-builtins.inc.h:20
#11 0x000000000045ff12 in ecma_builtin_dispatch_call (obj_p=0x69fe60 <jerry_global_heap+2968>, this_arg_value=1147, arguments_list_p=0x0, arguments_list_len=0) at jerryscript/jerry-core/ecma/builtin-objects/ecma-builtins.c:844
#12 0x000000000043c5d3 in ecma_op_function_call (func_obj_p=0x69fe60 <jerry_global_heap+2968>, this_arg_value=1147, arguments_list_p=0x0, arguments_list_len=0) at jerryscript/jerry-core/ecma/operations/ecma-function-object.c:461
#13 0x000000000043d5d9 in ecma_builtin_object_prototype_object_to_locale_string.lto_priv.486 (this_arg=1147) at jerryscript/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c:112
#14 0x000000000044508a in ecma_builtin_object_prototype_dispatch_routine (builtin_routine_id=60, this_arg_value=1147, arguments_list=0x7fffffffcb10, arguments_number=0) at jerryscript/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.inc.h:34
#15 0x000000000045f7e7 in ecma_builtin_dispatch_routine (builtin_object_id=ECMA_BUILTIN_ID_OBJECT_PROTOTYPE, builtin_routine_id=60, this_arg_value=1147, arguments_list=0x7fffffffcb10, arguments_number=0) at jerryscript/jerry-core/ecma/builtin-objects/ecma-builtins.inc.h:20
#16 0x000000000045ff12 in ecma_builtin_dispatch_call (obj_p=0x69ff78 <jerry_global_heap+3248>, this_arg_value=1147, arguments_list_p=0x7fffffffcb10, arguments_list_len=0) at jerryscript/jerry-core/ecma/builtin-objects/ecma-builtins.c:844
#17 0x000000000043c5d3 in ecma_op_function_call (func_obj_p=0x69ff78 <jerry_global_heap+3248>, this_arg_value=1147, arguments_list_p=0x7fffffffcb10, arguments_list_len=0) at jerryscript/jerry-core/ecma/operations/ecma-function-object.c:461
#18 0x000000000042049d in opfunc_call.lto_priv.143 (frame_ctx_p=0x7fffffffcb50) at jerryscript/jerry-core/vm/vm.c:411
#19 0x0000000000416a90 in vm_execute (frame_ctx_p=0x7fffffffcb50, arg_p=0x0, arg_list_len=0) at jerryscript/jerry-core/vm/vm.c:2681
#20 0x0000000000416d11 in vm_run (bytecode_header_p=0x6a0e80 <jerry_global_heap+7096>, this_binding_value=27, lex_env_p=0x69f2f8 <jerry_global_heap+48>, is_eval_code=false, arg_list_p=0x0, arg_list_len=0) at jerryscript/jerry-core/vm/vm.c:2761
#21 0x00000000004200f1 in vm_run_global (bytecode_p=0x6a0e80 <jerry_global_heap+7096>) at jerryscript/jerry-core/vm/vm.c:231
#22 0x0000000000474406 in jerry_run (func_val=195) at jerryscript/jerry-core/jerry.c:419
#23 0x0000000000473c3d in main (argc=3, argv=0x7fffffffd198) at jerryscript/jerry-main/main-unix.c:705

Found by Fuzzinator

jiangzidong commented 7 years ago

I will check it