Comments (5)
The best polyfill I've found is https://github.com/MadProbe/iterator-helpers-polyfill
It's a bit out-of-date in the async side (see issue 15), but hopefully good enough for your purposes...
I'm not sure we want to redefine [...asyncThing]
(though I see Array.fromAsync
is backward-compatible in the sense that it supports regular iterators), but perhaps new notation like [...*asyncThing]
could trigger this? Ideally we could also support [a, ...*b, ...c, ...*d]
via something like [a, ...Array.fromAsync(b), ...c, ...Array.fromAsync(d)]
(unless we can think up a more efficient compilation).
from civet.
Array::concat
can handle multiple arguments, and is way faster than multiple spreads: JSBenchmark .concat is about 5x faster for me (Firefox on Windows). So, the compilation would be [a].concat(Array.fromAsync(b), c, Array.fromAsync(d))
.
from civet.
I wouldn't be against it, but aren't polyfills generally outside the scope of Civet?
from civet.
I agree that it seems out of the scope, given that this proposal seems to be a standard-library feature instead of a language feature. (Let me know if I misread.) So it seems you that you can just include an existing JS polyfill, and it'll work great with Civet.
from civet.
given that this proposal seems to be a standard-library feature instead of a language feature. So it seems you that you can just include an existing JS polyfill
Ah of course, makes sense. Do you happen to know of a good one?
I did wonder if Civet could possibly have some kind of [...asyncThing]
sugar for Array.fromAsync
…
from civet.
Related Issues (20)
- Optional `@?x` fails to parse HOT 5
- `<?` without whitespace compiles without the whitespace
- Slice operator doesn't handle operators with lower precedence than `+` properly
- CLI execute flag
- ternary requires space HOT 4
- `%/=` and `÷=` does not work
- can't use comma operator when indexing HOT 6
- Fat pipe (`||>`) does not play nice with typescript-eslint v8 HOT 2
- expressions in the middle of a comparison chain are evaluated twice HOT 1
- `‖=` does not work
- `!=` not supported in chained comparison
- multi assignment expressions are evaluated twice HOT 1
- CLI doesn't work globally
- sometimes space is required for lambda
- Object union type is misparsed HOT 2
- Postfix conditional with nested `(and)`/`(or)` conditions seems like it ought to work HOT 2
- Cannot read properties of undefined (reading '3')
- Debugging in VS Code HOT 4
- Non-identifier operators HOT 2
- Postfix `if`/`unless` in types
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from civet.