Release Notes for Safari Technology Preview 9

Safari Technology Preview Release 9 is now available for download for both macOS Sierra betas and OS X El Capitan. If you already have Safari Technology Preview installed, you can update from the Mac App Store’s Updates tab. This release covers WebKit revisions 202612–203152.


  • Improved spec compliance for Array and TypedArray (r202631, r202943, r202926, r203147, r203101, r203107, r203037)
  • Improved the performance of %TypedArray%.prototype.subarray (r203076)
  • Fixed Date.setYear() to be more spec compliant (r202683)
  • Fixed Date.toGMTString() to be the Date.toUTCString() function (r202752)
  • Fixed a successful RegExp.compile to properly return the regular expression (r202770)
  • Improved String to better match specs (r202916, r202956)
  • Fixed cyclic prototypes to throw the right error type according to specs (r202832)
  • Implemented HasRestrictedGlobalProperty when checking for global lexical tier conflicts (r202734)
  • Fixed an unexpected “Out of memory” error for String.prototype.repeat() with a negative value argument (r202954)
  • Fixed use strict handling when parsing functions that include use strict after other non-strict statements (r202828)

Web APIs

  • Changed FontFaceSet.load and FontFaceSet.check to honor the second argument (r203092)
  • Moved assignedSlot from CharacterData to Text to match the latest Shadow DOM specs (r202873)
  • Replaced Event.prototype.scoped by Event.prototype.composed to reflect the latest Shadow DOM spec (r202953)
  • Aligned document.body setter with the HTML specification (r202893)
  • Fixed document.body to return the first child of the HTML element that is either a body or frameset element (r202881)
  • Fixed document.title setter for SVG documents (r202895)
  • Fixed an issue that prevented calling the document.fonts.ready callback (r202945)
  • Added support for unprefixed version of the CSS image-set() function (r202765)
  • Setting table.tFoot or calling table.createTFoot() should append HTML <tfoot> element to the end of the table (r203011)
  • Exposed <td> and <th> elements as HTMLTableCellElement objects (r202937)
  • Prevented tbody.deleteRow(–1) and tr.deleteCell(–1) from throwing an error when there are no rows or cells (r202952)


  • Added support for href attribute in MathML (r203104)
  • Improved the layout of <munderover> using parameters from the OpenType MATH table (r203074)
  • Added support for mathvariants that cannot be emulated via CSS. (r203072)
  • Refactored MathML layout functions to avoid using flexbox (r202934)

Apple Pay

  • Fixed a bug allowing multiple payment sheets in Safari to be open at the same time (r203084)
  • Renamed addressFields tocontactFields (r202644)
  • Added type and paymentPass properties in PaymentMethod (r202655)

Web Inspector

  • Added “Copy as cURL” feature for resource requests in the timeline (r203132)
  • Fixed an issue causing Top Functions data to show even when disabled (r203102)
  • Improved JSON pretty printing in more scenarios (r202933)
  • Added spring to transition-timing-function value auto-completion (r202702)
  • Added pixel area column to the Layout timeline view (r202713)
  • Improved the API view of native DOM APIs (r202666)
  • Fixed ⌘⇧S in the Styles sidebar to always show the save dialog (r203017)
  • Fixed an issue causing a scrolled JavaScript Snapshot list to be drawn blank when switching back from a comparison view (r202932)
  • Fixed an issue that caused a UTF8-encoded XHR to show garbled data in the Resource sidebar (r202843)
  • Added Shadow Content type to DOM tree in the Elements tab (r202634)
  • Fixed an issue preventing the last normal tab from being closed with the “Close Tab” context menu item (r202711)
  • Fixed an issue causing the wrong function name to show in the Scope Chain sidebar of the Debugger tab (r202717)


  • Pause small video elements when returning to inline when they are too small (r203066)
  • Changed the picture-in-picture control glyph (r202880)
  • Changed fullscreen and picture-in-picture to not animate when navigating away from the host page (r202872)
  • Fixed WebAudio convolver channels to throw exceptions for an invalid number of channels (r202617)
  • Fixed clearing of MSE buffers by switching to MediaTime (r202641)
  • Fixed an issue where Facebook videos without audio tracks will sometimes cause playback controls to appear (r202918)


  • Fixed rendering an <img> element with a wide gamut PDF (r202927)
  • Fixed drawing an SVG image into a <canvas> that is not in the DOM (r202712)

Bug Fixes

  • Fixed database process crashes when deleting a corrupt SQLite database file (r202822)
  • Fixed blob content type when retrieving blobs from IndexedDB (r202747)
  • Prevented a crash when attempting to copy an image (r202754)