RESOLVED FIXED Bug 28449
[v8] Use atomic string caching for createElement
https://bugs.webkit.org/show_bug.cgi?id=28449
Summary [v8] Use atomic string caching for createElement
Christian Plesner Hansen
Reported 2009-08-19 00:34:01 PDT
Extend atomic string caching to createElement. Fix a bug in idl parser that caused incorrect parsing if a function argument attribute list contained a comma.
Attachments
initial (6.83 KB, patch)
2009-08-19 00:38 PDT, Christian Plesner Hansen
no flags
Unrelated changes removed (5.26 KB, patch)
2009-08-19 00:46 PDT, Christian Plesner Hansen
levin: review+
levin: commit-queue-
Escaped ']' in regexp (4.37 KB, patch)
2009-08-20 01:07 PDT, Christian Plesner Hansen
no flags
Included ChangeLog (5.26 KB, patch)
2009-08-20 01:13 PDT, Christian Plesner Hansen
levin: review+
eric: commit-queue-
Christian Plesner Hansen
Comment 1 2009-08-19 00:38:33 PDT
Created attachment 35105 [details] initial
Christian Plesner Hansen
Comment 2 2009-08-19 00:42:36 PDT
Comment on attachment 35105 [details] initial Something unrelated was rolled into this patch. Will upload a new one.
Christian Plesner Hansen
Comment 3 2009-08-19 00:46:45 PDT
Created attachment 35106 [details] Unrelated changes removed
David Levin
Comment 4 2009-08-19 15:26:00 PDT
Comment on attachment 35106 [details] Unrelated changes removed > Index: WebCore/bindings/scripts/CodeGeneratorV8.pm Why did this attribute change? > Index: WebCore/bindings/scripts/IDLParser.pm > + # Split arguments at commas but only if the comma > + # is not within attribute brackets, expressed here > + # as being followed by a ']' without a preceding '['. > + # Note that this assumes that attributes don't nest. > + my @params = split(/,(?![^[]*])/, $methodSignature); I don't understand how this regex does what the comment says. It looks like it splits on commas that are followed by anything except these three characters: '[', ']', '*' (using a negative width lookahead assertion).
Christian Plesner Hansen
Comment 5 2009-08-19 20:46:09 PDT
> > Index: WebCore/bindings/scripts/CodeGeneratorV8.pm > > Why did this attribute change? It's cleanup -- using V8Custom was a hack. V8Custom is really there to indicate that we have to use a customized implementation rather than a generated accessor or function and using it for specifying atomic hints was a bad idea in the first place. > > Index: WebCore/bindings/scripts/IDLParser.pm > > + # Split arguments at commas but only if the comma > > + # is not within attribute brackets, expressed here > > + # as being followed by a ']' without a preceding '['. > > + # Note that this assumes that attributes don't nest. > > + my @params = split(/,(?![^[]*])/, $methodSignature); > > I don't understand how this regex does what the comment says. > > It looks like it splits on commas that are followed by anything except these > three characters: '[', ']', '*' > (using a negative width lookahead assertion). The character class is closed by the first ']' so, using parens to indicate precedence, it gets parsed as ((([^[])*)]) rather than ([^[]*]).
David Levin
Comment 6 2009-08-19 21:28:49 PDT
Comment on attachment 35106 [details] Unrelated changes removed > +++ WebCore/bindings/scripts/IDLParser.pm (working copy) > + my @params = split(/,(?![^[]*])/, $methodSignature); Although apparently valid without this, it would be nice to escape the last ] to clue in the reader that it isn't a closing ] in the regex.
Christian Plesner Hansen
Comment 7 2009-08-20 01:07:57 PDT
Created attachment 35191 [details] Escaped ']' in regexp
Christian Plesner Hansen
Comment 8 2009-08-20 01:09:01 PDT
Comment on attachment 35191 [details] Escaped ']' in regexp Gah! The ChangeLog disappeared. Will upload a new patch.
Christian Plesner Hansen
Comment 9 2009-08-20 01:13:57 PDT
Created attachment 35192 [details] Included ChangeLog
Eric Seidel (no email)
Comment 10 2009-08-20 01:38:58 PDT
Comment on attachment 35192 [details] Included ChangeLog Rejecting patch 35192 from commit-queue. This patch will require manual commit. Found no modified ChangeLogs, cannot create a commit message. All changes require a ChangeLog. See: http://webkit.org/coding/contributing.html
Christian Plesner Hansen
Comment 11 2009-08-20 01:48:55 PDT
(In reply to comment #10) > (From update of attachment 35192 [details]) > Rejecting patch 35192 from commit-queue. This patch will require manual > commit. > > Found no modified ChangeLogs, cannot create a commit message. > All changes require a ChangeLog. See: > http://webkit.org/coding/contributing.html I accidentally left out the ChangeLog from the previous patch but the latest one does have one.
David Levin
Comment 12 2009-08-20 01:58:57 PDT
I think the commit tool is having issues which are fixed in https://bugs.webkit.org/show_bug.cgi?id=28485
Adam Barth
Comment 13 2009-08-20 23:06:39 PDT
Comment on attachment 35192 [details] Included ChangeLog Eric commit-queue+ this patch during the blackout.
David Levin
Comment 14 2009-08-20 23:13:20 PDT
Eric Seidel (no email)
Comment 15 2009-08-20 23:13:25 PDT
Comment on attachment 35192 [details] Included ChangeLog Rejecting patch 35192 from commit-queue. This patch will require manual commit. Patch https://bugs.webkit.org/attachment.cgi?id=35192 from bug 28449 failed to download and apply.
Eric Seidel (no email)
Comment 16 2009-08-21 09:15:14 PDT
The queue (correctly) rejected this because it was already landed... bugzilla just forgot.
Note You need to log in before you can comment on or make changes to this bug.