WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
20142
REGRESSION(
r35245
): /=/ weirdness
https://bugs.webkit.org/show_bug.cgi?id=20142
Summary
REGRESSION(r35245): /=/ weirdness
Will Moffat
Reported
2008-07-23 07:41:15 PDT
The regexp /=/ behaves very strangely unless you escape the equals sign. Firefox does not require the escape. WebKit: /=/.toString() --> "//" BUG? /=/.test('=') --> true ok '='.match(/=/) --> [""] BUG? '='.match(/\=/) --> ["="] ok FF3: /=/.toString() --> "/=/" OK /=/.test('=') --> true OK '='.match(/=/) --> ["="] OK '='.match(/\=/) --> ["="] OK
Attachments
Add attachment
proposed patch, testcase, etc.
Alexey Proskuryakov
Comment 1
2008-07-23 08:03:28 PDT
Weird. Confirmed as a regression with
r35291
.
Alexey Proskuryakov
Comment 2
2008-07-23 08:38:16 PDT
Regressed between
r35231
and
r35249
, <
http://trac.webkit.org/projects/webkit/changeset/35245
> is the only suspicious revision in this range. This is related to the fact that "/=" can be either a beginning of a regexp, or a "divide and assign" operation. It's not necessary to escape '=' at positions other than the very beginning of a regexp.
Will Moffat
Comment 3
2008-07-23 08:47:02 PDT
To put the bug into context, it breaks all sites which do JsonP using jQuery
http://code.jquery.com/nightlies/jquery-nightly.js
(grep for jsre)
Oliver Hunt
Comment 4
2008-07-24 00:38:18 PDT
Ah, whoops, it's fairly obvious just by looking at the diff, spot the error: - $$ = createNodeFeatureInfo<ExpressionNode*>(new RegExpNode(GLOBAL_DATA, "=" + l.pattern(), l.flags()), 0); + RegExpNode* node = new RegExpNode(GLOBAL_DATA, l.pattern(), l.flags()); + int size = l.pattern().size() + 2; // + 2 for the two /'s + SET_EXCEPTION_LOCATION(node, @1.first_column, @1.first_column + size, @1.first_column + size); + $$ = createNodeFeatureInfo<ExpressionNode*>(node, 0); Will fix shortly.
Oliver Hunt
Comment 5
2008-07-24 03:17:44 PDT
Committing to
http://svn.webkit.org/repository/webkit/trunk
... M JavaScriptCore/ChangeLog M JavaScriptCore/kjs/grammar.y M LayoutTests/ChangeLog A LayoutTests/fast/js/regexp-divequal-expected.txt A LayoutTests/fast/js/regexp-divequal.html A LayoutTests/fast/js/resources/regexp-divequal.js Committed
r35323
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug