The WebKit Open Source Project

JavaScript

Overview

This is the project page for WebKit's JavaScript implementation. JavaScript is the primary programming language used on web pages. Originally named LiveScript and now also known as ECMAScript, it's a safe, dynamic language that's arguably one of the most well-known programming languages in the world. There's a JavaScript standard, created by ECMA. WebKit's JavaScript engine, JavaScriptCore, based on KJS, is a framework separate from WebCore and WebKit, and is used on OS X for applications other than web page JavaScript.

Get Involved!

View bugs in the JavaScriptCore component in Bugzilla.

Here are some of the tasks that you can get involved with in JavaScript.

Generational Garbage Collector
The garbage collector in JavaScriptCore has been improved quite a bit from the earliest versions. But much greater efficiency can be achieved with a garbage collector that uses a generational algorithm, so we don't have to mark all the objects every time we garbage collect. This should make JavaScript run significantly faster.
Mozilla JavaScript Test Suite
JavaScriptCore has an implementation of the Mozilla JavaScript Test Suite, and there are currently many failures. Fixing any of those failures would help our JavaScript engine be more compliant with the specification, and more compatible with real-world web sites as well.
Language Extensions
The Mozilla project has begun adding some extensions to JavaScript. Someone needs to evaluate these and decide which of them we should implement. We should also consider extensions of our own driven by demand in contexts like Dashboard widgets.
Objective-C Language Binding
JavaScriptCore currently provides a low-level C API, however using JavaScriptCore in an Objective-C application is somewhat involved. We'd like to add a high-level Objective-C API.