From 5c14bc5f0133cf6ae7d96d30f5cc6824e9f006aa Mon Sep 17 00:00:00 2001 From: "Lyu, Wei-Da" <36730922+jasonlyu123@users.noreply.github.com> Date: Fri, 10 Mar 2023 16:47:30 +0800 Subject: [PATCH] fix: support es2022 class features (#8355) Follow up to #8349. We also have to bump the parsing ECMAScript version here. Fixes #6900, fixes #6592. --- src/compiler/parse/acorn.ts | 4 ++-- test/js/samples/class-field/expected.js | 25 ++++++++++++++++++++++++ test/js/samples/class-field/input.svelte | 12 ++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 test/js/samples/class-field/expected.js create mode 100644 test/js/samples/class-field/input.svelte diff --git a/src/compiler/parse/acorn.ts b/src/compiler/parse/acorn.ts index bab8de7ce4..45e2f056c4 100644 --- a/src/compiler/parse/acorn.ts +++ b/src/compiler/parse/acorn.ts @@ -3,12 +3,12 @@ import * as code_red from 'code-red'; export const parse = (source: string): Node => code_red.parse(source, { sourceType: 'module', - ecmaVersion: 12, + ecmaVersion: 13, locations: true }); export const parse_expression_at = (source: string, index: number): Node => code_red.parseExpressionAt(source, index, { sourceType: 'module', - ecmaVersion: 12, + ecmaVersion: 13, locations: true }); diff --git a/test/js/samples/class-field/expected.js b/test/js/samples/class-field/expected.js new file mode 100644 index 0000000000..875d61b934 --- /dev/null +++ b/test/js/samples/class-field/expected.js @@ -0,0 +1,25 @@ +/* generated by Svelte vX.Y.Z */ +import { SvelteComponent, init, safe_not_equal } from "svelte/internal"; + +function instance($$self) { + class A { + p1; + p2 = 1; + #p3 = 2; + + #getP3() { + return this.#p3; + } + } + + return []; +} + +class Component extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance, null, safe_not_equal, {}); + } +} + +export default Component; diff --git a/test/js/samples/class-field/input.svelte b/test/js/samples/class-field/input.svelte new file mode 100644 index 0000000000..b990316937 --- /dev/null +++ b/test/js/samples/class-field/input.svelte @@ -0,0 +1,12 @@ +