Skip to content

Commit e37b9ed

Browse files
authored
disable transform optimizations (parcel-bundler#694)
1 parent 7dd0cb3 commit e37b9ed

File tree

2 files changed

+122
-98
lines changed

2 files changed

+122
-98
lines changed

src/lib.rs

Lines changed: 52 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -11552,14 +11552,16 @@ mod tests {
1155211552
".foo { transform: matrix3d(1, 0, 0, 0, 0, 1, 6, 0, 0, 0, 1, 0, 50, 100, 0, 1.1)",
1155311553
".foo{transform:matrix3d(1,0,0,0,0,1,6,0,0,0,1,0,50,100,0,1.1)}",
1155411554
);
11555-
minify_test(
11556-
".foo{transform:translate(100px,200px) rotate(45deg) skew(10deg) scale(2)}",
11557-
".foo{transform:matrix(1.41421,1.41421,-1.16485,1.66358,100,200)}",
11558-
);
11559-
minify_test(
11560-
".foo{transform:translate(200px,300px) translate(100px,200px) scale(2)}",
11561-
".foo{transform:matrix(2,0,0,2,300,500)}",
11562-
);
11555+
// TODO: Re-enable with a better solution
11556+
// See: https://github.com/parcel-bundler/lightningcss/issues/288
11557+
// minify_test(
11558+
// ".foo{transform:translate(100px,200px) rotate(45deg) skew(10deg) scale(2)}",
11559+
// ".foo{transform:matrix(1.41421,1.41421,-1.16485,1.66358,100,200)}",
11560+
// );
11561+
// minify_test(
11562+
// ".foo{transform:translate(200px,300px) translate(100px,200px) scale(2)}",
11563+
// ".foo{transform:matrix(2,0,0,2,300,500)}",
11564+
// );
1156311565
minify_test(
1156411566
".foo{transform:translate(100px,200px) rotate(45deg)}",
1156511567
".foo{transform:translate(100px,200px)rotate(45deg)}",
@@ -11568,34 +11570,36 @@ mod tests {
1156811570
".foo{transform:rotate3d(1, 1, 1, 45deg) translate3d(100px, 100px, 10px)}",
1156911571
".foo{transform:rotate3d(1,1,1,45deg)translate3d(100px,100px,10px)}",
1157011572
);
11571-
minify_test(
11572-
".foo{transform:translate3d(100px, 100px, 10px) skew(10deg) scale3d(2, 3, 4)}",
11573-
".foo{transform:matrix3d(2,0,0,0,.528981,3,0,0,0,0,4,0,100,100,10,1)}",
11574-
);
11575-
minify_test(
11576-
".foo{transform:matrix3d(0.804737854124365, 0.5058793634016805, -0.31061721752604554, 0, -0.31061721752604554, 0.804737854124365, 0.5058793634016805, 0, 0.5058793634016805, -0.31061721752604554, 0.804737854124365, 0, 100, 100, 10, 1)}",
11577-
".foo{transform:translate3d(100px,100px,10px)rotate3d(1,1,1,45deg)}"
11578-
);
11579-
minify_test(
11580-
".foo{transform:matrix3d(1, 0, 0, 0, 0, 0.7071067811865476, 0.7071067811865475, 0, 0, -0.7071067811865475, 0.7071067811865476, 0, 100, 100, 10, 1)}",
11581-
".foo{transform:translate3d(100px,100px,10px)rotateX(45deg)}"
11582-
);
11583-
minify_test(
11584-
".foo{transform:translate3d(100px, 200px, 10px) translate(100px, 100px)}",
11585-
".foo{transform:translate3d(200px,300px,10px)}",
11586-
);
11587-
minify_test(
11588-
".foo{transform:rotate(45deg) rotate(45deg)}",
11589-
".foo{transform:rotate(90deg)}",
11590-
);
11591-
minify_test(
11592-
".foo{transform:matrix(0.7071067811865476, 0.7071067811865475, -0.7071067811865475, 0.7071067811865476, 100, 100)}",
11593-
".foo{transform:translate(100px,100px)rotate(45deg)}"
11594-
);
11595-
minify_test(
11596-
".foo{transform:translateX(2in) translateX(50px)}",
11597-
".foo{transform:translate(242px)}",
11598-
);
11573+
// TODO: Re-enable with a better solution
11574+
// See: https://github.com/parcel-bundler/lightningcss/issues/288
11575+
// minify_test(
11576+
// ".foo{transform:translate3d(100px, 100px, 10px) skew(10deg) scale3d(2, 3, 4)}",
11577+
// ".foo{transform:matrix3d(2,0,0,0,.528981,3,0,0,0,0,4,0,100,100,10,1)}",
11578+
// );
11579+
// minify_test(
11580+
// ".foo{transform:matrix3d(0.804737854124365, 0.5058793634016805, -0.31061721752604554, 0, -0.31061721752604554, 0.804737854124365, 0.5058793634016805, 0, 0.5058793634016805, -0.31061721752604554, 0.804737854124365, 0, 100, 100, 10, 1)}",
11581+
// ".foo{transform:translate3d(100px,100px,10px)rotate3d(1,1,1,45deg)}"
11582+
// );
11583+
// minify_test(
11584+
// ".foo{transform:matrix3d(1, 0, 0, 0, 0, 0.7071067811865476, 0.7071067811865475, 0, 0, -0.7071067811865475, 0.7071067811865476, 0, 100, 100, 10, 1)}",
11585+
// ".foo{transform:translate3d(100px,100px,10px)rotateX(45deg)}"
11586+
// );
11587+
// minify_test(
11588+
// ".foo{transform:translate3d(100px, 200px, 10px) translate(100px, 100px)}",
11589+
// ".foo{transform:translate3d(200px,300px,10px)}",
11590+
// );
11591+
// minify_test(
11592+
// ".foo{transform:rotate(45deg) rotate(45deg)}",
11593+
// ".foo{transform:rotate(90deg)}",
11594+
// );
11595+
// minify_test(
11596+
// ".foo{transform:matrix(0.7071067811865476, 0.7071067811865475, -0.7071067811865475, 0.7071067811865476, 100, 100)}",
11597+
// ".foo{transform:translate(100px,100px)rotate(45deg)}"
11598+
// );
11599+
// minify_test(
11600+
// ".foo{transform:translateX(2in) translateX(50px)}",
11601+
// ".foo{transform:translate(242px)}",
11602+
// );
1159911603
minify_test(
1160011604
".foo{transform:translateX(calc(2in + 50px))}",
1160111605
".foo{transform:translate(242px)}",
@@ -11660,7 +11664,9 @@ mod tests {
1166011664
minify_test(".foo { scale: 1 0 1 }", ".foo{scale:1 0}");
1166111665
minify_test(".foo { scale: 1 0 0 }", ".foo{scale:1 0 0}");
1166211666

11663-
minify_test(".foo { transform: scale(3); scale: 0.5 }", ".foo{transform:scale(1.5)}");
11667+
// TODO: Re-enable with a better solution
11668+
// See: https://github.com/parcel-bundler/lightningcss/issues/288
11669+
// minify_test(".foo { transform: scale(3); scale: 0.5 }", ".foo{transform:scale(1.5)}");
1166411670
minify_test(".foo { scale: 0.5; transform: scale(3); }", ".foo{transform:scale(3)}");
1166511671

1166611672
prefix_test(
@@ -26076,13 +26082,15 @@ mod tests {
2607626082
"@property --property-name{syntax:\"custom|<color>\";inherits:false;initial-value:#ff0}",
2607726083
);
2607826084

26079-
minify_test(r#"
26080-
@property --property-name {
26081-
syntax: '<transform-list>';
26082-
inherits: false;
26083-
initial-value: translate(200px,300px) translate(100px,200px) scale(2);
26084-
}
26085-
"#, "@property --property-name{syntax:\"<transform-list>\";inherits:false;initial-value:matrix(2,0,0,2,300,500)}");
26085+
// TODO: Re-enable with a better solution
26086+
// See: https://github.com/parcel-bundler/lightningcss/issues/288
26087+
// minify_test(r#"
26088+
// @property --property-name {
26089+
// syntax: '<transform-list>';
26090+
// inherits: false;
26091+
// initial-value: translate(200px,300px) translate(100px,200px) scale(2);
26092+
// }
26093+
// "#, "@property --property-name{syntax:\"<transform-list>\";inherits:false;initial-value:matrix(2,0,0,2,300,500)}");
2608626094

2608726095
minify_test(
2608826096
r#"

src/properties/transform.rs

Lines changed: 70 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -57,64 +57,80 @@ impl ToCss for TransformList {
5757
return Ok(());
5858
}
5959

60+
// TODO: Re-enable with a better solution
61+
// See: https://github.com/parcel-bundler/lightningcss/issues/288
6062
if dest.minify {
61-
// Combine transforms into a single matrix.
62-
if let Some(matrix) = self.to_matrix() {
63-
// Generate based on the original transforms.
64-
let mut base = String::new();
65-
self.to_css_base(&mut Printer::new(
66-
&mut base,
67-
PrinterOptions {
68-
minify: true,
69-
..PrinterOptions::default()
70-
},
71-
))?;
72-
73-
// Decompose the matrix into transform functions if possible.
74-
// If the resulting length is shorter than the original, use it.
75-
if let Some(d) = matrix.decompose() {
76-
let mut decomposed = String::new();
77-
d.to_css_base(&mut Printer::new(
78-
&mut decomposed,
79-
PrinterOptions {
80-
minify: true,
81-
..PrinterOptions::default()
82-
},
83-
))?;
84-
if decomposed.len() < base.len() {
85-
base = decomposed;
86-
}
87-
}
88-
89-
// Also generate a matrix() or matrix3d() representation and compare that.
90-
let mut mat = String::new();
91-
if let Some(matrix) = matrix.to_matrix2d() {
92-
Transform::Matrix(matrix).to_css(&mut Printer::new(
93-
&mut mat,
94-
PrinterOptions {
95-
minify: true,
96-
..PrinterOptions::default()
97-
},
98-
))?
99-
} else {
100-
Transform::Matrix3d(matrix).to_css(&mut Printer::new(
101-
&mut mat,
102-
PrinterOptions {
103-
minify: true,
104-
..PrinterOptions::default()
105-
},
106-
))?
107-
}
63+
let mut base = String::new();
64+
self.to_css_base(&mut Printer::new(
65+
&mut base,
66+
PrinterOptions {
67+
minify: true,
68+
..PrinterOptions::default()
69+
},
70+
))?;
10871

109-
if mat.len() < base.len() {
110-
dest.write_str(&mat)?;
111-
} else {
112-
dest.write_str(&base)?;
113-
}
72+
dest.write_str(&base)?;
11473

115-
return Ok(());
116-
}
74+
return Ok(());
11775
}
76+
// if dest.minify {
77+
// // Combine transforms into a single matrix.
78+
// if let Some(matrix) = self.to_matrix() {
79+
// // Generate based on the original transforms.
80+
// let mut base = String::new();
81+
// self.to_css_base(&mut Printer::new(
82+
// &mut base,
83+
// PrinterOptions {
84+
// minify: true,
85+
// ..PrinterOptions::default()
86+
// },
87+
// ))?;
88+
//
89+
// // Decompose the matrix into transform functions if possible.
90+
// // If the resulting length is shorter than the original, use it.
91+
// if let Some(d) = matrix.decompose() {
92+
// let mut decomposed = String::new();
93+
// d.to_css_base(&mut Printer::new(
94+
// &mut decomposed,
95+
// PrinterOptions {
96+
// minify: true,
97+
// ..PrinterOptions::default()
98+
// },
99+
// ))?;
100+
// if decomposed.len() < base.len() {
101+
// base = decomposed;
102+
// }
103+
// }
104+
//
105+
// // Also generate a matrix() or matrix3d() representation and compare that.
106+
// let mut mat = String::new();
107+
// if let Some(matrix) = matrix.to_matrix2d() {
108+
// Transform::Matrix(matrix).to_css(&mut Printer::new(
109+
// &mut mat,
110+
// PrinterOptions {
111+
// minify: true,
112+
// ..PrinterOptions::default()
113+
// },
114+
// ))?
115+
// } else {
116+
// Transform::Matrix3d(matrix).to_css(&mut Printer::new(
117+
// &mut mat,
118+
// PrinterOptions {
119+
// minify: true,
120+
// ..PrinterOptions::default()
121+
// },
122+
// ))?
123+
// }
124+
//
125+
// if mat.len() < base.len() {
126+
// dest.write_str(&mat)?;
127+
// } else {
128+
// dest.write_str(&base)?;
129+
// }
130+
//
131+
// return Ok(());
132+
// }
133+
// }
118134

119135
self.to_css_base(dest)
120136
}

0 commit comments

Comments
 (0)