Rework export default parsing (#4505)

- Remove SCANNER_LITERAL_POOL_DEFAULT_CLASS_NAME workaround
- Add async and generator function support
- Fix auto semicolon insertion after export statement
- fixes #4150.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
This commit is contained in:
Robert Fancsik
2021-01-19 16:30:41 +01:00
committed by GitHub
parent 3e548401fd
commit bf7fa39581
17 changed files with 387 additions and 112 deletions
+3 -5
View File
@@ -119,6 +119,9 @@ typedef enum
SCAN_STACK_FOR_START_PATTERN, /**< possible assignment pattern for "for" iterator */
SCAN_STACK_USE_ASYNC, /**< an "async" identifier is used */
#endif /* ENABLED (JERRY_ESNEXT) */
#if ENABLED (JERRY_MODULE_SYSTEM)
SCAN_STACK_EXPORT_DEFAULT, /**< scan primary expression after export default */
#endif /* ENABLED (JERRY_MODULE_SYSTEM) */
} scan_stack_modes_t;
/**
@@ -337,11 +340,6 @@ typedef enum
#define SCANNER_LITERAL_POOL_MAY_HAVE_ARGUMENTS(status_flags) \
(!((status_flags) & (SCANNER_LITERAL_POOL_CLASS_NAME | SCANNER_LITERAL_POOL_CLASS_FIELD)))
/**
* The class name is the *default* class name
*/
#define SCANNER_LITERAL_POOL_DEFAULT_CLASS_NAME SCANNER_LITERAL_POOL_HAS_SUPER_REFERENCE
#else /* !ENABLED (JERRY_ESNEXT) */
/**