Categorized the tests! I haven’t filed the issues yet, but it boils down to roughly two large groups:
“Promise is not defined”: While the test messages are saying promise is not defined, these tests are in fact related to body. Body has a few methods that return Promise.
“xxxxdict is not iterable”: OpenEndedDictionary needs to be implemented. What Nick said about this: “OpenEndedDictionary isn’t supported in HeadersInit, bindings glue tries to convert the object into something that is supported in HeadersInit. The object is not a Headers object, so that doesn’t work. Then the glue code tries to treat it as a Sequence. However, it is not an iterable sequence, so it throws the error you’re seeing.”
There are a few notes:
Each API has a -idl.html test file that are currently timing out. I’m not exactly sure what they do, but it looks like once webidls are fully implemented, these tests will pass.
Some subtests related to stream like readableStreamfail. I’m not sure if stream is something we can implement or is already implemented. Will have to ask someone knows more about this.
Response is currently throwing an error about network error code. Malisa will be working on this!
Response
PR is finally ready to be merged (or so we thought), but Jeena discovered a test which is failing which should be passing, so I’m fixing that up.
Body
Tried to understand how/where I should be implementing Body. Decided to start with writing body’s extract method.
Things we learned:
In JavaScript there is a distinction between for ... of loops and for ... in loops. E.g.
In Python, for x in foo is the same as in JS, for (x of foo). In this case, x is the object you ultimately want to view or manipulate.
In Python, for x in foo.keys() is the same as in JS, for (x in foo). In this case, x is the key to the dictionary you might what to iterate over.
TODO:
Response
Figure out how to encode StatusCode 0 as an Enum, which is not supported currently.
Body
Start implementing extract as well as I can w/o ReadableStream