<!--
{
  "documentType" : "article",
  "framework" : "Safari Technology Preview Release Notes",
  "identifier" : "/documentation/Safari-Technology-Preview-Release-Notes/stp-release-9",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Safari Technology Preview 9 Release Notes"
}
-->

# Safari Technology Preview 9 Release Notes

Preview the latest web technology updates including: JavaScript, Web APIs, MathML, Apple Pay, Web Inspector, Media, Rendering, and bug fixes.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 9 is now [available for download](https://webkit.org/downloads/) 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](http://trac.webkit.org/log/?rev=203152&stop_rev=202612&limit=999).

### JavaScript

- Improved spec compliance for `Array` and `TypedArray` ([r202631](https://trac.webkit.org/changeset/202631/trunk/Source), [r202943](https://trac.webkit.org/changeset/202943/trunk/Source), [r202926](https://trac.webkit.org/changeset/202926/trunk/Source), [r203147](https://trac.webkit.org/changeset/203147/trunk/Source), [r203101](https://trac.webkit.org/changeset/203101/trunk/Source), [r203107](https://trac.webkit.org/changeset/203107/trunk/Source), [r203037](https://trac.webkit.org/changeset/203037/trunk/Source))
- Improved the performance of `%TypedArray%.prototype.subarray` ([r203076](https://trac.webkit.org/changeset/203076/trunk/Source))
- Fixed `Date.setYear()` to be more spec compliant ([r202683](https://trac.webkit.org/changeset/202683/trunk/Source))
- Fixed `Date.toGMTString()` to be the `Date.toUTCString()` function ([r202752](https://trac.webkit.org/changeset/202752/trunk/Source))
- Fixed a successful `RegExp.compile` to properly return the regular expression ([r202770](https://trac.webkit.org/changeset/202770/trunk/Source))
- Improved `String` to better match specs ([r202916](https://trac.webkit.org/changeset/202916/trunk/Source), [r202956](https://trac.webkit.org/changeset/202956/trunk/Source))
- Fixed cyclic prototypes to throw the right error type according to specs ([r202832](https://trac.webkit.org/changeset/202832/trunk/Source))
- Implemented `HasRestrictedGlobalProperty` when checking for global lexical tier conflicts ([r202734](https://trac.webkit.org/changeset/202734/trunk/Source))
- Fixed an unexpected “Out of memory” error for `String.prototype.repeat()` with a negative value argument ([r202954](https://trac.webkit.org/changeset/202954/trunk/Source))
- Fixed `use strict` handling when parsing functions that include `use strict` after other non-strict statements ([r202828](https://trac.webkit.org/changeset/202828/trunk/Source))

### Web APIs

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

### MathML

- Added support for `href` attribute in MathML ([r203104](https://trac.webkit.org/changeset/203104/trunk/Source))
- Improved the layout of `<munderover>` using parameters from the OpenType MATH table ([r203074](https://trac.webkit.org/changeset/203074/trunk/Source))
- Added support for mathvariants that cannot be emulated via CSS. ([r203072](https://trac.webkit.org/changeset/203072/trunk/Source))
- Refactored MathML layout functions to avoid using flexbox ([r202934](https://trac.webkit.org/changeset/202934/trunk/Source))

### Apple Pay

- Fixed a bug allowing multiple payment sheets in Safari to be open at the same time ([r203084](https://trac.webkit.org/changeset/203084/trunk/Source))
- Renamed `addressFields` to` contactFields` ([r202644](https://trac.webkit.org/changeset/202644/trunk/Source))
- Added `type` and `paymentPass` properties in `PaymentMethod` ([r202655](https://trac.webkit.org/changeset/202655/trunk/Source))

### Web Inspector

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

### Media

- Pause small video elements when returning to inline when they are too small ([r203066](https://trac.webkit.org/changeset/203066/trunk/Source))
- Changed the picture-in-picture control glyph ([r202880](https://trac.webkit.org/changeset/202880/trunk/Source))
- Changed fullscreen and picture-in-picture to not animate when navigating away from the host page ([r202872](https://trac.webkit.org/changeset/202872/trunk/Source))
- Fixed WebAudio convolver channels to throw exceptions for an invalid number of channels ([r202617](https://trac.webkit.org/changeset/202617/trunk/Source))
- Fixed clearing of MSE buffers by switching to MediaTime ([r202641](https://trac.webkit.org/changeset/202641/trunk/Source))
- Fixed an issue where Facebook videos without audio tracks will sometimes cause playback controls to appear ([r202918](https://trac.webkit.org/changeset/202918/trunk/Source))

### Rendering

- Fixed rendering an `<img>` element with a wide gamut PDF ([r202927](https://trac.webkit.org/changeset/202927/trunk/Source))
- Fixed drawing an SVG image into a `<canvas>` that is not in the DOM ([r202712](https://trac.webkit.org/changeset/202712))

### Bug Fixes

- Fixed database process crashes when deleting a corrupt SQLite database file ([r202822](https://trac.webkit.org/changeset/202822/trunk/Source))
- Fixed blob content type when retrieving blobs from IndexedDB ([r202747](https://trac.webkit.org/changeset/202747/trunk/Source))
- Prevented a crash when attempting to copy an image ([r202754](https://trac.webkit.org/changeset/202754/trunk/Source))

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)