Amplitude-JavaScript icon indicating copy to clipboard operation
Amplitude-JavaScript copied to clipboard

Amplitude-js 8.21.4 breaks compatibility with safari 12

Open heyvard opened this issue 2 years ago • 4 comments

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

  • JS SDK Version: 8.21.4
  • Installation Method: npm dependency i next js app
  • Browser and Version: Safari 12

heyvard avatar Feb 01 '23 06:02 heyvard

This is using next 12.3.1.

heyvard avatar Feb 01 '23 07:02 heyvard

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

heyvard avatar Feb 01 '23 09:02 heyvard

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").

Golfenstein3D avatar Feb 09 '23 02:02 Golfenstein3D

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

ngoctuan001 avatar Aug 07 '23 06:08 ngoctuan001