es7-membrane: A new ECMAScript 2016 Membrane implementation

# Alex Vincent (8 years ago)

I have a new ECMAScript membrane implementation, which I will maintain and use in a professional capacity, and which I’m looking for lots of help with in the form of code reviews and API design advice.

I wrote a lengthier post on my weblog, with more details of what I hope to get out of it. From this group, I'm hoping to get some API design advice, and suggestions on how to make it even more ECMAScript-friendly and follow the rules of ES6 modules.

Side note, specifically for this group: After reading Dr. Rauschmeyer's chapter on ES6 modules, I tried writing the following:

try {
  import ...
}
catch (e) {
  // do something else
}

But that resulted in a syntax error for import not being the first line of the script. I really wonder why it's illegal to wrap the import statement in a try block...

Thank you for both your time and your good work on the ES6 specification and implementations!

# Calvin Metcalf (8 years ago)

looks like you missed the part of the chapter that convered this :)

exploringjs.com/es6/ch_modules.html#_imports-and-exports-must-be-at-the-top-level

but the tl;dr is imports are statically resolved before runtime and so must be at the top level outside of any sort of block or function. In other words if there is an error when it comes to importing something the code won't run so a try catch is unneeded.

# /#!/JoePea (8 years ago)

Sidenote: Ben Newman's Reify implements experimental deferred (non-top-level) imports in which case you can wrap imports in a try-catch. It's been really nice in practice (I've been taking advantage of it in Meteor, which uses Reify).

# Rick Waldron (8 years ago)

More importantly, Ben Newman is championing a proposal for nested imports: tc39/ecma262#646

# Alex Vincent (8 years ago)

A follow-up to my earlier posts: es7-membrane has reached version 0.7, which features a practical whitelist capability, multiple object graphs, and support for ES6 symbols as the "names" of object graphs.

I'd still like to find some volunteer contributors. Also, a colleague on the SES task force suggested the es7-membrane project's tests might be ported to make a good integration test for test-262 (as opposed to unit tests)...

alexvincent.us/blog/?p=922, ajvincent/es7