There is also the issue that implementing things like method_missing and import are prohibitively difficult without new syntax.
Objective-J's code importer is one of the more complex pieces (as it manages to do so completely asynchronously).
All the approaches that use a simple JavaScript function to grab code, like grab_and_eval("file.js") are forced to happen synchronously (since you have to guarantee that the code is evaled before the next line). Without some sort of lexing support, its really not possible to both grab files asynchronously and also be able to continue executing.
Also, as stated in the article, you can't intercept JavaScript method calls, so if you want something like method missing you're forced to do something like:
Objective-J's code importer is one of the more complex pieces (as it manages to do so completely asynchronously). All the approaches that use a simple JavaScript function to grab code, like grab_and_eval("file.js") are forced to happen synchronously (since you have to guarantee that the code is evaled before the next line). Without some sort of lexing support, its really not possible to both grab files asynchronously and also be able to continue executing.
Also, as stated in the article, you can't intercept JavaScript method calls, so if you want something like method missing you're forced to do something like:
call_method_or_send_method_missing(object, "method_name")
And again, since Objective-J is a proper superset of JavaScript, it doesn't lose any of its powerful features.