@@ -6,6 +6,8 @@ const defaultFlexGrow = 1;
66const defaultFlexShrink = 1 ;
77const defaultFlexBasis = 0 ;
88
9+ const FLEX_BASIS_AUTO = { } ; // Used for reference equality
10+
911module . exports = ( tokenStream ) => {
1012 let flexGrow ;
1113 let flexShrink ;
@@ -14,8 +16,7 @@ module.exports = (tokenStream) => {
1416 if ( tokenStream . matches ( NONE ) ) {
1517 tokenStream . expectEmpty ( ) ;
1618 return { $merge : { flexGrow : 0 , flexShrink : 0 } } ;
17- } else if ( tokenStream . matches ( AUTO ) ) {
18- tokenStream . expectEmpty ( ) ;
19+ } else if ( tokenStream . matches ( AUTO ) && ! tokenStream . lookAhead ( ) . hasTokens ( ) ) {
1920 return { $merge : { flexGrow : 1 , flexShrink : 1 } } ;
2021 }
2122
@@ -32,6 +33,8 @@ module.exports = (tokenStream) => {
3233 }
3334 } else if ( flexBasis === undefined && tokenStream . matches ( LENGTH ) ) {
3435 flexBasis = tokenStream . lastValue ;
36+ } else if ( flexBasis === undefined && tokenStream . matches ( AUTO ) ) {
37+ flexBasis = FLEX_BASIS_AUTO ;
3538 } else {
3639 tokenStream . throw ( ) ;
3740 }
@@ -45,5 +48,7 @@ module.exports = (tokenStream) => {
4548 if ( flexShrink === undefined ) flexShrink = defaultFlexShrink ;
4649 if ( flexBasis === undefined ) flexBasis = defaultFlexBasis ;
4750
48- return { $merge : { flexGrow, flexShrink, flexBasis } } ;
51+ return flexBasis !== FLEX_BASIS_AUTO
52+ ? { $merge : { flexGrow, flexShrink, flexBasis } }
53+ : { $merge : { flexGrow, flexShrink } } ;
4954} ;
0 commit comments