nl_tokens: fnparam means that this identifier is being defined as a function argument prop means that this identifier is that of an object property
pl_tokens: function identifier ( fnparam , prop ) { var i = optionalidentifier ( fnparam , prop , false ) ; if ( i ) { return i ; } // parameter destructuring with rest operator if ( state . tokens . next . value === "..." ) { if ( ! <mask> . option . esnext ) { warning ( "W119" , state . tokens . next , "spread/rest operator" ) ; } advance ( ) ; if ( checkPunctuators ( state . tokens . next , [ "..." ] ) ) { warning ( "E024" , state . tokens . next , "..." ) ; while ( checkPunctuators ( state . tokens . next , [ "..." ] ) ) { advance ( ) ; } } if ( ! state . tokens . next . identifier ) { warning ( "E024" , state . tokens . curr , "..." ) ; return ; } return identifier ( fnparam , prop ) ; } else { error ( "E030" , state . tokens . next , state . tokens . next . value ) ; // The token should be consumed after a warning is issued so the parser // can continue as though an identifier were found. The semicolon token // should not be consumed in this way so that the parser interprets it as // a statement delimeter; if ( state . tokens . next . id !== ";" ) { advance ( ) ; } } }