---
title: "Version 0.52.0 release notes | Grafana k6 documentation"
description: "The release notes for Grafana k6 version 0.52.0"
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# Version 0.52.0 release notes

k6 `v0.52.0` is here 🎉! Some special mentions included in this release:

- [We’ve switched to our own fork of `goja` named `sobek`](#switch-goja-to-our-own-fork-named-sobek-3775).
- [Panics are no longer captured](#panics-are-no-longer-being-captured-3777).
- [We’ve added experimental support for TypeScript and ES6+](#experimental-support-for-typescript-and-es6-using-esbuild-3738).
- `k6/browser` has [graduated from an experimental module](#k6browser-has-graduated-from-an-experimental-module-3793), and now has a [fully Async API](#k6browser-has-now-a-fully-async-api-browser428).

## Breaking changes

### Switch `goja` to our own fork named `sobek` [#3775](https://github.com/grafana/k6/pull/3775)

To accelerate the development speed and bring ECMAScript Modules (ESM) support to k6 earlier ([https://github.com/grafana/k6/issues/3265)](https://github.com/grafana/k6/issues/3265%29), we have decided to create a fork of the [`goja`](https://github.com/dop251/goja/) project under the Grafana GitHub organization, named [`sobek`](https://github.com/grafana/sobek).

Starting on this release, k6 (and its extensions) now use `sobek` instead of the original `goja`, for all (of the publicly exposed parts of the API) except for a couple of packages that are only used internally by k6.

All k6 extensions linked in the docs have had a PR for this transition opened, as explained in this [comment](https://github.com/grafana/k6/issues/3773#issuecomment-2182113677). Any extension author who hasn’t gotten a PR can follow the same steps.

Find further details in [#3772](https://github.com/grafana/k6/issues/3772) and [#3773](https://github.com/grafana/k6/issues/3773).

### Panics are no longer being captured [#3777](https://github.com/grafana/k6/pull/3777)

Since this release, Go panics are no longer being captured by k6. This means that if a panic occurs while running a test, the k6 process will crash, and the panic stack trace will be printed to the console.

We decided to change this behavior because it’s something that was left from the past as a safeguard, but it’s not as good as it might seem. For most cases with multiple goroutines/async, it’s not enough and also makes a bunch of potential bugs seem like less of an issue.

Thus, this will help us to identify and fix bugs earlier, improve the overall stability of k6, and most likely make the experience of developing k6 extensions friendlier.

### `lib.State` no longer has `Group` [#3750](https://github.com/grafana/k6/pull/3750)

As the result of refactoring the implementation of `group` and `check` methods, in order to decouple them, and thus enable other future improvements, the `lib.State` object no longer has a `Group` field.

This change should not affect most users, except for a couple of extensions, for which the use of `Group` was already questionable:

- `xk6-fasthttp`
- `xk6-g0`

### Other breaking changes

- [#3797](https://github.com/grafana/k6/pull/3797) starts using `-` as a special value for `--archive-out` to output the archive to stdout.
- [browser#1318](https://github.com/grafana/xk6-browser/pull/1318) makes the `Mouse.up` and `Mouse.down` methods no longer take x and y coordinates. Instead, they dispatch events on the current mouse position.

## New features

### Experimental support for TypeScript and ES6+ using esbuild [#3738](https://github.com/grafana/k6/pull/3738)

This release of k6 introduces experimental support for TypeScript and ES6+ using esbuild, thanks to a new [compatibility mode](/docs/k6/latest/using-k6/javascript-typescript-compatibility-mode/) named `experimental_enhanced`.

sh ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```sh
k6 run --compatibility-mode=experimental_enhanced script.js
```

With this new compatibility mode, the test source code is transformed using esbuild instead of Babel, which also means that source files with the extension *".ts"* are loaded by esbuild’s TypeScript loader, which results in partial TypeScript support: it removes the type information but doesn’t provide type safety.

### `k6/browser` has graduated from an experimental module [#3793](https://github.com/grafana/k6/pull/3793)

The browser module is now available as `k6/browser` instead of `k6/experimental/browser`. The previous `k6/experimental/browser` module will be removed on September 23rd, 2024. Refer to [the migration guide](/docs/k6/latest/using-k6-browser/migrating-to-k6-v0-52/) for more information on how to update your scripts.

### `k6/browser` has now a fully Async API [browser#428](https://github.com/grafana/xk6-browser/issues/428)

This release introduces a fully Async API for the `k6/browser` module. This means that nearly all the methods in the module now return promises. This change is part of the ongoing effort to make the browser module more user-friendly and easier to use. Please see [the browser documentation](/docs/k6/latest/javascript-api/k6-browser/) for more information on how to use the new Async API.

Related Changes:

- [browser#1310](https://github.com/grafana/xk6-browser/pull/1310), [browser#1311](https://github.com/grafana/xk6-browser/pull/1311), [browser#1312](https://github.com/grafana/xk6-browser/pull/1312), [browser#1316](https://github.com/grafana/xk6-browser/pull/1316), [browser#1328](https://github.com/grafana/xk6-browser/pull/1328), [browser#1337](https://github.com/grafana/xk6-browser/pull/1337), [browser#1367](https://github.com/grafana/xk6-browser/pull/1367), [browser#1366](https://github.com/grafana/xk6-browser/pull/1366), [browser#1314](https://github.com/grafana/xk6-browser/pull/1314), [browser#1332](https://github.com/grafana/xk6-browser/pull/1332), [browser#1323](https://github.com/grafana/xk6-browser/pull/1323), [browser#1355](https://github.com/grafana/xk6-browser/pull/1355), [browser#1348](https://github.com/grafana/xk6-browser/pull/1348), [browser#1364](https://github.com/grafana/xk6-browser/pull/1364) Migrates `Browser`, `BrowserContext`, `ElementHandle`, `Frame`, `JSHandle`, `Keyboard`, `Locator`, `Mouse`, `Page`, `Request`, `Response` APIs to async.

* * *

For a full list of changes, including UX improvements and bug fixes, refer to [full release notes](https://github.com/grafana/k6/blob/master/release%20notes/v0.52.0.md).
