From f52ff29ae9ffa87e021c384e5b4e867f99b5df29 Mon Sep 17 00:00:00 2001 From: Jakub Koralewski Date: Sat, 20 Feb 2021 10:17:11 +0100 Subject: [PATCH 1/9] bump browserslist --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7be8470119c8..281091660911 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "@types/node": "^14.0.5", "axios": "^0.21.1", "babel-plugin-transform-node-env-inline": "^0.4.3", - "browserslist": "^4.12.0", + "browserslist": "^4.16.3", "jest": "^23.6.0", "lodash": "^4.17.11", "progress": "^2.0.3", From e90c4be8ae038c9c428d1840f9fdaa8f5555c191 Mon Sep 17 00:00:00 2001 From: Jakub Koralewski Date: Sat, 20 Feb 2021 10:17:41 +0100 Subject: [PATCH 2/9] fix: replace windows paths same as linux --- testing/macros/src/fixture.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/testing/macros/src/fixture.rs b/testing/macros/src/fixture.rs index db93c3c153da..5ac6fa17605a 100644 --- a/testing/macros/src/fixture.rs +++ b/testing/macros/src/fixture.rs @@ -133,6 +133,7 @@ pub fn expand(test_file: &SourceFile, callee: &Ident, attr: Config) -> Result Date: Sat, 20 Feb 2021 10:54:37 +0100 Subject: [PATCH 3/9] cosmetic --- ecmascript/jsdoc/tests/fixture.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ecmascript/jsdoc/tests/fixture.rs b/ecmascript/jsdoc/tests/fixture.rs index dc8da1aec353..5b63ea856978 100644 --- a/ecmascript/jsdoc/tests/fixture.rs +++ b/ecmascript/jsdoc/tests/fixture.rs @@ -33,7 +33,6 @@ fn add_test( } #[test] - fn fixture() { let args: Vec<_> = env::args().collect(); let mut tests = Vec::new(); @@ -63,7 +62,7 @@ fn add_fixture(tests: &mut Vec) -> Result<(), Error> { let fm = cm .load_file(entry.path()) - .expect("failed to load fixtue file"); + .expect("failed to load fixture file"); let lexer = Lexer::new( Syntax::Es(EsConfig { From aec6ebfd08a13eab4de5f7967582a0bfbbf2c81e Mon Sep 17 00:00:00 2001 From: Jakub Koralewski Date: Sat, 20 Feb 2021 11:16:52 +0100 Subject: [PATCH 4/9] saving before refreshing --- .gitattributes | 1 + .vscode/settings.json | 5 ++++- ecmascript/jsdoc/tests/fixture.rs | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index 2c1f50d59bf0..ae7a4c677fdd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7,3 +7,4 @@ *.rs text merge=union eol=lf *.js text merge=union eol=lf *.json text merge=union eol=lf +*.debug text merge=union eol=lf diff --git a/.vscode/settings.json b/.vscode/settings.json index fa81039d8b7f..d992edce7971 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -21,5 +21,8 @@ "rust-client.revealOutputChannelOn": "warn", "rust-client.logToFile": true, "editor.formatOnSave": true, - "git.ignoreLimitWarning": true + "git.ignoreLimitWarning": true, + "rust-analyzer.checkOnSave.extraArgs": [ + "--target-dir", "D:\\projects\\swc\\swc\\target\\check" + ] } diff --git a/ecmascript/jsdoc/tests/fixture.rs b/ecmascript/jsdoc/tests/fixture.rs index 5b63ea856978..5e632faaf3ab 100644 --- a/ecmascript/jsdoc/tests/fixture.rs +++ b/ecmascript/jsdoc/tests/fixture.rs @@ -37,6 +37,7 @@ fn fixture() { let args: Vec<_> = env::args().collect(); let mut tests = Vec::new(); add_fixture(&mut tests).unwrap(); + tests.truncate(1); test_main(&args, tests, Some(test::Options::new())); } From b1c13480ce91249471d07836908f232a92800d3d Mon Sep 17 00:00:00 2001 From: Jakub Koralewski Date: Sat, 20 Feb 2021 11:21:49 +0100 Subject: [PATCH 5/9] make debug files eol=lf on win too --- .gitattributes | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitattributes b/.gitattributes index ae7a4c677fdd..0059461ce617 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,9 +2,9 @@ * text=auto -*.ts text merge=union eol=lf -*.tsx text merge=union eol=lf -*.rs text merge=union eol=lf -*.js text merge=union eol=lf -*.json text merge=union eol=lf -*.debug text merge=union eol=lf +*.ts text eol=lf merge=union +*.tsx text eol=lf merge=union +*.rs text eol=lf merge=union +*.js text eol=lf merge=union +*.json text eol=lf merge=union +*.debug text eol=lf merge=union From 4ffa45031ec876a3ac8639be792a264e6374ae72 Mon Sep 17 00:00:00 2001 From: Jakub Koralewski Date: Sat, 20 Feb 2021 15:24:39 +0100 Subject: [PATCH 6/9] fix(spack): handle paths on windows --- spack/Cargo.toml | 3 +++ spack/src/lib.rs | 1 + spack/src/resolvers/mod.rs | 27 ++++++++++++++++++--------- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/spack/Cargo.toml b/spack/Cargo.toml index 8a8bd9278a3f..bcd40dc46037 100644 --- a/spack/Cargo.toml +++ b/spack/Cargo.toml @@ -44,5 +44,8 @@ walkdir = "2.3.1" [target.'cfg(all(unix, not(target_env = "musl")))'.dev-dependencies] jemallocator = {version = "0.3", features = ["disable_initial_exec_tls"]} +[target.'cfg(windows)'.dependencies] +normpath="0.2" + [target.'cfg(windows)'.dev-dependencies] mimalloc = {version = "0.1"} diff --git a/spack/src/lib.rs b/spack/src/lib.rs index ca6eaf32b8a0..5eee4f1262e0 100644 --- a/spack/src/lib.rs +++ b/spack/src/lib.rs @@ -1,4 +1,5 @@ #![cfg_attr(test, feature(test))] +#![feature(or_patterns)] #[cfg(test)] extern crate test; diff --git a/spack/src/resolvers/mod.rs b/spack/src/resolvers/mod.rs index a0fc81feb2f5..881dab8d544f 100644 --- a/spack/src/resolvers/mod.rs +++ b/spack/src/resolvers/mod.rs @@ -4,13 +4,17 @@ use anyhow::{bail, Context, Error}; use lru::LruCache; +#[cfg(windows)] +use normpath::{BasePath}; +// use path_slash::{PathBufExt, PathExt}; use serde::Deserialize; use std::{ fs::File, io::BufReader, - path::{Path, PathBuf}, + path::{Component, Path, PathBuf}, sync::Mutex, }; + use swc_bundler::Resolve; use swc_common::FileName; @@ -49,7 +53,7 @@ impl NodeResolver { } fn wrap(&self, base: &PathBuf, target: &str, path: PathBuf) -> Result { - let path = path.canonicalize().context("failaed to canonicalize")?; + let path = path.canonicalize().context("failed to canonicalize")?; self.store(base, target, path.clone()); Ok(FileName::Real(path)) } @@ -176,12 +180,10 @@ impl Resolve for NodeResolver { Err(_) => {} } } + let target_path = Path::new(target); - // Absolute path - if target.starts_with("/") { - let base_dir = &Path::new("/"); - - let path = base_dir.join(target); + if target_path.is_absolute() { + let path = PathBuf::from(target_path); return self .resolve_as_file(&path) .or_else(|_| self.resolve_as_directory(&path)) @@ -190,8 +192,15 @@ impl Resolve for NodeResolver { let cwd = &Path::new("."); let base_dir = base.parent().unwrap_or(&cwd); - - if target.starts_with("./") || target.starts_with("../") { + let mut components = target_path.components(); + + if let Some(Component::CurDir | Component::ParentDir) = components.next() { + #[cfg(windows)] + let path = { + let base_dir = BasePath::new(base_dir).unwrap(); + base_dir.join(target.replace('/', "\\")).normalize_virtually().unwrap().into_path_buf() + }; + #[cfg(not(windows))] let path = base_dir.join(target); return self .resolve_as_file(&path) From 3373dbd16863fbdf6bd30b2d406337494a75c06e Mon Sep 17 00:00:00 2001 From: Jakub Koralewski Date: Sat, 20 Feb 2021 15:41:54 +0100 Subject: [PATCH 7/9] untruncate jsdoc tests --- ecmascript/jsdoc/tests/fixture.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/ecmascript/jsdoc/tests/fixture.rs b/ecmascript/jsdoc/tests/fixture.rs index 5e632faaf3ab..5b63ea856978 100644 --- a/ecmascript/jsdoc/tests/fixture.rs +++ b/ecmascript/jsdoc/tests/fixture.rs @@ -37,7 +37,6 @@ fn fixture() { let args: Vec<_> = env::args().collect(); let mut tests = Vec::new(); add_fixture(&mut tests).unwrap(); - tests.truncate(1); test_main(&args, tests, Some(test::Options::new())); } From 19a86092ed473d5b3c66805ef6f111ea3feab1dd Mon Sep 17 00:00:00 2001 From: Jakub Koralewski Date: Sat, 20 Feb 2021 15:54:16 +0100 Subject: [PATCH 8/9] fix(spack): cargofmt --- spack/src/resolvers/mod.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/spack/src/resolvers/mod.rs b/spack/src/resolvers/mod.rs index 881dab8d544f..d592f46f7a58 100644 --- a/spack/src/resolvers/mod.rs +++ b/spack/src/resolvers/mod.rs @@ -5,7 +5,7 @@ use anyhow::{bail, Context, Error}; use lru::LruCache; #[cfg(windows)] -use normpath::{BasePath}; +use normpath::BasePath; // use path_slash::{PathBufExt, PathExt}; use serde::Deserialize; use std::{ @@ -198,7 +198,11 @@ impl Resolve for NodeResolver { #[cfg(windows)] let path = { let base_dir = BasePath::new(base_dir).unwrap(); - base_dir.join(target.replace('/', "\\")).normalize_virtually().unwrap().into_path_buf() + base_dir + .join(target.replace('/', "\\")) + .normalize_virtually() + .unwrap() + .into_path_buf() }; #[cfg(not(windows))] let path = base_dir.join(target); From 767ef6edc50793a205d08d26528edb01a004507f Mon Sep 17 00:00:00 2001 From: Jakub Koralewski Date: Sat, 20 Feb 2021 15:56:35 +0100 Subject: [PATCH 9/9] remove absolute path setting from vscode settings --- .vscode/settings.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d992edce7971..fa81039d8b7f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -21,8 +21,5 @@ "rust-client.revealOutputChannelOn": "warn", "rust-client.logToFile": true, "editor.formatOnSave": true, - "git.ignoreLimitWarning": true, - "rust-analyzer.checkOnSave.extraArgs": [ - "--target-dir", "D:\\projects\\swc\\swc\\target\\check" - ] + "git.ignoreLimitWarning": true }