From 3eefea69cc6db796a6139a367ccf2109fd86daa8 Mon Sep 17 00:00:00 2001 From: jiangkaiwen Date: Wed, 28 Dec 2022 15:35:45 +0800 Subject: [PATCH] Es2abc supports rounded spaces Issue: I67TRO Signed-off-by: jiangkaiwen Change-Id: Ifa280b4398b06461cfceefe1bac9e214e88ca253 --- es2panda/lexer/lexer.cpp | 11 +++++++++++ es2panda/lexer/token/letters.h | 3 +++ .../destructuring/test-rounded-space-expected.txt | 1 + .../js/language/destructuring/test-rounded-space.js | 2 ++ 4 files changed, 17 insertions(+) create mode 100644 es2panda/test/compiler/js/language/destructuring/test-rounded-space-expected.txt create mode 100644 es2panda/test/compiler/js/language/destructuring/test-rounded-space.js diff --git a/es2panda/lexer/lexer.cpp b/es2panda/lexer/lexer.cpp index 5e80b9718e..f0a093ef64 100644 --- a/es2panda/lexer/lexer.cpp +++ b/es2panda/lexer/lexer.cpp @@ -1233,6 +1233,17 @@ void Lexer::SkipWhiteSpaces() auto cp = Iterator().Peek(); switch (cp) { + case LEX_CHAR_ROUNDED_SP: { + Iterator().Forward(1); + if (Iterator().Peek() == LEX_CHAR_ROUNDED_SP_apart) { + Iterator().Forward(1); + if (Iterator().Peek() == LEX_CHAR_ROUNDED_SP_apart) { + Iterator().Forward(1); + cp = Iterator().Peek(); + } + } + continue; + } case LEX_CHAR_CR: { Iterator().Forward(1); diff --git a/es2panda/lexer/token/letters.h b/es2panda/lexer/token/letters.h index 5ca3771406..5afde3f7c7 100644 --- a/es2panda/lexer/token/letters.h +++ b/es2panda/lexer/token/letters.h @@ -144,6 +144,9 @@ namespace panda::es2panda::lexer { #define LEX_VERTICAL_TILDE 0x2E2F /* vertical tilde */ +#define LEX_CHAR_ROUNDED_SP 0xffffffe3 /* rounded space */ +#define LEX_CHAR_ROUNDED_SP_apart 0xffffff80 /* rounded space apart */ + #define LEX_TO_ASCII_LOWERCASE(character) ((character) | LEX_CHAR_SP) #define LEX_UTF8_2_BYTE_CODE_POINT_MIN (0x80) diff --git a/es2panda/test/compiler/js/language/destructuring/test-rounded-space-expected.txt b/es2panda/test/compiler/js/language/destructuring/test-rounded-space-expected.txt new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/es2panda/test/compiler/js/language/destructuring/test-rounded-space-expected.txt @@ -0,0 +1 @@ +0 diff --git a/es2panda/test/compiler/js/language/destructuring/test-rounded-space.js b/es2panda/test/compiler/js/language/destructuring/test-rounded-space.js new file mode 100644 index 0000000000..e7b22801b7 --- /dev/null +++ b/es2panda/test/compiler/js/language/destructuring/test-rounded-space.js @@ -0,0 +1,2 @@ +var x = 0; +print(x); \ No newline at end of file -- Gitee