jerryscript-project / jerryscript

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

build error with certain config options #5050

Open aksdfauytv opened 1 year ago

aksdfauytv commented 1 year ago
JerryScript revision

1a2c04763aba49f52b1537acd3730098c873511c

Build platform

Ubuntu 16.04.7 LTS (Linux 4.15.0-142-generic x86_64)

Bug

When building with JERRY_BUILTIN_WEAKREF 0 and JERRY_BUILTIN_CONTAINER 1, the project doesn't compile:

jerryscript/jerry-core/ecma/base/ecma-gc.c:1620:44: error: 'ECMA_OBJECT_CLASS_WEAKREF' undeclared (first use in this function)

When building with JERRY_BUILTIN_REALMS 0, the project doesn't compile:

In file included from jerryscript/jerry-core/include/jerryscript-types.h:23,
                 from jerryscript/jerry-core/include/jerryscript-core.h:19,
                 from jerryscript/jerry-core/jrt/jrt.h:22,
                 from jerryscript/jerry-core/lit/lit-globals.h:19,
                 from jerryscript/jerry-core/ecma/base/ecma-errors.h:19,
                 from jerryscript/jerry-core/ecma/base/ecma-globals.h:19,
                 from jerryscript/jerry-core/vm/opcodes.h:19,
                 from jerryscript/jerry-core/vm/opcodes.c:16:
jerryscript/jerry-core/vm/opcodes.c: In function 'opfunc_lexical_scope_has_restricted_binding':
jerryscript/jerry-core/vm/opcodes.c:2252:43: warning: comparison between pointer and integer
   JERRY_ASSERT (frame_ctx_p->this_binding == ecma_builtin_get_global ());
                                           ^~
jerryscript/jerry-core/include/jerryscript-compiler.h:57:48: note: in definition of macro 'JERRY_UNLIKELY'
 #define JERRY_UNLIKELY(x) __builtin_expect (!!(x), 0)
                                                ^
jerryscript/jerry-core/vm/opcodes.c:2252:3: note: in expansion of macro 'JERRY_ASSERT'
   JERRY_ASSERT (frame_ctx_p->this_binding == ecma_builtin_get_global ());
   ^~~~~~~~~~~~
jerryscript/jerry-core/vm/opcodes.c:2266:64: error: 'global_obj_p' undeclared (first use in this function); did you mean 'global_scope_p'?
   ecma_object_t *const global_scope_p = ecma_get_global_scope (global_obj_p);
                                                                ^~~~~~~~~~~~
                                                                global_scope_p