14:50 | <annevk> | Domenic: hey, you could make the ARIA thing right? I could join an hour in, potentially |
15:22 | <Domenic> | annevk: I'm not sure it's really a good use of time... |
15:24 | <annevk> | Yeah... And they didn't reply to our comments about that either ☹️ |
17:50 | <DerekNonGeneric> |
w/o having read the whole Web IDL spec to find out why does anyone know what the reason for this is? also, would be curious to know if the new IDL Object that we just released ( |
17:52 | <Domenic> | DerekNonGeneric: an implementation needs to be able to recognize platform objects so that it can properly implement the "is a platform object" checks in the Web IDL spec and elsewhere. |
17:53 | <Domenic> | I suspect that DOMException should be considered as such in Node.js, e.g. for structuredClone(). |
17:55 | <DerekNonGeneric> | yeah, so we will likely need to write up something like isPlatformObject() , but whether or not we should expose it is another story |
19:13 | <Andreu Botella (he/they)> | I'm not sure how Node does things, but I've been looking into implementing serializable platform objects in Deno, and V8 requires you to have at least one internal field before it lets you define a custom serialization. |
19:13 | <Andreu Botella (he/they)> | FTR |
19:26 | <DerekNonGeneric> | Andreu Botella (he/they): tbh, i was not the one who originally contributed that error so it's hard for me to know what alternatives were considered to shipping that, but think that we needed to work around the problem we had w/ the AbortController error (AbortError ) not existing.. |
19:27 | <DerekNonGeneric> | When |
19:31 | <DerekNonGeneric> | still a bit surprised about what we shipped for structuredClone() and am not sure how more people didn't asked more questions about that lol |
19:34 | <DerekNonGeneric> | we will probably need to use isPlatformObject() to detect whether the deserialized object we are outputting is all correct when implementing the next iteration (hopefully standardized) version of structuredClone() if the discuss i was reading made any sense https://github.com/tc39/ecma262/issues/2555 |
19:39 | <DerekNonGeneric> | I'm not sure how Node does things, but I've been looking into implementing serializable platform objects in Deno, and V8 requires you to have at least one internal field before it lets you define a custom serialization. |
19:40 | <Andreu Botella (he/they)> | The thing with V8's implementation of structured clone is that the delegate methods that let you override (de)serialization are only called for objects with internal slots |
19:40 | <Andreu Botella (he/they)> | so effectively V8 already implements its own kind of platform object determination |
19:40 | <Andreu Botella (he/they)> | see this bug Luca Casonato filed: https://bugs.chromium.org/p/v8/issues/detail?id=11927 |
19:48 | <DerekNonGeneric> | ooh, nice, you are sort of making the case for adding more of these in that issue, but definitely going to be having users running code in some kind of hybrid franken-environment |
22:01 | <DerekNonGeneric> | Andreu Botella (he/they), Luca Casonato : not too familiar w/ the problem you all are facing, but maybe we can leverage isV8IntrinsicIdentifier to at least ensure that those bases are covered and then gradually append the Web IDL type identifiers as we make use of https://babeljs.io/docs/en/babel-types#v8intrinsicidentifier |
22:19 | <DerekNonGeneric> | so, it might just be a union of the identifiers supplied by that predicate and then some other predicate that includes these identifiers listed in Web IDL (?) https://webidl.spec.whatwg.org/#idl-types |
22:41 | <DerekNonGeneric> | we might still be missing guidance from standards about what should be censored from the objects passed to structuredClone , but this would somewhat be like having to roll your own and at least for JS-types, the algorithm should probably parseV8Intrinsic https://github.com/babel/babel/blob/HEAD/packages/babel-parser/src/plugins/v8intrinsic.js#L7 |
23:08 | <DerekNonGeneric> | anyways, isPlatformObject would probably be a strange name for such a predicate from the perspective of Node.js developers.. i wonder if a more appropriate name would be isWebPlatformObject so that we can distinguish btwx web standards and the objects that are unique to our platform (things like process and require() ), which were in-house back-end developments |