Kevin Smith wrote:

    The other point people seem to miss about import as a special
    binding form is not just that it can be restricted grammatically
    to be control-insensitive by construction: it's that static export
    vs. import checking can be done to catch typos.


As long as the exported names are static, it's possible to catch typos using Isaac's form as well though, right?

Not as I understood Isaac's proposal:

|---|

// x.js
export { real: 'x' }

|---

// y.js
var x = import './x.js'

obscured_call(x)

assert.same(x.real, 'x')

x.typo // undefined, not an early error

---
|

obscured_call could have deleted the 'real' property, and added (or not) 'typo'. There is no way in general to statically check property references in JS. Static analysis is by definition approximate and while we have some hot analyses in SpiderMonkey and (to be brought back up soon) DoctorJS, they are way too much to mandate in the standard.

/be
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to