Release Notes for Safari Technology Preview 40

Safari Technology Preview Release 40 is now available for download for macOS Sierra and betas of macOS High Sierra. If you already have Safari Technology Preview installed, you can update from the Mac App Store’s Updates tab. This release covers WebKit revisions 221334-221968.


  • Added support for regular expression named capture groups (r221769)
  • Fixed semicolon tokens becoming interpreted as an = assignment operator (r221400)
  • Implemented async iteration statement for-await-of (r221358)
  • Optimized Object.keys using careful array allocation (r221853)

FileSystem Entry API

  • Added support for input.webkitEntries (r221645)
  • Implemented FileSystemDirectoryEntry.getDirectory() (r221540)
  • Implemented FileSystemEntry.getParent() (r221481)
  • Implemented FileSystemFileEntry.file() (r221544)
  • Fixed the FileSystemEntry API to ignore hidden files (r221639)
  • Finished the DOMFormData implementation (r221839, r221914)

Fetch API

  • Added support for FetchRequest.body (r221395)
  • Added support for Request body stream cloning (r221437)
  • Added support for consuming a Request ReadableStream body (r221504)
  • Added support for caching Response with a ReadableStream body (r221704)
  • Aligned FetchResponse and FetchRequest body handling (r221772)
  • Fixed Response.statusText unexpectedly using the full HTTP status line for HTTP/2 responses (r221804)
  • Fixed Request ReadableStream body to throw an exception when keep alive is true (r221342)


  • Distinguished between title attribute tooltips and aria-label attribute labels (r221918)


  • Fixed validation for DOMMatrix and DOMMatrixReadOnly NaN values (r221545)
  • Implemented DOMMatrix2DInit for setTransform() and addPath() (r221462)


  • Removed support for >> descendant combinator syntax (r221788)
  • Fixed wrong getComputedStyle result for pseudo-elements in display:none subtrees. (r221542)
  • Updated the font selection algorithm to match latest CSS specifications (r221630)

CSS Grid

  • Fixed grid shorthand to not reset the gutter properties (r221668)
  • Changed stretching auto tracks to be done as part of the track sizing algorithm (r221931)
  • Changed to use transferred size over content size for automatic minimum size (r221910)

Web Inspector

  • Fixed an issue that caused toolbar buttons to be hidden at narrow widths (r221338)
  • Prevented the split console in the Settings tab (r221882)
  • Use the same Timeline icon in the dashboard and Timeline tab (r221861)
  • Increased the maximum width allowed for sidebars (r221713)
  • Fixed an issue that prevented ⌘E and ⌘G from working in the main content area when quick console drawer is open (r221691)


  • Prevented increasing the reported totalFrameDelay for non-displayed frames, or frames coming in while paused (r221937)
  • Fixed MSE-to-Canvas painting that can become “stuck” during heavy workloads (r221430)


  • Implemented the HTMLImageElement.async attribute (r221803)
  • Implemented HTMLImageElement.decode() method (r221805)
  • Fixed respecting the SVG fragment identifier if it is a part of an HTTP URL (r221377)
  • Enabled previous elements with lang= to affect fonts selected for subsequent elements (r221408)


  • Implemented getActiveUniforms() for WebGL 2 (r221667)
  • Accelerated texImage2D for video doesn’t respect flipY (r221932)
  • Fixed VideoTextureCopierCV to correctly restore vertex attribute state (r221933)