Issue metadata
Sign in to add a comment
|
undefined prototypal inherited properties [OpenStreetMap iD editor]
Reported by
tyr....@gmail.com,
Jun 8 2017
|
||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/58.0.3029.110 Chrome/58.0.3029.110 Safari/537.36 Steps to reproduce the problem: This was originally reported and discussed in https://github.com/openstreetmap/iD/issues/3973. Chrome 59 on Linux doesn't seem to be able to access some "random" properties from the prototype of a certain central data structure of OpenStreetMap's iD editor. To reproduce: navigate to https://www.openstreetmap.org/edit#map=17/43.04349/131.82870. Loading the page throws exceptions of the form "Uncaught Error: entity w<some-entity-id> not found". What is the expected behavior? The page loads without any thrown exceptions. What went wrong? There's a central data structure in OpenStreetMap's iD editor which is an object that's basically used as a hash table to store entities via string keys. It will eventually contain some own properties, but at page load it only has properties inherited from it's prototype object. When accessing the object, Chromium can't access some of the properties that are present in the prototype when requested directly from the object (via […]). Accessing the same properties from the object's __proto__ works, though. (We're planing to use that as a workaround for now: https://github.com/openstreetmap/iD/commit/9cdf0cdd6614e65c6375b3561ad4f014ab0a156b) Did this work before? Yes 58.0.3029.110 Chrome version: 59.0.3071.86 Channel: stable OS Version: Ubuntu 17.04 Flash Version: * The bug was also present in at least one dev build of Chromium 58: 58.0.3029.54 (Official Build) beta (64-bit) with V8 5.8.283.24 * When adding a breakpoint at the respective code line, and debugging the situation, Chrome can access the property (see https://github.com/openstreetmap/iD/issues/3973#issuecomment-294488623). * The central object/hash-table is not particularly large. In this example, it contains around 3100 entries. * It's not always the same entity id that's throwing the exception, probably depending on the order in which the data is loaded over the network and then into the data structure.
,
Jun 9 2017
Over to Blink>Javascript the analysis is showing funky binding of this...
,
Jun 9 2017
Removing Blink>Bindings; this sounds firmly on the V8 side of things.
,
Jun 10 2017
,
Jun 19 2017
Thanks for filing the issue! It'll be fixed by https://chromium-review.googlesource.com/c/539596/.
,
Jun 19 2017
Thanks for the quick fix! |
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by br...@mapbox.com
, Jun 8 2017