Skip to content
zpao edited this page Apr 1, 2011 · 1 revision

A lot of things are in flight right now, so if you want to pick something up, get in touch just to make sure somebody isn't already working on it.

That said, there are a few "easy" ways to pick something up.

Issues

Obviously there are going to be a lot of things that don't work. We haven't filed issues for everything, but we've been adding failing tasks and APIs that we know are broken to the list. Some of these are much more involved than they look at first glance so proceed with caution (and enthusiasm!)

Stub out APIs

When we started this project, we planned to stub out all of the V8 APIs, then work on implementing them. We got a bunch of that done, but quickly fell off the wagon. "That API shouldn't be hard to implement" was really easy to say.

So there are still a lot of V8 APIs that we haven't stubbed out at all. This is a task that shouldn't be too difficult, but can get a bit boring. You're a champ if you do it!

If you pick this task up, we've (mostly) been writing a quick impl in the header using a macro UNIMPLEMENTEDAPI to output a message when it gets called. This makes it really easy to scan the header and work on the next task...

Implement APIs

This is going to be more difficult, but it's the end goal of this project. There's not much to say about it besides find something to work on check to make sure somebody isn't already doing it.

Tests

Automagic Importing of V8's API Tests

Perhaps the "canonical" test is test_api.cpp, which is based on test-api.cc (from V8's source). We're working under the assumption that this as complete a test of the V8 API as we'll find. Recently we stubbed out all of the tests from that file, but since they don't all compile, we haven't just copy/pasted wholesale. The test also uses a bunch of stuff from V8 that we don't want to use.

One project we've been working on is to automagically import the test from the V8 file into our test file. This way we have a process we can mostly automate with to keep up to date with V8. We've discussed this and we'll likely want some sort of blacklist since not all tests will be easily transferred.

Writing Tests

Since it seems like some APIs are not well covered by V8's tests, we've also been writing some of our own. Take a look in the js/src/v8api/test directory for some of those.

Domain Knowledge

None of the people working on this project are experts on V8 or Spidermonkey. Some of us are more experienced than others, but we're all learning. And with learning comes a lot of questions. So if you're interested in answering questions about the V8 API or Spidermonkey, then please do. Hop in #spidernode on irc.mozilla.org and just hang out. It likely won't be long before somebody asks a question.