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)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
Tracking Status
firefox48 + fixed

People

(Reporter: dholbert, Assigned: jorendorff)

References

()

Details

(Keywords: regression)

Attachments

(1 file)

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.
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)
[Tracking Requested - why for this release]: serious usability regression in popular site jorendorff, mind taking a look?
Flags: needinfo?(jorendorff)
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)
Attached video screencast of bug (deleted) —
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.
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?)
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?
(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]].
Array
Assignee: nobody → jorendorff
Flags: needinfo?(jorendorff)
Depends on: 1258163
Thank you!
> 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.
Works in Nightly.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Confirmed, tens of failing es6-shim tests in Nightly are now passing. Thanks dholbert et al for reporting and jorendorff for fixing!
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: