diff --git a/.github/workflows/cargo.yml b/.github/workflows/cargo.yml index c85f4bb7c19..9d265f9e211 100644 --- a/.github/workflows/cargo.yml +++ b/.github/workflows/cargo.yml @@ -13,6 +13,7 @@ on: [push, pull_request] # - 'trying' env: + CI: 1 CARGO_INCREMENTAL: 0 RUST_LOG: "debug" @@ -80,7 +81,7 @@ jobs: ~/.cargo/ target Cargo.lock - key: ${{ runner.os }}-cargo-v3 + key: ${{ runner.os }}-cargo-v4 # Ensure that all components are compilable. - name: Run cargo check for all targets run: cargo check --color always --all --all-targets @@ -204,7 +205,7 @@ jobs: ~/.cargo/ target Cargo.lock - key: ${{ runner.os }}-cargo-v3 + key: ${{ runner.os }}-cargo-v4 - name: Run cargo test run: | diff --git a/ecmascript/parser/Cargo.toml b/ecmascript/parser/Cargo.toml index 89d6d25e3c4..868736024df 100644 --- a/ecmascript/parser/Cargo.toml +++ b/ecmascript/parser/Cargo.toml @@ -7,7 +7,7 @@ include = ["Cargo.toml", "src/**/*.rs", "examples/**/*.rs"] license = "Apache-2.0/MIT" name = "swc_ecma_parser" repository = "https://github.com/swc-project/swc.git" -version = "0.57.1" +version = "0.57.2" [features] default = [] diff --git a/ecmascript/parser/src/parser/class_and_fn.rs b/ecmascript/parser/src/parser/class_and_fn.rs index 1675860fa73..7aacbc857a8 100644 --- a/ecmascript/parser/src/parser/class_and_fn.rs +++ b/ecmascript/parser/src/parser/class_and_fn.rs @@ -360,8 +360,6 @@ impl<'a, I: Tokens> Parser { false, false, ); - } else if accessibility.is_none() { - self.emit_err(self.input.prev_span(), SyntaxError::TS1031); } } diff --git a/ecmascript/parser/tests/issue-1751/case1/input.ts b/ecmascript/parser/tests/issue-1751/case1/input.ts new file mode 100644 index 00000000000..58d9792d751 --- /dev/null +++ b/ecmascript/parser/tests/issue-1751/case1/input.ts @@ -0,0 +1,3 @@ +class Foo { + declare a: string +} \ No newline at end of file diff --git a/ecmascript/parser/tests/typescript-errors/class/declare-private-name/input.ts.stderr b/ecmascript/parser/tests/typescript-errors/class/declare-private-name/input.ts.stderr index be3782eecb2..1bbcd0e8879 100644 --- a/ecmascript/parser/tests/typescript-errors/class/declare-private-name/input.ts.stderr +++ b/ecmascript/parser/tests/typescript-errors/class/declare-private-name/input.ts.stderr @@ -4,9 +4,3 @@ error: 'declare' modifier cannot be used with a private identifier 2 | declare #name; | ^^^^^ -error: `declare` modifier cannot appear on a class element - --> $DIR/tests/typescript-errors/class/declare-private-name/input.ts:2:5 - | -2 | declare #name; - | ^^^^^^^ - diff --git a/ecmascript/parser/tests/typescript-errors/class/override-with-declare/input.ts.stderr b/ecmascript/parser/tests/typescript-errors/class/override-with-declare/input.ts.stderr index 5755ee7fe08..1f229ff09ae 100644 --- a/ecmascript/parser/tests/typescript-errors/class/override-with-declare/input.ts.stderr +++ b/ecmascript/parser/tests/typescript-errors/class/override-with-declare/input.ts.stderr @@ -1,9 +1,3 @@ -error: `declare` modifier cannot appear on a class element - --> $DIR/tests/typescript-errors/class/override-with-declare/input.ts:2:3 - | -2 | declare override m1(): any - | ^^^^^^^ - error: 'override' modifier cannot be used with 'declare' modifier. --> $DIR/tests/typescript-errors/class/override-with-declare/input.ts:2:11 | diff --git a/ecmascript/transforms/package.json b/ecmascript/transforms/package.json index 42d2835fce0..173c23cf56f 100644 --- a/ecmascript/transforms/package.json +++ b/ecmascript/transforms/package.json @@ -1,6 +1,7 @@ { "devDependencies": { - "jest": "^23.6.0", + "@types/jest": "^26.0.23", + "jest": "^27.0.1", "regenerator-runtime": "^0.11.0" } } diff --git a/ecmascript/transforms/testing/src/lib.rs b/ecmascript/transforms/testing/src/lib.rs index 91565e6fde0..c6babb784ba 100644 --- a/ecmascript/transforms/testing/src/lib.rs +++ b/ecmascript/transforms/testing/src/lib.rs @@ -391,6 +391,11 @@ where Command::new(&jest_path) }; + // I hate windows. + if cfg!(target_os = "windows") && env::var("CI").is_ok() { + base_cmd.arg("--passWithNoTests"); + } + let status = base_cmd .args(&["--testMatch", &format!("{}", path.display())]) .current_dir(root) diff --git a/node-swc/src/index.ts b/node-swc/src/index.ts index 843a8241f8b..c84c629b444 100644 --- a/node-swc/src/index.ts +++ b/node-swc/src/index.ts @@ -10,8 +10,6 @@ import { export * from "./types"; import { BundleInput, compileBundleOptions } from "./spack"; import { loadBinding } from "@node-rs/helper"; -import * as babel from '@babel/types'; -import { BabelifyOptions } from './babel'; const bindings = loadBinding(__dirname, "swc", "@swc/core") diff --git a/node-swc/src/types.ts b/node-swc/src/types.ts index 4a4168e3cd4..f53bebff03b 100644 --- a/node-swc/src/types.ts +++ b/node-swc/src/types.ts @@ -270,6 +270,11 @@ export interface JscConfig { * Defaults to `es3` (which enableds **all** pass). */ target?: JscTarget; + + /** + * Keep class names. + */ + keepClassNames?: boolean } export type JscTarget = diff --git a/package.json b/package.json index 2ee0da0c480..715bfb050fb 100644 --- a/package.json +++ b/package.json @@ -67,12 +67,12 @@ "@napi-rs/cli": "^1.0.4", "@swc/helpers": "^0.2.10", "@types/browserslist": "^4.15.0", - "@types/jest": "^25.2.3", + "@types/jest": "^26.0.23", "@types/node": "^14.14.41", "axios": "^0.21.1", "babel-plugin-transform-node-env-inline": "^0.4.3", "browserslist": "^4.16.5", - "jest": "^23.6.0", + "jest": "^27.0.1", "lodash": "^4.17.21", "progress": "^2.0.3", "source-map": "^0.7.3",