Using function types with receivers as parameter types of JavaScript external declarations is no longer allowed. Previously, lambdas passed to such parameters weren’t invoked with correct arguments, and there’s no easy workaround for this issue, so for now the functionality has been disabled.

Furthermore, the Kotlin Eclipse and NetBeans plugins have been updated to include Kotlin 1.1.1, so users can enjoy the benefits of the new Kotlin version regardless of their IDE choice.

Enabling the use of Kotlin in many new scenarios

JetBrains’ Roman Belov said in the blog post announcing the release that Kotlin 1.1 is “a big step forward enabling the use of Kotlin in many new scenarios.” The most important changes are the JavaScript target — which is no longer experimental— and the support for coroutines.

Kotlin 1.1 includes type aliases, bound callable references, destructuring in lambdas and more. One of the most important highlights is the fact that the JavaScript target is no longer considered experimental. This means that 1.1 supports all language features, a large part of the standard library and JavaScript interoperability. This change allows users to migrate the browser frontend of their applications to Kotlin while continuing to use modern JavaScript development frameworks such as React.

However, the star of this release is the support for coroutines — coroutines bring the support of async/await, yield and similar programming patterns. The best part is that the implementation of coroutine execution is part of the libraries, not the language, which means users aren’t bound to any specific programming paradigm or concurrency library.