Dynamic import declarations and expressions #1130
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #727:
import { getX } from library
→const { getX } = await import('library')
if not at the top levelimport lib, {getX} from library
→const lib = await import('library'), {getX} = lib
if not at the top levelstuff := import { getX, getY } from library
→const stuff = (await import('library')).{getX, getY}
This complements existing functionality of
stuff := import 'library'
→stuff := import('library')
. Note thatstuff := import library
has a different meaning than above (use the variablelibrary
instead of the string).I haven't implementedImport assertions viaassert
/with
yet. I probably should...assert
/with
should work now.Also fixes a bug where
{x: y} := obj
got implicitly returned as{x}
, but it should be{y}
(!).