Skip to content

Commit 2836216

Browse files
authored
Fix deprotofy SassCalculation.clamp (#2043)
1 parent b1d56a4 commit 2836216

File tree

5 files changed

+20
-15
lines changed

5 files changed

+20
-15
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## 1.64.1
2+
3+
### Embedded Sass
4+
5+
* Fix a bug where a valid `SassCalculation.clamp()` with less than 3 arguments
6+
would throw an error.
7+
18
## 1.64.0
29

310
* Comments that appear before or between `@use` and `@forward` rules are now

lib/src/embedded/protofier.dart

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -350,16 +350,20 @@ class Protofier {
350350
return SassCalculation.calc(
351351
_deprotofyCalculationValue(calculation.arguments[0]));
352352
} else if (calculation.name == "clamp") {
353-
if (calculation.arguments.length != 3) {
353+
if (calculation.arguments.isEmpty || calculation.arguments.length > 3) {
354354
throw paramsError(
355-
"Value.Calculation.arguments must have exactly 3 arguments for "
355+
"Value.Calculation.arguments must have 1 to 3 arguments for "
356356
"clamp().");
357357
}
358358

359359
return SassCalculation.clamp(
360360
_deprotofyCalculationValue(calculation.arguments[0]),
361-
_deprotofyCalculationValue(calculation.arguments[1]),
362-
_deprotofyCalculationValue(calculation.arguments[2]));
361+
calculation.arguments.length > 1
362+
? _deprotofyCalculationValue(calculation.arguments[1])
363+
: null,
364+
calculation.arguments.length > 2
365+
? _deprotofyCalculationValue(calculation.arguments[2])
366+
: null);
363367
} else if (calculation.name == "min") {
364368
if (calculation.arguments.isEmpty) {
365369
throw paramsError(

pkg/sass_api/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ environment:
1010
sdk: ">=3.0.0 <4.0.0"
1111

1212
dependencies:
13-
sass: 1.64.0
13+
sass: 1.64.1
1414

1515
dev_dependencies:
1616
dartdoc: ^5.0.0

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: sass
2-
version: 1.64.0
2+
version: 1.64.1
33
description: A Sass implementation in Dart.
44
homepage: https://github.com/sass/dart-sass
55

test/embedded/function_test.dart

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1699,7 +1699,7 @@ void main() {
16991699
..number = (Value_Number()..value = 3.0))
17001700
..arguments.add(Value_Calculation_CalculationValue()
17011701
..number = (Value_Number()..value = 4.0))),
1702-
equals("Value.Calculation.arguments must have exactly 3 "
1702+
equals("Value.Calculation.arguments must have 1 to 3 "
17031703
"arguments for clamp()."));
17041704
});
17051705
});
@@ -1714,14 +1714,8 @@ void main() {
17141714

17151715
test("for clamp", () async {
17161716
await _expectDeprotofyError(
1717-
Value()
1718-
..calculation = (Value_Calculation()
1719-
..name = "clamp"
1720-
..arguments.add(Value_Calculation_CalculationValue()
1721-
..number = (Value_Number()..value = 1.0))
1722-
..arguments.add(Value_Calculation_CalculationValue()
1723-
..number = (Value_Number()..value = 2.0))),
1724-
equals("Value.Calculation.arguments must have exactly 3 "
1717+
Value()..calculation = (Value_Calculation()..name = "clamp"),
1718+
equals("Value.Calculation.arguments must have 1 to 3 "
17251719
"arguments for clamp()."));
17261720
});
17271721

0 commit comments

Comments
 (0)