Skip to content

Browser implementation workarounds

John Lenz edited this page Jun 26, 2017 · 5 revisions

Workarounds

Closure works around a number of browser implementation issues.

Edge

  • ChakraCore #1496 is an optimizer bug that causes constructor invocations to return the class instead of the instance. Closure Library explicitly checks the user agent for Edge and considers it a non-ES6-compliant browser as a result.
  • ChakraCore #3217 is a bug in Reflect.construct that prevents the compiler's super() call transpilation from working correctly. The compiler checks for this bug and uses a slower polyfill that calls Reflect.setPrototypeOf instead.

Safari

  • Safari 10 Object.seal(class C{}) throws an exception stating that the properties are not configurable, but not 10.2 so no bug was reported
  • Webkit #167328 Safari 10 incorrectly scopes functions in eval.
Clone this wiki locally