@@ -6,6 +6,8 @@ const defaultFlexGrow = 1;
6
6
const defaultFlexShrink = 1 ;
7
7
const defaultFlexBasis = 0 ;
8
8
9
+ const FLEX_BASIS_AUTO = { } ; // Used for reference equality
10
+
9
11
module . exports = ( tokenStream ) => {
10
12
let flexGrow ;
11
13
let flexShrink ;
@@ -14,8 +16,7 @@ module.exports = (tokenStream) => {
14
16
if ( tokenStream . matches ( NONE ) ) {
15
17
tokenStream . expectEmpty ( ) ;
16
18
return { $merge : { flexGrow : 0 , flexShrink : 0 } } ;
17
- } else if ( tokenStream . matches ( AUTO ) ) {
18
- tokenStream . expectEmpty ( ) ;
19
+ } else if ( tokenStream . matches ( AUTO ) && ! tokenStream . lookAhead ( ) . hasTokens ( ) ) {
19
20
return { $merge : { flexGrow : 1 , flexShrink : 1 } } ;
20
21
}
21
22
@@ -32,6 +33,8 @@ module.exports = (tokenStream) => {
32
33
}
33
34
} else if ( flexBasis === undefined && tokenStream . matches ( LENGTH ) ) {
34
35
flexBasis = tokenStream . lastValue ;
36
+ } else if ( flexBasis === undefined && tokenStream . matches ( AUTO ) ) {
37
+ flexBasis = FLEX_BASIS_AUTO ;
35
38
} else {
36
39
tokenStream . throw ( ) ;
37
40
}
@@ -45,5 +48,7 @@ module.exports = (tokenStream) => {
45
48
if ( flexShrink === undefined ) flexShrink = defaultFlexShrink ;
46
49
if ( flexBasis === undefined ) flexBasis = defaultFlexBasis ;
47
50
48
- return { $merge : { flexGrow, flexShrink, flexBasis } } ;
51
+ return flexBasis !== FLEX_BASIS_AUTO
52
+ ? { $merge : { flexGrow, flexShrink, flexBasis } }
53
+ : { $merge : { flexGrow, flexShrink } } ;
49
54
} ;
0 commit comments