Closed
Bug 1258140
Opened 9 years ago
Closed 9 years ago
Airbnb "+ More" links jump to top of page instead of showing more content, in recent nightlies (with "TypeError: Array.prototype[W.unscopables] is undefined" appearing in error console)
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: dholbert, Assigned: jorendorff)
References
()
Details
(Keywords: regression)
Attachments
(1 file)
(deleted),
video/ogg
|
Details |
STR:
1. Visit https://www.airbnb.com/rooms/1197403.
2. Scroll down and click a "+ More" link (in either the "Amenities" or "Description" section.
EXPECTED RESULTS:
Section should expand with more information.
ACTUAL RESULTS:
Section does not expand; instead, I'm immediately scrolled to the top of the page. (i.e. whatever JS is supposed to execute, does not execute, and instead I'm just clicking a link to "#".)
Additionally: in affected builds, this is spammed to my error console at page-load (STR step 1):
{
TypeError: Array.prototype[W.unscopables] is undefined
libs_jquery_2x-0002acf1e9ab3a960a5994c81ad63ef5.js:4:10116
ReferenceError: provide is not defined
core.bundle-e75c1ea803ca1fb4b9a844a6c45b3564.js:5:31812
TypeError: e is not a function
header_cookie.bundle-45c918a546cb07541db902c145795186.js:1:2466
}
This is a pretty serious regression for Airbnb site -- with this bug, you can't view a lot of information (anything "below the fold") when browsing listings on Airbnb.
Regression range:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=c03462e7761dc67d15c69d65d05ed658cdbe3243&tochange=fdd1faf35dbfd32211e0f47e8e8d13ecc0e9856f
Looks like this was caused by bug 1054759.
Reporter | ||
Updated•9 years ago
|
Summary: Airbnb "+ More" links stopped working → Airbnb "+ More" links don't expand in recent nightlies (with "TypeError: Array.prototype[W.unscopables] is undefined" appearing in error console)
Reporter | ||
Comment 1•9 years ago
|
||
[Tracking Requested - why for this release]: serious usability regression in popular site
jorendorff, mind taking a look?
tracking-firefox48:
--- → ?
Flags: needinfo?(jorendorff)
Reporter | ||
Updated•9 years ago
|
Summary: Airbnb "+ More" links don't expand in recent nightlies (with "TypeError: Array.prototype[W.unscopables] is undefined" appearing in error console) → Airbnb "+ More" links jump to top of page instead of showing more content, in recent nightlies (with "TypeError: Array.prototype[W.unscopables] is undefined" appearing in error console)
Reporter | ||
Comment 2•9 years ago
|
||
Reporter | ||
Comment 3•9 years ago
|
||
A bunch of other key pieces of UI are broken in Trunk (but not in DevEdition), likely due to this bug too (since it seems like some JS is tripping over something at pageload time).
e.g.:
- The landing page at https://www.airbnb.com/ is supposed to have a grid of photos/locations, if you scroll down a bit -- but those fail to load in current Nightly.
- If I'm logged in, the "messages" button near the upper-right corner has no effect.
- Similarly, if I'm logged in, almost all of the menu-entries in menu that pops down from my name in the upper-right of the screen have no effect (including key things like "Account Settings" & "Log Out")
So, Airbnb's site is pretty horrendously broken by this JS change.
Comment 4•9 years ago
|
||
Here's the related code:
https://a0.muscache.com/airbnb/static/packages/libs_jquery_2x-0002acf1e9ab3a960a5994c81ad63ef5.js
> K.symbol(W.unscopables)&&(Array.prototype[W.unscopables].values=!0))
It's possibly a minified code of es6-shim or its variant:
https://github.com/paulmillr/es6-shim/blob/f231f61631cb255087ea8208d244c144769b747d/es6-shim.js#L1202
> if (Type.symbol(Symbol.unscopables)) {
> Array.prototype[Symbol.unscopables].values = true;
> }
it looks like es6-shim uses the existence of Symbol.unscopables as a feature test for Array.prototype[@@unscopables].
Will Array.prototype[@@unscopables] be landed shortly? (hopefully in same cycle?)
Comment 5•9 years ago
|
||
I was wondering if airbnb was doing what :arai confirmed they were doing in comment 4. Array.prototype[@@unscopables] shouldn't be too hard to implement. Next merge isn't till mid-April, right? Should be plenty of time.
It's not just Airbnb, btu any site using the es6-shim - in other words, if a well-known Symbol ships without being fully implemented, it *will* break a ton of sites. Please either implement it everywhere or hold back the actual Symbol value.
In general terms, I'll even go so far as to say that a well-known Symbol *must* not ship in any browser until all of its semantics are in place. What's the value of rushing it out, especially compared to the fact that doing so will break websites?
Comment 7•9 years ago
|
||
(In reply to ljharb from comment #6)
> It's not just Airbnb, btu any site using the es6-shim - in other words, if a
> well-known Symbol ships without being fully implemented, it *will* break a
> ton of sites. Please either implement it everywhere or hold back the actual
> Symbol value.
>
> In general terms, I'll even go so far as to say that a well-known Symbol
> *must* not ship in any browser until all of its semantics are in place.
> What's the value of rushing it out, especially compared to the fact that
> doing so will break websites?
There was no rush in getting Symbol.unscopables out -- we didn't consider that that's what's feature-tested. Thanks for letting us know that the scope of the problem is much worse than just airbnb. I'll back out until we also finish Array.prototype[@@unscopables]].
Assignee | ||
Comment 10•9 years ago
|
||
> Array
I... don't remember what I was thinking when I typed this one word and then decided to just take the bug instead.
Anyway, there's a patch up for review in bug 1258163 that should fix this.
Assignee | ||
Comment 11•9 years ago
|
||
Works in Nightly.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Comment 12•9 years ago
|
||
Confirmed, tens of failing es6-shim tests in Nightly are now passing. Thanks dholbert et al for reporting and jorendorff for fixing!
Fixed in 48 according to bug 1258163.
You need to log in
before you can comment on or make changes to this bug.
Description
•