@@ -15,21 +15,19 @@ import './types.js';
15
15
import './helpers/internal-types.js' ;
16
16
import { assertPassableSymbol } from './helpers/symbol.js' ;
17
17
18
+ /** @typedef {Exclude<PassStyle, PrimitiveStyle | "promise"> } HelperPassStyle */
19
+
18
20
const { details : X , quote : q } = assert ;
19
21
const { ownKeys } = Reflect ;
20
22
const { isFrozen } = Object ;
21
23
22
24
/**
23
- * @param {PassStyleHelper[] } passStyleHelpers The passStyleHelpers to register,
24
- * in priority order.
25
- * NOTE These must all be "trusted",
26
- * complete, and non-colliding. `makePassStyleOf` may *assume* that each helper
27
- * does what it is supposed to do. `makePassStyleOf` is not trying to defend
28
- * itself against malicious helpers, though it does defend against some
29
- * accidents.
30
- * @returns {PassStyleOf }
25
+ * @param {PassStyleHelper[] } passStyleHelpers
26
+ * @returns {Record<HelperPassStyle, PassStyleHelper> }
31
27
*/
32
- const makePassStyleOf = passStyleHelpers => {
28
+
29
+ const makeHelperTable = passStyleHelpers => {
30
+ /** @type {Record<HelperPassStyle, any> & {__proto__: null} } */
33
31
const HelperTable = {
34
32
__proto__ : null ,
35
33
copyArray : undefined ,
@@ -54,7 +52,22 @@ const makePassStyleOf = passStyleHelpers => {
54
52
X `missing helper for ${ q ( styleName ) } ` ,
55
53
) ;
56
54
}
57
- harden ( HelperTable ) ;
55
+
56
+ return harden ( HelperTable ) ;
57
+ } ;
58
+
59
+ /**
60
+ * @param {PassStyleHelper[] } passStyleHelpers The passStyleHelpers to register,
61
+ * in priority order.
62
+ * NOTE These must all be "trusted",
63
+ * complete, and non-colliding. `makePassStyleOf` may *assume* that each helper
64
+ * does what it is supposed to do. `makePassStyleOf` is not trying to defend
65
+ * itself against malicious helpers, though it does defend against some
66
+ * accidents.
67
+ * @returns {PassStyleOf }
68
+ */
69
+ const makePassStyleOf = passStyleHelpers => {
70
+ const HelperTable = makeHelperTable ( passStyleHelpers ) ;
58
71
const remotableHelper = HelperTable . remotable ;
59
72
60
73
/**
0 commit comments