| Index: runtime/vm/scanner.cc
|
| diff --git a/runtime/vm/scanner.cc b/runtime/vm/scanner.cc
|
| index f7ae4ac59525fca9ca450cce9d6fa356af548dbb..7bbf8e7c3316dac24ae8b1fd4ae5693c2c29fccd 100644
|
| --- a/runtime/vm/scanner.cc
|
| +++ b/runtime/vm/scanner.cc
|
| @@ -344,9 +344,10 @@ void Scanner::ScanIdentChars(bool allow_dollar) {
|
| }
|
|
|
|
|
| -// Parse integer or double number literal of format:
|
| -// NUMBER = INTEGER | DOUBLE
|
| +// Parse integer, rational, or double number literal of format:
|
| +// NUMBER = INTEGER | PIXELS | DOUBLE
|
| // INTEGER = D+ | (("0x" | "0X") H+)
|
| +// PIXELS = ((D+ ["." D*]) | ("." D+)) ("px" | "PX")
|
| // DOUBLE = ((D+ ["." D*]) | ("." D+)) [ EXPONENT ]
|
| // EXPONENT = ("e" | "E") ["+" | "-"] D+
|
| void Scanner::ScanNumber(bool dec_point_seen) {
|
| @@ -388,6 +389,12 @@ void Scanner::ScanNumber(bool dec_point_seen) {
|
| while (IsDecimalDigit(c0_)) {
|
| ReadChar();
|
| }
|
| + } else if ((c0_ == 'p') && (LookaheadChar(1) == 'x')) {
|
| + ReadChar();
|
| + Recognize(Token::kPIXELS);
|
| + } else if ((c0_ == 'P') && (LookaheadChar(1) == 'X')) {
|
| + ReadChar();
|
| + Recognize(Token::kPIXELS);
|
| }
|
| }
|
| if (current_token_.kind != Token::kILLEGAL) {
|
|
|