WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED WONTFIX
167682
[Mac] REGRESSION (
r203605
): Trillian chat bubbles do not show
https://bugs.webkit.org/show_bug.cgi?id=167682
Summary
[Mac] REGRESSION (r203605): Trillian chat bubbles do not show
Chris Dumez
Reported
2017-01-31 20:21:29 PST
Trillian chat bubbles do not show after <
http://trac.webkit.org/changeset/203605
>.
Attachments
Patch
(11.52 KB, patch)
2017-01-31 21:17 PST
,
Chris Dumez
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Chris Dumez
Comment 1
2017-01-31 20:21:49 PST
<
rdar://problem/30273684
>
Chris Dumez
Comment 2
2017-01-31 21:17:40 PST
Created
attachment 300297
[details]
Patch
Chris Dumez
Comment 3
2017-01-31 21:20:54 PST
Comment on
attachment 300297
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=300297&action=review
> Source/WebCore/dom/NonElementParentNode.idl:-31 > - [DOMJIT=ReadDOM] Element? getElementById([RequiresExistingAtomicString] DOMString elementId);
Yusuke / Ryosuke: Unfortunately, DOMJIT does not seem to be compatible with overloads so this current version drops JIT'ing of getElementById(). Do you have a better proposal? I tried using an optional parameter instead but then I could not distinguish the 2 cases: - no parameter is passed (Should throw except for Trillian which should use the string "undefined"). - called with undefined (should use the string "undefined")
Yusuke Suzuki
Comment 4
2017-02-01 03:41:39 PST
Comment on
attachment 300297
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=300297&action=review
>> Source/WebCore/dom/NonElementParentNode.idl:-31 >> - [DOMJIT=ReadDOM] Element? getElementById([RequiresExistingAtomicString] DOMString elementId); > > Yusuke / Ryosuke: Unfortunately, DOMJIT does not seem to be compatible with overloads so this current version drops JIT'ing of getElementById(). Do you have a better proposal? > > I tried using an optional parameter instead but then I could not distinguish the 2 cases: > - no parameter is passed (Should throw except for Trillian which should use the string "undefined"). > - called with undefined (should use the string "undefined")
DOMJIT should support this case. This signature based optimization only works in DFG/FTL and it recognizes the argument count in DFG. So ideally, we should apply DOMJIT optimization when getElementById is called with one argument. Can we annotate the generated function with the current DOMJIT signature? I think it should work. It means, 1. When using DOMJIT function in LLInt / baseline, it is ok. 2. When using DOMJIT function in DFG / FTL, DFG compiler checks the call form of the DOMJIT function. If it does not meet to the form of the DOMJIT, DFG just ignores this annotation and handles it as a normal function. So it should work.
Chris Dumez
Comment 5
2017-02-01 07:15:18 PST
(In reply to
comment #4
)
> Comment on
attachment 300297
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=300297&action=review
> > >> Source/WebCore/dom/NonElementParentNode.idl:-31 > >> - [DOMJIT=ReadDOM] Element? getElementById([RequiresExistingAtomicString] DOMString elementId); > > > > Yusuke / Ryosuke: Unfortunately, DOMJIT does not seem to be compatible with overloads so this current version drops JIT'ing of getElementById(). Do you have a better proposal? > > > > I tried using an optional parameter instead but then I could not distinguish the 2 cases: > > - no parameter is passed (Should throw except for Trillian which should use the string "undefined"). > > - called with undefined (should use the string "undefined") > > DOMJIT should support this case. This signature based optimization only > works in DFG/FTL and it recognizes the argument count in DFG. > So ideally, we should apply DOMJIT optimization when getElementById is > called with one argument. > Can we annotate the generated function with the current DOMJIT signature? I > think it should work. It means, > > 1. When using DOMJIT function in LLInt / baseline, it is ok. > 2. When using DOMJIT function in DFG / FTL, DFG compiler checks the call > form of the DOMJIT function. If it does not meet to the form of the DOMJIT, > DFG just ignores this annotation and handles it as a normal function. So it > should work.
But in practice, the script seems to complain that DOMJIT does not support overloads.
Chris Dumez
Comment 6
2017-02-01 08:51:44 PST
(In reply to
comment #5
)
> (In reply to
comment #4
) > > Comment on
attachment 300297
[details]
> > Patch > > > > View in context: > >
https://bugs.webkit.org/attachment.cgi?id=300297&action=review
> > > > >> Source/WebCore/dom/NonElementParentNode.idl:-31 > > >> - [DOMJIT=ReadDOM] Element? getElementById([RequiresExistingAtomicString] DOMString elementId); > > > > > > Yusuke / Ryosuke: Unfortunately, DOMJIT does not seem to be compatible with overloads so this current version drops JIT'ing of getElementById(). Do you have a better proposal? > > > > > > I tried using an optional parameter instead but then I could not distinguish the 2 cases: > > > - no parameter is passed (Should throw except for Trillian which should use the string "undefined"). > > > - called with undefined (should use the string "undefined") > > > > DOMJIT should support this case. This signature based optimization only > > works in DFG/FTL and it recognizes the argument count in DFG. > > So ideally, we should apply DOMJIT optimization when getElementById is > > called with one argument. > > Can we annotate the generated function with the current DOMJIT signature? I > > think it should work. It means, > > > > 1. When using DOMJIT function in LLInt / baseline, it is ok. > > 2. When using DOMJIT function in DFG / FTL, DFG compiler checks the call > > form of the DOMJIT function. If it does not meet to the form of the DOMJIT, > > DFG just ignores this annotation and handles it as a normal function. So it > > should work. > > But in practice, the script seems to complain that DOMJIT does not support > overloads.
PhaseScriptExecution Generate Derived Sources Overloads is not supported in DOMJIT at /Volumes/Data/WebKit/OpenSource/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm line 3123. make[3]: *** [JSDocumentFragment.h] Error 255 make[3]: *** Waiting for unfinished jobs....
Yusuke Suzuki
Comment 7
2017-02-01 09:05:26 PST
(In reply to
comment #6
)
> (In reply to
comment #5
) > > (In reply to
comment #4
) > > > Comment on
attachment 300297
[details]
> > > Patch > > > > > > View in context: > > >
https://bugs.webkit.org/attachment.cgi?id=300297&action=review
> > > > > > >> Source/WebCore/dom/NonElementParentNode.idl:-31 > > > >> - [DOMJIT=ReadDOM] Element? getElementById([RequiresExistingAtomicString] DOMString elementId); > > > > > > > > Yusuke / Ryosuke: Unfortunately, DOMJIT does not seem to be compatible with overloads so this current version drops JIT'ing of getElementById(). Do you have a better proposal? > > > > > > > > I tried using an optional parameter instead but then I could not distinguish the 2 cases: > > > > - no parameter is passed (Should throw except for Trillian which should use the string "undefined"). > > > > - called with undefined (should use the string "undefined") > > > > > > DOMJIT should support this case. This signature based optimization only > > > works in DFG/FTL and it recognizes the argument count in DFG. > > > So ideally, we should apply DOMJIT optimization when getElementById is > > > called with one argument. > > > Can we annotate the generated function with the current DOMJIT signature? I > > > think it should work. It means, > > > > > > 1. When using DOMJIT function in LLInt / baseline, it is ok. > > > 2. When using DOMJIT function in DFG / FTL, DFG compiler checks the call > > > form of the DOMJIT function. If it does not meet to the form of the DOMJIT, > > > DFG just ignores this annotation and handles it as a normal function. So it > > > should work. > > > > But in practice, the script seems to complain that DOMJIT does not support > > overloads. > > PhaseScriptExecution Generate Derived Sources > Overloads is not supported in DOMJIT at > /Volumes/Data/WebKit/OpenSource/Source/WebCore/bindings/scripts/ > CodeGeneratorJS.pm line 3123. > make[3]: *** [JSDocumentFragment.h] Error 255 > make[3]: *** Waiting for unfinished jobs....
OK, I'll take a look at this part.
Chris Dumez
Comment 8
2017-02-01 09:27:34 PST
Fixed in Trillian 3.5: www.trillian.im/get/mac/3.5/
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