View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0002413 | NetSurf | RISC OS-specific | public | 2016-01-26 07:32 | 2016-02-16 14:08 | ||||
Reporter | David Pitt | ||||||||
Assigned To | John-Mark Bell | ||||||||
Severity | major | Reproducibility | always | ||||||
Status | closed | Resolution | fixed | ||||||
Platform | RISC OS | OS | RISC OS | OS Version | OS5.23 | ||||
Product Version | 3.3 | ||||||||
Target Version | 3.4 | Fixed in Version | 3.4 | ||||||
Summary | 0002413: BBC home page endless javascript loop | ||||||||
Description | Attempting to load the BBC's home page with Javascript enabled results in an endless hourglass and NetSurf has to be alt-breaked. | ||||||||
Steps To Reproduce | Click on http://www.bbc.co.uk | ||||||||
Additional Information | The loop is :- (142.860000) javascript/duktape/dukky.c:57 dukky_populate_object: RuhRoh, couldn't find a prototype, HTMLUnknownElement it is (142.860000) javascript/duktape/dukky.c:73 dukky_populate_object: Call the init function | ||||||||
Tags | No tags attached. | ||||||||
Fixed in CI build # | 3329 | ||||||||
Reported in CI build # | 3307 | ||||||||
URL of problem page | http://www.bbc.co.uk | ||||||||
Attached Files |
|
Notes | |
Dave Higton (developer) 2016-01-27 22:53 |
Confirmed reproducible with CI #3315 |
Michael Drake (administrator) 2016-01-30 12:22 |
Test case, thanks to jmb: <!DOCTYPE html> <script type="text/javascript"> var x = document.createElement("p"); for (var g = ['modernizr','tspan']; !x.style;) { x.modElem = document.createElement(g.shift()); x.style = x.modElem.style; } </script> |
John-Mark Bell (administrator) 2016-01-30 23:18 |
Here's a less-minified version (which also reflects reality better than the above): <script type="text/javascript"> var modElem = { elem: document.createElement('modernizr') }; var mStyle = { style: modElem.elem.style }; var elems = [ 'modernizr', 'tspan' ]; while (!mStyle.style) { mStyle.modElem = document.createElement(elems.shift()); mStyle.style = mStyle.modElem.style; } </script> So, the actual problem here is that HTMLElement.style is unimplemented so, whenever it is read, we return undefined. This results in the loop above never terminating, and disappointment. The test case Michael posted also exposes another bug: document.createElement("p") should create an HTMLParagraphElement -- it doesn't, as dukky_push_node_klass asks for PROTO(HTML) + P + ELEMENT (i.e. PROTO(HTMLPELEMENT), rather than PROTO(HTMLPARAGRAPHELEMENT). |
David Pitt (reporter) 2016-01-31 15:37 |
I see some work has been done on this bug. With #3330 neither the BBC home page nor the test case 1161 above go into an endless loop as previously. (For some reason I am not getting email notifications from the bug tracker of additions to the threads. I shall have to pay attention manually.) |
John-Mark Bell (administrator) 2016-01-31 19:48 |
2420 tracks the bogus prototype stuff, so closing. |
Vincent Sanders (administrator) 2016-02-16 14:08 |
Confirmed fixed in 3.4 release |
Issue History | |||
Date Modified | Username | Field | Change |
---|---|---|---|
2016-01-26 07:32 | David Pitt | New Issue | |
2016-01-26 07:32 | David Pitt | File Added: beeb-loop.zip | |
2016-01-27 22:53 | Dave Higton | Note Added: 0001160 | |
2016-01-27 22:53 | Dave Higton | Status | new => acknowledged |
2016-01-30 12:22 | Michael Drake | Note Added: 0001161 | |
2016-01-30 23:18 | John-Mark Bell | Note Added: 0001162 | |
2016-01-31 15:37 | David Pitt | Note Added: 0001165 | |
2016-01-31 19:48 | John-Mark Bell | Fixed in CI build # | => 3329 |
2016-01-31 19:48 | John-Mark Bell | Note Added: 0001167 | |
2016-01-31 19:48 | John-Mark Bell | Assigned To | => John-Mark Bell |
2016-01-31 19:48 | John-Mark Bell | Status | acknowledged => resolved |
2016-01-31 19:48 | John-Mark Bell | Resolution | open => fixed |
2016-01-31 19:48 | John-Mark Bell | Fixed in Version | => 3.4 |
2016-01-31 19:48 | John-Mark Bell | Target Version | => 3.4 |
2016-02-16 14:08 | Vincent Sanders | Note Added: 0001240 | |
2016-02-16 14:08 | Vincent Sanders | Status | resolved => closed |