emscripten-core/emscripten 20780
Emscripten: An LLVM-to-WebAssembly Compiler
acornjs/acorn 7342
A small, fast, JavaScript-based JavaScript parser
fkling/astexplorer 3951
A web tool to explore the ASTs generated by various parsers.
inikulin/parse5 2666
HTML parsing/serialization toolset for Node.js. WHATWG HTML Living Standard (aka HTML5)-compliant.
Emscripten SDK
Alternative, faster React.js JSX parser
binast/binjs-ref 400
Reference implementation for the JavaScript Binary AST format
dherman/esprit 291
A JavaScript parser written in Rust
GoogleChromeLabs/wasm-feature-detect 221
A small library to detect which features of WebAssembly are supported.
cloudflare/serde-wasm-bindgen 192
Native integration of Serde with wasm-bindgen
startedsantiontanon/microrts
started time in 2 hours
PR opened eqrion/cbindgen
Incorporate https://github.com/alexcrichton/proc-macro2/pull/220 to fix the case where a binary which is built with panic = "abort" aborts when calling into cbindgen functionality.
Addresses https://github.com/eqrion/cbindgen/issues/569.
While there is a test included that covers both additions I haven't made any changes to documentation. If there is desire to have these changes land in some form I'd just be looking for guidance on what doc changes would be appropriate, if any, in addition to any feedback on the overall direction of this change. Thanks!
pr created time in 2 hours
startedxandjiji/exevo-pan
started time in 12 hours
push eventeqrion/cbindgen
commit sha 63c1043dfb92fcac0bf3073c2d71e9e4ac69c943
Simplify Pin<T> to T cbindgen already simplifies `MaybeUninit<T>` and `ManuallyDrop<T>` to `T`. This adds `Pin<T>` as well.
push time in 12 hours
PR merged eqrion/cbindgen
cbindgen already simplifies MaybeUninit<T> and ManuallyDrop<T> to T. This adds Pin<T> as well.
pr closed time in 12 hours
pull request commenteqrion/cbindgen
This is another one-liner, but this time treating Pin<T> the same way as MaybeUninit<T> and ManuallyDrop<T>, and with a new test.
Given this source:
#[repr(C)]
struct PinTest {
pinned_box: Pin<Box<i32>>,
pinned_ref: Pin<&mut i32>
}
#[no_mangle]
pub extern "C" fn root(s: Pin<&mut i32>, p: PinTest) {}
the binding created is:
typedef struct {
int32_t *pinned_box;
int32_t *pinned_ref;
} PinTest;
void root(int32_t *s, PinTest p);
comment created time in 15 hours
PR opened eqrion/cbindgen
cbindgen already simplifies MaybeUninit<T> and ManuallyDrop<T> to T. This adds Pin<T> as well.
pr created time in 15 hours
startedartichoke/cactusref
started time in 17 hours
startedsveltejs/kit
started time in 20 hours
push eventeqrion/cbindgen
commit sha ccd1f0e9ec2369735b9481c85057b9c65b6b0908
add `Builder::with_using_namespaces`
commit sha 9774cfeac9594041bebda431614cb91dfe0782e2
Fix some clippy lints.
push time in a day
push eventeqrion/cbindgen
commit sha ccd1f0e9ec2369735b9481c85057b9c65b6b0908
add `Builder::with_using_namespaces`
push time in a day
pull request commenteqrion/cbindgen
add `Builder::with_using_namespaces`
There are some CI failures but they're unrelated to your patch (clippy version update looks like). So will merge as-is and address the clippy things separately.
comment created time in a day
startedWebReflection/uce-helpers
started time in a day
created repositoryWebReflection/uce-helpers
Common helpers for uce related projects.
created time in a day
pull request commenteqrion/cbindgen
Thanks! rustfmt was complaining so I merged your change manually with the formatting fix.
comment created time in a day
push eventeqrion/cbindgen
commit sha 4e394493d63c2348a08d486562dc2082cbdfe306
Ignore PhantomPinned cbindgen already ignores `PhantomData`. It should ignore `PhantomPinned` for the same reasons. Closes #695 Fixes #694
push time in a day
issue closedeqrion/cbindgen
PhantomPinned should be ignored just like PhantomData<T>
cbindgen already ignores any item of type PhantomData. It should also ignore anything that's PhantomPinned for the same reason.
This looks like it's just as simple as adding a one-liner in src/bindgen/ir/ty.rs at line 401 extending the predicate to include PhantomPinned. Or, at least, that worked for me. But perhaps it also should be added to some tests?
closed time in a day
kkoningPR closed eqrion/cbindgen
cbindgen already ignores PhantomData. It should ignore PhantomPinned for the same reasons.
pr closed time in a day
startedvwxyzjn/gym-microrts
started time in a day
PR opened eqrion/cbindgen
cbindgen already ignores PhantomData. It should ignore PhantomPinned for the same reasons.
pr created time in a day
Pull request review commentestree/estree
+# [Pattern Matching](proposal-pattern-matching)++See also [AST examples](ast-examples) for this proposal.++## MatchExpression++```js+interface MatchExpression <: Expression {+ type: "MatchExpression";+ discriminant: Expression;+ id: Pattern | null;+ clause: [ MatchClause ]+}+```++## WhenClause+```js+interface MatchClause <: Node {+ type: "MatchClause";+ test: MatchPattern | null;+ guard: Expression | null;+ id: Pattern | null;+ consequent: BlockStatement+}+```++If `test` is `null`, `id` must be `null`.++## MatchPattern+```js+interface MatchPattern <: Node {}+```++## ArrayMatchPattern+```js+interface ArrayMatchPattern <: MatchPattern {+ type: "ArrayMatchPattern";+ elements: [ MatchPattern ];+}+```++## ObjectMatchPattern+```js+interface AssignmentMatchProperty <: Property {+ type: "Property"; // inherited+ value: MatchPattern;+ kind: "init";+ method: false;+}++interface ObjectMatchPattern <: MatchPattern {+ type: "ObjectMatchPattern";+ properties: [ AssignmentMatchProperty ];+}+```++## RestMatchElement+```js+interface RestMatchElement <: MatchPattern {+ type: "RestMatchElement";+ argument: MatchPattern;+}+```++## BinaryMatchPattern+```js+interface BinaryMatchPattern <: MatchPattern {+ type: "BinaryPattern";+ operator: "and" | "or" | "with";+ left: MatchPattern;+ right: MatchPattern;+}+```++## AsMatchPattern+```js+interface AsMatchPattern <: MatchPattern {+ type: "AsMatchPattern";+ test: MatchPattern;+ id: Pattern;+}+```++## ExpressionMatchPattern+```js+interface ExpressionMatchPattern <: MatchPattern {+ type: "ExpressionMatchPattern";+ expression: Expression;+}+```
Yes; any expression can be in parens, but only a specific limited set of forms can omit them.
comment created time in a day
issue commenteqrion/cbindgen
PhantomPinned should be ignored just like PhantomData<T>
Yeah, that seems fine. I'd totally take that one-liner with at least a test tweaked (there aren't that many test that use PhantomData so just tweaking them to also use PhantomPinned seems good enough).
Thanks!
comment created time in a day
issue openedeqrion/cbindgen
PhantomPinned should be ignored just like PhantomData<T>
cbindgen already ignores any item of type PhantomData. It should also ignore anything that's PhantomPinned for the same reason.
This looks like it's just as simple as adding a one-liner in src/bindgen/ir/ty.rs at line 401 extending the predicate to include PhantomPinned. Or, at least, that worked for me. But perhaps it also should be added to some tests?
created time in a day
Pull request review commentestree/estree
+# [Pattern Matching](proposal-pattern-matching)++See also [AST examples](ast-examples) for this proposal.++## MatchExpression++```js+interface MatchExpression <: Expression {+ type: "MatchExpression";+ discriminant: Expression;+ id: Pattern | null;+ clause: [ MatchClause ]+}+```++## WhenClause+```js+interface MatchClause <: Node {+ type: "MatchClause";+ test: MatchPattern | null;+ guard: Expression | null;+ id: Pattern | null;+ consequent: BlockStatement+}+```++If `test` is `null`, `id` must be `null`.++## MatchPattern+```js+interface MatchPattern <: Node {}+```++## ArrayMatchPattern+```js+interface ArrayMatchPattern <: MatchPattern {+ type: "ArrayMatchPattern";+ elements: [ MatchPattern ];+}+```++## ObjectMatchPattern+```js+interface AssignmentMatchProperty <: Property {+ type: "Property"; // inherited+ value: MatchPattern;+ kind: "init";+ method: false;+}++interface ObjectMatchPattern <: MatchPattern {+ type: "ObjectMatchPattern";+ properties: [ AssignmentMatchProperty ];+}+```++## RestMatchElement+```js+interface RestMatchElement <: MatchPattern {+ type: "RestMatchElement";+ argument: MatchPattern;+}+```++## BinaryMatchPattern+```js+interface BinaryMatchPattern <: MatchPattern {+ type: "BinaryPattern";+ operator: "and" | "or" | "with";+ left: MatchPattern;+ right: MatchPattern;+}+```++## AsMatchPattern+```js+interface AsMatchPattern <: MatchPattern {+ type: "AsMatchPattern";+ test: MatchPattern;+ id: Pattern;+}+```++## ExpressionMatchPattern+```js+interface ExpressionMatchPattern <: MatchPattern {+ type: "ExpressionMatchPattern";+ expression: Expression;+}+```
does it matter if there are parentheses or not?
comment created time in a day