Fix deprotofy SassCalculation.clamp (#2043)

This commit is contained in:
なつき 2023-07-21 15:08:08 -07:00 committed by GitHub
parent b1d56a4f07
commit 2836216ba5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 20 additions and 15 deletions

View File

@ -1,3 +1,10 @@
## 1.64.1
### Embedded Sass
* Fix a bug where a valid `SassCalculation.clamp()` with less than 3 arguments
would throw an error.
## 1.64.0
* Comments that appear before or between `@use` and `@forward` rules are now

View File

@ -350,16 +350,20 @@ class Protofier {
return SassCalculation.calc(
_deprotofyCalculationValue(calculation.arguments[0]));
} else if (calculation.name == "clamp") {
if (calculation.arguments.length != 3) {
if (calculation.arguments.isEmpty || calculation.arguments.length > 3) {
throw paramsError(
"Value.Calculation.arguments must have exactly 3 arguments for "
"Value.Calculation.arguments must have 1 to 3 arguments for "
"clamp().");
}
return SassCalculation.clamp(
_deprotofyCalculationValue(calculation.arguments[0]),
_deprotofyCalculationValue(calculation.arguments[1]),
_deprotofyCalculationValue(calculation.arguments[2]));
calculation.arguments.length > 1
? _deprotofyCalculationValue(calculation.arguments[1])
: null,
calculation.arguments.length > 2
? _deprotofyCalculationValue(calculation.arguments[2])
: null);
} else if (calculation.name == "min") {
if (calculation.arguments.isEmpty) {
throw paramsError(

View File

@ -10,7 +10,7 @@ environment:
sdk: ">=3.0.0 <4.0.0"
dependencies:
sass: 1.64.0
sass: 1.64.1
dev_dependencies:
dartdoc: ^5.0.0

View File

@ -1,5 +1,5 @@
name: sass
version: 1.64.0
version: 1.64.1
description: A Sass implementation in Dart.
homepage: https://github.com/sass/dart-sass

View File

@ -1699,7 +1699,7 @@ void main() {
..number = (Value_Number()..value = 3.0))
..arguments.add(Value_Calculation_CalculationValue()
..number = (Value_Number()..value = 4.0))),
equals("Value.Calculation.arguments must have exactly 3 "
equals("Value.Calculation.arguments must have 1 to 3 "
"arguments for clamp()."));
});
});
@ -1714,14 +1714,8 @@ void main() {
test("for clamp", () async {
await _expectDeprotofyError(
Value()
..calculation = (Value_Calculation()
..name = "clamp"
..arguments.add(Value_Calculation_CalculationValue()
..number = (Value_Number()..value = 1.0))
..arguments.add(Value_Calculation_CalculationValue()
..number = (Value_Number()..value = 2.0))),
equals("Value.Calculation.arguments must have exactly 3 "
Value()..calculation = (Value_Calculation()..name = "clamp"),
equals("Value.Calculation.arguments must have 1 to 3 "
"arguments for clamp()."));
});