amplitude / Amplitude-JavaScript

JavaScript SDK for Amplitude
MIT License
315 stars 132 forks source link

Amplitude-js 8.21.4 breaks compatibility with safari 12 #576

Open heyvard opened 1 year ago

heyvard commented 1 year ago

8.21.4 includes a new version of filter-obj that uses the Optional chaining operator. This is not supported on safari 12 https://caniuse.com/mdn-javascript_operators_optional_chaining

Expected Behavior

The lib is usable for users on safari 12

Current Behavior

Our app crashes on users with ios 12 and safari 12

Possible Solution

Revert dependency upgrades in 8.21.4 ? Add meassaures to ensure compatibility

Steps to Reproduce

  1. Include 8.21.4 as a dependency in a simple next js app
  2. Deploy app
  3. Open app in safari 12 (I recommend browserstack)
  4. The app will not load, since it is not able to parse the javascript

Environment

heyvard commented 1 year ago

This is using next 12.3.1.

heyvard commented 1 year ago

It seems to only be a problem when using next.js . Using CRA it works.

Golfenstein3D commented 1 year ago

No next.js here. /node_modules/amplitude-js/amplitude.js bundled with my code and minified with uglify-js 3.16.1. Fails on if (descriptor?.enumerable) { in a function called includeKeys. Reverting to amplitude-js 8.21.3 fixed the issue. iOS 12.5.7 (highest available for iPod Touch - the unfortunately-discontinued, reasonably-priced QA device a.k.a. "phone for your kid").

ngoctuan001 commented 1 year ago

We having the same problem , do you have any other alternatives, or is there any progress on this ?