Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
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.
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...
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.
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.
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.
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
irc.mozilla.org and just hang out. It likely won't be long before somebody asks a question.