1
0
mirror of https://github.com/robertkrimen/otto synced 2025-09-28 18:45:22 +08:00

Fix scanning \r, \b, \f, \v as \t

Copy and paste error of epic proportions?

This will fix #5
This commit is contained in:
Robert Krimen 2012-10-17 18:55:02 -07:00
parent 9e83d4daaf
commit 7982fa0fac
4 changed files with 26 additions and 5 deletions

View File

@ -10,7 +10,6 @@ TEST := -v --run underscoreUtility
TEST := -v --run Array_slice
TEST := -v --run Date
TEST := -v .
TEST := -v --run Lexer
TEST := -v --run Synopsis
TEST := -v --run _eval
TEST := -v --run Broken
@ -22,6 +21,8 @@ TEST := -v --run ParseFailure
TEST := -v --run RegExp
TEST := -v --run SwitchBreak
TEST := -v --run Unicode
TEST := -v --run Lexer
TEST := -v --run Test_issue
TEST := .
test: test-i

14
bug_test.go Normal file
View File

@ -0,0 +1,14 @@
package otto
import (
"testing"
. "github.com/robertkrimen/terst"
)
func Test_issue5(t *testing.T) {
Terst(t)
test := runTest()
test(`'abc' === 'def'`, "false")
test(`'\t' === '\r'`, "false")
}

View File

@ -258,15 +258,15 @@ func (self *_lexer) scanQuoteLiteral() _token {
case 'n':
text.WriteRune('\n')
case 'r':
text.WriteRune('\t')
text.WriteRune('\r')
case 't':
text.WriteRune('\t')
case 'b':
text.WriteRune('\t')
text.WriteRune('\b')
case 'f':
text.WriteRune('\t')
text.WriteRune('\f')
case 'v':
text.WriteRune('\t')
text.WriteRune('\v')
default:
text.WriteRune(value)
case 'u':

View File

@ -175,5 +175,11 @@ Second line \
"EOF",
)
test(`'\t' === '\r'`,
"string \t",
"===",
"string \r",
"EOF",
)
}