solid-js 1.6.1 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dev.cjs CHANGED
@@ -335,7 +335,7 @@ function createResource(pSource, pFetcher, pOptions) {
335
335
  refetching
336
336
  }));
337
337
  if (typeof p !== "object" || !(p && "then" in p)) {
338
- loadEnd(pr, p);
338
+ loadEnd(pr, p, undefined, lookup);
339
339
  return p;
340
340
  }
341
341
  pr = p;
@@ -345,7 +345,7 @@ function createResource(pSource, pFetcher, pOptions) {
345
345
  setState(resolved ? "refreshing" : "pending");
346
346
  trigger();
347
347
  }, false);
348
- return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e)));
348
+ return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e), lookup));
349
349
  }
350
350
  Object.defineProperties(read, {
351
351
  state: {
@@ -419,12 +419,13 @@ function batch(fn) {
419
419
  return runUpdates(fn, false);
420
420
  }
421
421
  function untrack(fn) {
422
- let result,
423
- listener = Listener;
422
+ const listener = Listener;
424
423
  Listener = null;
425
- result = fn();
426
- Listener = listener;
427
- return result;
424
+ try {
425
+ return fn();
426
+ } finally {
427
+ Listener = listener;
428
+ }
428
429
  }
429
430
  function on(deps, fn, options) {
430
431
  const isArray = Array.isArray(deps);
@@ -578,7 +579,9 @@ function useContext(context) {
578
579
  }
579
580
  function children(fn) {
580
581
  const children = createMemo(fn);
581
- const memo = createMemo(() => resolveChildren(children()));
582
+ const memo = createMemo(() => resolveChildren(children()), undefined, {
583
+ name: "children"
584
+ }) ;
582
585
  memo.toArray = () => {
583
586
  const c = memo();
584
587
  return Array.isArray(c) ? c : c != null ? [c] : [];
@@ -1142,7 +1145,9 @@ function mapArray(list, mapFn, options = {}) {
1142
1145
  function mapper(disposer) {
1143
1146
  disposers[j] = disposer;
1144
1147
  if (indexes) {
1145
- const [s, set] = createSignal(j);
1148
+ const [s, set] = createSignal(j, {
1149
+ name: "index"
1150
+ }) ;
1146
1151
  indexes[j] = set;
1147
1152
  return mapFn(newItems[j], s);
1148
1153
  }
@@ -1204,7 +1209,9 @@ function indexArray(list, mapFn, options = {}) {
1204
1209
  });
1205
1210
  function mapper(disposer) {
1206
1211
  disposers[i] = disposer;
1207
- const [s, set] = createSignal(newItems[i]);
1212
+ const [s, set] = createSignal(newItems[i], {
1213
+ name: "value"
1214
+ }) ;
1208
1215
  signals[i] = set;
1209
1216
  return mapFn(s, i);
1210
1217
  }
@@ -1256,7 +1263,7 @@ const propTraps = {
1256
1263
  }
1257
1264
  };
1258
1265
  function resolveSource(s) {
1259
- return (s = typeof s === "function" ? s() : s) == null ? {} : s;
1266
+ return !(s = typeof s === "function" ? s() : s) ? {} : s;
1260
1267
  }
1261
1268
  function mergeProps(...sources) {
1262
1269
  if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
@@ -1359,7 +1366,7 @@ function lazy(fn) {
1359
1366
  }
1360
1367
  let Comp;
1361
1368
  return createMemo(() => (Comp = comp()) && untrack(() => {
1362
- Object.assign(Comp, {
1369
+ if ("_SOLID_DEV_") Object.assign(Comp, {
1363
1370
  [$DEVCOMP]: true
1364
1371
  });
1365
1372
  if (!ctx) return Comp(props);
@@ -1383,20 +1390,25 @@ function For(props) {
1383
1390
  const fallback = "fallback" in props && {
1384
1391
  fallback: () => props.fallback
1385
1392
  };
1386
- return createMemo(mapArray(() => props.each, props.children, fallback ? fallback : undefined));
1393
+ return createMemo(mapArray(() => props.each, props.children, fallback || undefined), undefined, {
1394
+ name: "value"
1395
+ }) ;
1387
1396
  }
1388
1397
  function Index(props) {
1389
1398
  const fallback = "fallback" in props && {
1390
1399
  fallback: () => props.fallback
1391
1400
  };
1392
- return createMemo(indexArray(() => props.each, props.children, fallback ? fallback : undefined));
1401
+ return createMemo(indexArray(() => props.each, props.children, fallback || undefined), undefined, {
1402
+ name: "value"
1403
+ }) ;
1393
1404
  }
1394
1405
  function Show(props) {
1395
1406
  let strictEqual = false;
1396
1407
  const keyed = props.keyed;
1397
1408
  const condition = createMemo(() => props.when, undefined, {
1398
- equals: (a, b) => strictEqual ? a === b : !a === !b
1399
- });
1409
+ equals: (a, b) => strictEqual ? a === b : !a === !b,
1410
+ name: "condition"
1411
+ } );
1400
1412
  return createMemo(() => {
1401
1413
  const c = condition();
1402
1414
  if (c) {
@@ -1406,11 +1418,14 @@ function Show(props) {
1406
1418
  return fn ? untrack(() => child(c)) : child;
1407
1419
  }
1408
1420
  return props.fallback;
1409
- });
1421
+ }, undefined, {
1422
+ name: "value"
1423
+ } );
1410
1424
  }
1411
1425
  function Switch(props) {
1412
1426
  let strictEqual = false;
1413
1427
  let keyed = false;
1428
+ const equals = (a, b) => a[0] === b[0] && (strictEqual ? a[1] === b[1] : !a[1] === !b[1]) && a[2] === b[2];
1414
1429
  const conditions = children(() => props.children),
1415
1430
  evalConditions = createMemo(() => {
1416
1431
  let conds = conditions();
@@ -1424,8 +1439,9 @@ function Switch(props) {
1424
1439
  }
1425
1440
  return [-1];
1426
1441
  }, undefined, {
1427
- equals: (a, b) => a[0] === b[0] && (strictEqual ? a[1] === b[1] : !a[1] === !b[1]) && a[2] === b[2]
1428
- });
1442
+ equals,
1443
+ name: "eval conditions"
1444
+ } );
1429
1445
  return createMemo(() => {
1430
1446
  const [index, when, cond] = evalConditions();
1431
1447
  if (index < 0) return props.fallback;
@@ -1433,7 +1449,9 @@ function Switch(props) {
1433
1449
  const fn = typeof c === "function" && c.length > 0;
1434
1450
  strictEqual = keyed || fn;
1435
1451
  return fn ? untrack(() => c(when)) : c;
1436
- });
1452
+ }, undefined, {
1453
+ name: "value"
1454
+ } );
1437
1455
  }
1438
1456
  function Match(props) {
1439
1457
  return props;
@@ -1446,7 +1464,9 @@ function ErrorBoundary(props) {
1446
1464
  let err;
1447
1465
  let v;
1448
1466
  if (sharedConfig.context && sharedConfig.load && (v = sharedConfig.load(sharedConfig.context.id + sharedConfig.context.count))) err = v[0];
1449
- const [errored, setErrored] = createSignal(err);
1467
+ const [errored, setErrored] = createSignal(err, {
1468
+ name: "errored"
1469
+ } );
1450
1470
  Errors || (Errors = new Set());
1451
1471
  Errors.add(setErrored);
1452
1472
  onCleanup(() => Errors.delete(setErrored));
@@ -1461,7 +1481,9 @@ function ErrorBoundary(props) {
1461
1481
  }
1462
1482
  onError(setErrored);
1463
1483
  return props.children;
1464
- });
1484
+ }, undefined, {
1485
+ name: "value"
1486
+ } );
1465
1487
  }
1466
1488
 
1467
1489
  const suspenseListEquals = (a, b) => a.showContent === b.showContent && a.showFallback === b.showFallback;
package/dist/dev.js CHANGED
@@ -331,7 +331,7 @@ function createResource(pSource, pFetcher, pOptions) {
331
331
  refetching
332
332
  }));
333
333
  if (typeof p !== "object" || !(p && "then" in p)) {
334
- loadEnd(pr, p);
334
+ loadEnd(pr, p, undefined, lookup);
335
335
  return p;
336
336
  }
337
337
  pr = p;
@@ -341,7 +341,7 @@ function createResource(pSource, pFetcher, pOptions) {
341
341
  setState(resolved ? "refreshing" : "pending");
342
342
  trigger();
343
343
  }, false);
344
- return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e)));
344
+ return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e), lookup));
345
345
  }
346
346
  Object.defineProperties(read, {
347
347
  state: {
@@ -415,12 +415,13 @@ function batch(fn) {
415
415
  return runUpdates(fn, false);
416
416
  }
417
417
  function untrack(fn) {
418
- let result,
419
- listener = Listener;
418
+ const listener = Listener;
420
419
  Listener = null;
421
- result = fn();
422
- Listener = listener;
423
- return result;
420
+ try {
421
+ return fn();
422
+ } finally {
423
+ Listener = listener;
424
+ }
424
425
  }
425
426
  function on(deps, fn, options) {
426
427
  const isArray = Array.isArray(deps);
@@ -574,7 +575,9 @@ function useContext(context) {
574
575
  }
575
576
  function children(fn) {
576
577
  const children = createMemo(fn);
577
- const memo = createMemo(() => resolveChildren(children()));
578
+ const memo = createMemo(() => resolveChildren(children()), undefined, {
579
+ name: "children"
580
+ }) ;
578
581
  memo.toArray = () => {
579
582
  const c = memo();
580
583
  return Array.isArray(c) ? c : c != null ? [c] : [];
@@ -1138,7 +1141,9 @@ function mapArray(list, mapFn, options = {}) {
1138
1141
  function mapper(disposer) {
1139
1142
  disposers[j] = disposer;
1140
1143
  if (indexes) {
1141
- const [s, set] = createSignal(j);
1144
+ const [s, set] = createSignal(j, {
1145
+ name: "index"
1146
+ }) ;
1142
1147
  indexes[j] = set;
1143
1148
  return mapFn(newItems[j], s);
1144
1149
  }
@@ -1200,7 +1205,9 @@ function indexArray(list, mapFn, options = {}) {
1200
1205
  });
1201
1206
  function mapper(disposer) {
1202
1207
  disposers[i] = disposer;
1203
- const [s, set] = createSignal(newItems[i]);
1208
+ const [s, set] = createSignal(newItems[i], {
1209
+ name: "value"
1210
+ }) ;
1204
1211
  signals[i] = set;
1205
1212
  return mapFn(s, i);
1206
1213
  }
@@ -1252,7 +1259,7 @@ const propTraps = {
1252
1259
  }
1253
1260
  };
1254
1261
  function resolveSource(s) {
1255
- return (s = typeof s === "function" ? s() : s) == null ? {} : s;
1262
+ return !(s = typeof s === "function" ? s() : s) ? {} : s;
1256
1263
  }
1257
1264
  function mergeProps(...sources) {
1258
1265
  if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
@@ -1355,7 +1362,7 @@ function lazy(fn) {
1355
1362
  }
1356
1363
  let Comp;
1357
1364
  return createMemo(() => (Comp = comp()) && untrack(() => {
1358
- Object.assign(Comp, {
1365
+ if ("_SOLID_DEV_") Object.assign(Comp, {
1359
1366
  [$DEVCOMP]: true
1360
1367
  });
1361
1368
  if (!ctx) return Comp(props);
@@ -1379,20 +1386,25 @@ function For(props) {
1379
1386
  const fallback = "fallback" in props && {
1380
1387
  fallback: () => props.fallback
1381
1388
  };
1382
- return createMemo(mapArray(() => props.each, props.children, fallback ? fallback : undefined));
1389
+ return createMemo(mapArray(() => props.each, props.children, fallback || undefined), undefined, {
1390
+ name: "value"
1391
+ }) ;
1383
1392
  }
1384
1393
  function Index(props) {
1385
1394
  const fallback = "fallback" in props && {
1386
1395
  fallback: () => props.fallback
1387
1396
  };
1388
- return createMemo(indexArray(() => props.each, props.children, fallback ? fallback : undefined));
1397
+ return createMemo(indexArray(() => props.each, props.children, fallback || undefined), undefined, {
1398
+ name: "value"
1399
+ }) ;
1389
1400
  }
1390
1401
  function Show(props) {
1391
1402
  let strictEqual = false;
1392
1403
  const keyed = props.keyed;
1393
1404
  const condition = createMemo(() => props.when, undefined, {
1394
- equals: (a, b) => strictEqual ? a === b : !a === !b
1395
- });
1405
+ equals: (a, b) => strictEqual ? a === b : !a === !b,
1406
+ name: "condition"
1407
+ } );
1396
1408
  return createMemo(() => {
1397
1409
  const c = condition();
1398
1410
  if (c) {
@@ -1402,11 +1414,14 @@ function Show(props) {
1402
1414
  return fn ? untrack(() => child(c)) : child;
1403
1415
  }
1404
1416
  return props.fallback;
1405
- });
1417
+ }, undefined, {
1418
+ name: "value"
1419
+ } );
1406
1420
  }
1407
1421
  function Switch(props) {
1408
1422
  let strictEqual = false;
1409
1423
  let keyed = false;
1424
+ const equals = (a, b) => a[0] === b[0] && (strictEqual ? a[1] === b[1] : !a[1] === !b[1]) && a[2] === b[2];
1410
1425
  const conditions = children(() => props.children),
1411
1426
  evalConditions = createMemo(() => {
1412
1427
  let conds = conditions();
@@ -1420,8 +1435,9 @@ function Switch(props) {
1420
1435
  }
1421
1436
  return [-1];
1422
1437
  }, undefined, {
1423
- equals: (a, b) => a[0] === b[0] && (strictEqual ? a[1] === b[1] : !a[1] === !b[1]) && a[2] === b[2]
1424
- });
1438
+ equals,
1439
+ name: "eval conditions"
1440
+ } );
1425
1441
  return createMemo(() => {
1426
1442
  const [index, when, cond] = evalConditions();
1427
1443
  if (index < 0) return props.fallback;
@@ -1429,7 +1445,9 @@ function Switch(props) {
1429
1445
  const fn = typeof c === "function" && c.length > 0;
1430
1446
  strictEqual = keyed || fn;
1431
1447
  return fn ? untrack(() => c(when)) : c;
1432
- });
1448
+ }, undefined, {
1449
+ name: "value"
1450
+ } );
1433
1451
  }
1434
1452
  function Match(props) {
1435
1453
  return props;
@@ -1442,7 +1460,9 @@ function ErrorBoundary(props) {
1442
1460
  let err;
1443
1461
  let v;
1444
1462
  if (sharedConfig.context && sharedConfig.load && (v = sharedConfig.load(sharedConfig.context.id + sharedConfig.context.count))) err = v[0];
1445
- const [errored, setErrored] = createSignal(err);
1463
+ const [errored, setErrored] = createSignal(err, {
1464
+ name: "errored"
1465
+ } );
1446
1466
  Errors || (Errors = new Set());
1447
1467
  Errors.add(setErrored);
1448
1468
  onCleanup(() => Errors.delete(setErrored));
@@ -1457,7 +1477,9 @@ function ErrorBoundary(props) {
1457
1477
  }
1458
1478
  onError(setErrored);
1459
1479
  return props.children;
1460
- });
1480
+ }, undefined, {
1481
+ name: "value"
1482
+ } );
1461
1483
  }
1462
1484
 
1463
1485
  const suspenseListEquals = (a, b) => a.showContent === b.showContent && a.showFallback === b.showFallback;
package/dist/server.cjs CHANGED
@@ -291,7 +291,21 @@ function mergeProps(...sources) {
291
291
  for (let i = 0; i < sources.length; i++) {
292
292
  let source = sources[i];
293
293
  if (typeof source === "function") source = source();
294
- if (source) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
294
+ if (source) {
295
+ const descriptors = Object.getOwnPropertyDescriptors(source);
296
+ for (const key in descriptors) {
297
+ if (key in target) continue;
298
+ Object.defineProperty(target, key, {
299
+ enumerable: true,
300
+ get() {
301
+ for (let i = sources.length - 1; i >= 0; i--) {
302
+ const v = (sources[i] || {})[key];
303
+ if (v !== undefined) return v;
304
+ }
305
+ }
306
+ });
307
+ }
308
+ }
295
309
  }
296
310
  return target;
297
311
  }
package/dist/server.js CHANGED
@@ -287,7 +287,21 @@ function mergeProps(...sources) {
287
287
  for (let i = 0; i < sources.length; i++) {
288
288
  let source = sources[i];
289
289
  if (typeof source === "function") source = source();
290
- if (source) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
290
+ if (source) {
291
+ const descriptors = Object.getOwnPropertyDescriptors(source);
292
+ for (const key in descriptors) {
293
+ if (key in target) continue;
294
+ Object.defineProperty(target, key, {
295
+ enumerable: true,
296
+ get() {
297
+ for (let i = sources.length - 1; i >= 0; i--) {
298
+ const v = (sources[i] || {})[key];
299
+ if (v !== undefined) return v;
300
+ }
301
+ }
302
+ });
303
+ }
304
+ }
291
305
  }
292
306
  return target;
293
307
  }
package/dist/solid.cjs CHANGED
@@ -327,7 +327,7 @@ function createResource(pSource, pFetcher, pOptions) {
327
327
  refetching
328
328
  }));
329
329
  if (typeof p !== "object" || !(p && "then" in p)) {
330
- loadEnd(pr, p);
330
+ loadEnd(pr, p, undefined, lookup);
331
331
  return p;
332
332
  }
333
333
  pr = p;
@@ -337,7 +337,7 @@ function createResource(pSource, pFetcher, pOptions) {
337
337
  setState(resolved ? "refreshing" : "pending");
338
338
  trigger();
339
339
  }, false);
340
- return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e)));
340
+ return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e), lookup));
341
341
  }
342
342
  Object.defineProperties(read, {
343
343
  state: {
@@ -411,12 +411,13 @@ function batch(fn) {
411
411
  return runUpdates(fn, false);
412
412
  }
413
413
  function untrack(fn) {
414
- let result,
415
- listener = Listener;
414
+ const listener = Listener;
416
415
  Listener = null;
417
- result = fn();
418
- Listener = listener;
419
- return result;
416
+ try {
417
+ return fn();
418
+ } finally {
419
+ Listener = listener;
420
+ }
420
421
  }
421
422
  function on(deps, fn, options) {
422
423
  const isArray = Array.isArray(deps);
@@ -1170,7 +1171,7 @@ const propTraps = {
1170
1171
  }
1171
1172
  };
1172
1173
  function resolveSource(s) {
1173
- return (s = typeof s === "function" ? s() : s) == null ? {} : s;
1174
+ return !(s = typeof s === "function" ? s() : s) ? {} : s;
1174
1175
  }
1175
1176
  function mergeProps(...sources) {
1176
1177
  if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
@@ -1273,6 +1274,7 @@ function lazy(fn) {
1273
1274
  }
1274
1275
  let Comp;
1275
1276
  return createMemo(() => (Comp = comp()) && untrack(() => {
1277
+ if (false) ;
1276
1278
  if (!ctx) return Comp(props);
1277
1279
  const c = sharedConfig.context;
1278
1280
  setHydrateContext(ctx);
@@ -1294,13 +1296,13 @@ function For(props) {
1294
1296
  const fallback = "fallback" in props && {
1295
1297
  fallback: () => props.fallback
1296
1298
  };
1297
- return createMemo(mapArray(() => props.each, props.children, fallback ? fallback : undefined));
1299
+ return createMemo(mapArray(() => props.each, props.children, fallback || undefined));
1298
1300
  }
1299
1301
  function Index(props) {
1300
1302
  const fallback = "fallback" in props && {
1301
1303
  fallback: () => props.fallback
1302
1304
  };
1303
- return createMemo(indexArray(() => props.each, props.children, fallback ? fallback : undefined));
1305
+ return createMemo(indexArray(() => props.each, props.children, fallback || undefined));
1304
1306
  }
1305
1307
  function Show(props) {
1306
1308
  let strictEqual = false;
@@ -1317,11 +1319,12 @@ function Show(props) {
1317
1319
  return fn ? untrack(() => child(c)) : child;
1318
1320
  }
1319
1321
  return props.fallback;
1320
- });
1322
+ }, undefined, undefined);
1321
1323
  }
1322
1324
  function Switch(props) {
1323
1325
  let strictEqual = false;
1324
1326
  let keyed = false;
1327
+ const equals = (a, b) => a[0] === b[0] && (strictEqual ? a[1] === b[1] : !a[1] === !b[1]) && a[2] === b[2];
1325
1328
  const conditions = children(() => props.children),
1326
1329
  evalConditions = createMemo(() => {
1327
1330
  let conds = conditions();
@@ -1335,7 +1338,7 @@ function Switch(props) {
1335
1338
  }
1336
1339
  return [-1];
1337
1340
  }, undefined, {
1338
- equals: (a, b) => a[0] === b[0] && (strictEqual ? a[1] === b[1] : !a[1] === !b[1]) && a[2] === b[2]
1341
+ equals
1339
1342
  });
1340
1343
  return createMemo(() => {
1341
1344
  const [index, when, cond] = evalConditions();
@@ -1344,7 +1347,7 @@ function Switch(props) {
1344
1347
  const fn = typeof c === "function" && c.length > 0;
1345
1348
  strictEqual = keyed || fn;
1346
1349
  return fn ? untrack(() => c(when)) : c;
1347
- });
1350
+ }, undefined, undefined);
1348
1351
  }
1349
1352
  function Match(props) {
1350
1353
  return props;
@@ -1357,7 +1360,7 @@ function ErrorBoundary(props) {
1357
1360
  let err;
1358
1361
  let v;
1359
1362
  if (sharedConfig.context && sharedConfig.load && (v = sharedConfig.load(sharedConfig.context.id + sharedConfig.context.count))) err = v[0];
1360
- const [errored, setErrored] = createSignal(err);
1363
+ const [errored, setErrored] = createSignal(err, undefined);
1361
1364
  Errors || (Errors = new Set());
1362
1365
  Errors.add(setErrored);
1363
1366
  onCleanup(() => Errors.delete(setErrored));
@@ -1371,7 +1374,7 @@ function ErrorBoundary(props) {
1371
1374
  }
1372
1375
  onError(setErrored);
1373
1376
  return props.children;
1374
- });
1377
+ }, undefined, undefined);
1375
1378
  }
1376
1379
 
1377
1380
  const suspenseListEquals = (a, b) => a.showContent === b.showContent && a.showFallback === b.showFallback;
package/dist/solid.js CHANGED
@@ -323,7 +323,7 @@ function createResource(pSource, pFetcher, pOptions) {
323
323
  refetching
324
324
  }));
325
325
  if (typeof p !== "object" || !(p && "then" in p)) {
326
- loadEnd(pr, p);
326
+ loadEnd(pr, p, undefined, lookup);
327
327
  return p;
328
328
  }
329
329
  pr = p;
@@ -333,7 +333,7 @@ function createResource(pSource, pFetcher, pOptions) {
333
333
  setState(resolved ? "refreshing" : "pending");
334
334
  trigger();
335
335
  }, false);
336
- return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e)));
336
+ return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e), lookup));
337
337
  }
338
338
  Object.defineProperties(read, {
339
339
  state: {
@@ -407,12 +407,13 @@ function batch(fn) {
407
407
  return runUpdates(fn, false);
408
408
  }
409
409
  function untrack(fn) {
410
- let result,
411
- listener = Listener;
410
+ const listener = Listener;
412
411
  Listener = null;
413
- result = fn();
414
- Listener = listener;
415
- return result;
412
+ try {
413
+ return fn();
414
+ } finally {
415
+ Listener = listener;
416
+ }
416
417
  }
417
418
  function on(deps, fn, options) {
418
419
  const isArray = Array.isArray(deps);
@@ -1166,7 +1167,7 @@ const propTraps = {
1166
1167
  }
1167
1168
  };
1168
1169
  function resolveSource(s) {
1169
- return (s = typeof s === "function" ? s() : s) == null ? {} : s;
1170
+ return !(s = typeof s === "function" ? s() : s) ? {} : s;
1170
1171
  }
1171
1172
  function mergeProps(...sources) {
1172
1173
  if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
@@ -1269,6 +1270,7 @@ function lazy(fn) {
1269
1270
  }
1270
1271
  let Comp;
1271
1272
  return createMemo(() => (Comp = comp()) && untrack(() => {
1273
+ if (false) ;
1272
1274
  if (!ctx) return Comp(props);
1273
1275
  const c = sharedConfig.context;
1274
1276
  setHydrateContext(ctx);
@@ -1290,13 +1292,13 @@ function For(props) {
1290
1292
  const fallback = "fallback" in props && {
1291
1293
  fallback: () => props.fallback
1292
1294
  };
1293
- return createMemo(mapArray(() => props.each, props.children, fallback ? fallback : undefined));
1295
+ return createMemo(mapArray(() => props.each, props.children, fallback || undefined));
1294
1296
  }
1295
1297
  function Index(props) {
1296
1298
  const fallback = "fallback" in props && {
1297
1299
  fallback: () => props.fallback
1298
1300
  };
1299
- return createMemo(indexArray(() => props.each, props.children, fallback ? fallback : undefined));
1301
+ return createMemo(indexArray(() => props.each, props.children, fallback || undefined));
1300
1302
  }
1301
1303
  function Show(props) {
1302
1304
  let strictEqual = false;
@@ -1313,11 +1315,12 @@ function Show(props) {
1313
1315
  return fn ? untrack(() => child(c)) : child;
1314
1316
  }
1315
1317
  return props.fallback;
1316
- });
1318
+ }, undefined, undefined);
1317
1319
  }
1318
1320
  function Switch(props) {
1319
1321
  let strictEqual = false;
1320
1322
  let keyed = false;
1323
+ const equals = (a, b) => a[0] === b[0] && (strictEqual ? a[1] === b[1] : !a[1] === !b[1]) && a[2] === b[2];
1321
1324
  const conditions = children(() => props.children),
1322
1325
  evalConditions = createMemo(() => {
1323
1326
  let conds = conditions();
@@ -1331,7 +1334,7 @@ function Switch(props) {
1331
1334
  }
1332
1335
  return [-1];
1333
1336
  }, undefined, {
1334
- equals: (a, b) => a[0] === b[0] && (strictEqual ? a[1] === b[1] : !a[1] === !b[1]) && a[2] === b[2]
1337
+ equals
1335
1338
  });
1336
1339
  return createMemo(() => {
1337
1340
  const [index, when, cond] = evalConditions();
@@ -1340,7 +1343,7 @@ function Switch(props) {
1340
1343
  const fn = typeof c === "function" && c.length > 0;
1341
1344
  strictEqual = keyed || fn;
1342
1345
  return fn ? untrack(() => c(when)) : c;
1343
- });
1346
+ }, undefined, undefined);
1344
1347
  }
1345
1348
  function Match(props) {
1346
1349
  return props;
@@ -1353,7 +1356,7 @@ function ErrorBoundary(props) {
1353
1356
  let err;
1354
1357
  let v;
1355
1358
  if (sharedConfig.context && sharedConfig.load && (v = sharedConfig.load(sharedConfig.context.id + sharedConfig.context.count))) err = v[0];
1356
- const [errored, setErrored] = createSignal(err);
1359
+ const [errored, setErrored] = createSignal(err, undefined);
1357
1360
  Errors || (Errors = new Set());
1358
1361
  Errors.add(setErrored);
1359
1362
  onCleanup(() => Errors.delete(setErrored));
@@ -1367,7 +1370,7 @@ function ErrorBoundary(props) {
1367
1370
  }
1368
1371
  onError(setErrored);
1369
1372
  return props.children;
1370
- });
1373
+ }, undefined, undefined);
1371
1374
  }
1372
1375
 
1373
1376
  const suspenseListEquals = (a, b) => a.showContent === b.showContent && a.showFallback === b.showFallback;
package/h/dist/h.cjs CHANGED
@@ -8,6 +8,8 @@ function createHyperScript(r) {
8
8
  let args = [].slice.call(arguments),
9
9
  e,
10
10
  multiExpression = false;
11
+ while (Array.isArray(args[0])) args = args[0];
12
+ if (args[0][$ELEMENT]) args.unshift(h.Fragment);
11
13
  typeof args[0] === "string" && detectMultiExpression(args);
12
14
  const ret = () => {
13
15
  while (args.length) item(args.shift());
@@ -86,6 +88,7 @@ function createHyperScript(r) {
86
88
  }
87
89
  }
88
90
  }
91
+ h.Fragment = props => props.children;
89
92
  return h;
90
93
  }
91
94
 
package/h/dist/h.js CHANGED
@@ -6,6 +6,8 @@ function createHyperScript(r) {
6
6
  let args = [].slice.call(arguments),
7
7
  e,
8
8
  multiExpression = false;
9
+ while (Array.isArray(args[0])) args = args[0];
10
+ if (args[0][$ELEMENT]) args.unshift(h.Fragment);
9
11
  typeof args[0] === "string" && detectMultiExpression(args);
10
12
  const ret = () => {
11
13
  while (args.length) item(args.shift());
@@ -84,6 +86,7 @@ function createHyperScript(r) {
84
86
  }
85
87
  }
86
88
  }
89
+ h.Fragment = props => props.children;
87
90
  return h;
88
91
  }
89
92
 
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "solid-js/h/jsx-dev-runtime",
3
+ "main": "../jsx-runtime/dist/jsx.cjs",
4
+ "module": "../jsx-runtime/dist/jsx.js",
5
+ "types": "../jsx-runtime/types/index.d.ts",
6
+ "type": "module",
7
+ "sideEffects": false
8
+ }
@@ -12,6 +12,9 @@ declare type ExpandableNode = Node & {
12
12
  };
13
13
  export declare type HyperScript = {
14
14
  (...args: any[]): () => ExpandableNode | ExpandableNode[];
15
+ Fragment: (props: {
16
+ children: (() => ExpandableNode) | (() => ExpandableNode)[];
17
+ }) => ExpandableNode[];
15
18
  };
16
19
  export declare function createHyperScript(r: Runtime): HyperScript;
17
20
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "solid-js",
3
3
  "description": "A declarative JavaScript library for building user interfaces.",
4
- "version": "1.6.1",
4
+ "version": "1.6.3",
5
5
  "author": "Ryan Carniato",
6
6
  "license": "MIT",
7
7
  "homepage": "https://solidjs.com",
@@ -33,6 +33,7 @@
33
33
  "h/jsx-runtime/dist",
34
34
  "h/jsx-runtime/types",
35
35
  "h/jsx-runtime/package.json",
36
+ "h/jsx-dev-runtime/package.json",
36
37
  "html/dist",
37
38
  "html/types",
38
39
  "html/package.json",
@@ -97,6 +98,10 @@
97
98
  "types": "./types/jsx.d.ts",
98
99
  "default": "./dist/solid.js"
99
100
  },
101
+ "./jsx-dev-runtime": {
102
+ "types": "./types/jsx.d.ts",
103
+ "default": "./dist/solid.js"
104
+ },
100
105
  "./store": {
101
106
  "worker": {
102
107
  "import": {
@@ -226,6 +231,13 @@
226
231
  },
227
232
  "require": "./h/jsx-runtime/dist/jsx.cjs"
228
233
  },
234
+ "./h/jsx-dev-runtime": {
235
+ "import": {
236
+ "types": "./h/jsx-runtime/types/index.d.ts",
237
+ "default": "./h/jsx-runtime/dist/jsx.js"
238
+ },
239
+ "require": "./h/jsx-runtime/dist/jsx.cjs"
240
+ },
229
241
  "./h/dist/*": "./h/dist/*",
230
242
  "./html": {
231
243
  "import": {
@@ -116,8 +116,7 @@ const proxyTraps$1 = {
116
116
  },
117
117
  has(target, property) {
118
118
  if (property === $RAW || property === solidJs.$PROXY || property === solidJs.$TRACK || property === $NODE || property === "__proto__") return true;
119
- const tracked = getDataNodes(target)[property];
120
- tracked && tracked();
119
+ this.get(target, property, target);
121
120
  return property in target;
122
121
  },
123
122
  set() {
@@ -133,11 +132,10 @@ const proxyTraps$1 = {
133
132
  };
134
133
  function setProperty(state, property, value, deleting = false) {
135
134
  if (!deleting && state[property] === value) return;
136
- const prev = state[property];
137
- const len = state.length;
138
- if (value === undefined) {
139
- delete state[property];
140
- } else state[property] = value;
135
+ const prev = state[property],
136
+ len = state.length;
137
+ if (globalThis._$onStoreNodeUpdate) globalThis._$onStoreNodeUpdate(state, property, value, prev);
138
+ if (value === undefined) delete state[property];else state[property] = value;
141
139
  let nodes = getDataNodes(state),
142
140
  node;
143
141
  if (node = getDataNode(nodes, property, prev)) node.$(() => value);
@@ -261,8 +259,7 @@ const proxyTraps = {
261
259
  },
262
260
  has(target, property) {
263
261
  if (property === $RAW || property === solidJs.$PROXY || property === solidJs.$TRACK || property === $NODE || property === "__proto__") return true;
264
- const tracked = getDataNodes(target)[property];
265
- tracked && tracked();
262
+ this.get(target, property, target);
266
263
  return property in target;
267
264
  },
268
265
  set(target, property, value) {
@@ -438,7 +435,14 @@ function produce(fn) {
438
435
  };
439
436
  }
440
437
 
438
+ const DEV = {
439
+ $NAME,
440
+ $NODE,
441
+ isWrappable
442
+ } ;
443
+
441
444
  exports.$RAW = $RAW;
445
+ exports.DEV = DEV;
442
446
  exports.createMutable = createMutable;
443
447
  exports.createStore = createStore;
444
448
  exports.modifyMutable = modifyMutable;
package/store/dist/dev.js CHANGED
@@ -1,4 +1,4 @@
1
- import { DEV, $PROXY, $TRACK, getListener, batch, createSignal } from 'solid-js';
1
+ import { $PROXY, DEV as DEV$1, $TRACK, getListener, batch, createSignal } from 'solid-js';
2
2
 
3
3
  const $RAW = Symbol("store-raw"),
4
4
  $NODE = Symbol("store-node"),
@@ -112,8 +112,7 @@ const proxyTraps$1 = {
112
112
  },
113
113
  has(target, property) {
114
114
  if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === "__proto__") return true;
115
- const tracked = getDataNodes(target)[property];
116
- tracked && tracked();
115
+ this.get(target, property, target);
117
116
  return property in target;
118
117
  },
119
118
  set() {
@@ -129,11 +128,10 @@ const proxyTraps$1 = {
129
128
  };
130
129
  function setProperty(state, property, value, deleting = false) {
131
130
  if (!deleting && state[property] === value) return;
132
- const prev = state[property];
133
- const len = state.length;
134
- if (value === undefined) {
135
- delete state[property];
136
- } else state[property] = value;
131
+ const prev = state[property],
132
+ len = state.length;
133
+ if (globalThis._$onStoreNodeUpdate) globalThis._$onStoreNodeUpdate(state, property, value, prev);
134
+ if (value === undefined) delete state[property];else state[property] = value;
137
135
  let nodes = getDataNodes(state),
138
136
  node;
139
137
  if (node = getDataNode(nodes, property, prev)) node.$(() => value);
@@ -210,10 +208,10 @@ function createStore(...[store, options]) {
210
208
  const unwrappedStore = unwrap(store || {});
211
209
  const isArray = Array.isArray(unwrappedStore);
212
210
  if (typeof unwrappedStore !== "object" && typeof unwrappedStore !== "function") throw new Error(`Unexpected type ${typeof unwrappedStore} received when initializing 'createStore'. Expected an object.`);
213
- const wrappedStore = wrap$1(unwrappedStore, (options && options.name || DEV.hashValue(unwrappedStore)));
211
+ const wrappedStore = wrap$1(unwrappedStore, (options && options.name || DEV$1.hashValue(unwrappedStore)));
214
212
  {
215
- const name = options && options.name || DEV.hashValue(unwrappedStore);
216
- DEV.registerGraph(name, {
213
+ const name = options && options.name || DEV$1.hashValue(unwrappedStore);
214
+ DEV$1.registerGraph(name, {
217
215
  value: unwrappedStore
218
216
  });
219
217
  }
@@ -257,8 +255,7 @@ const proxyTraps = {
257
255
  },
258
256
  has(target, property) {
259
257
  if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === "__proto__") return true;
260
- const tracked = getDataNodes(target)[property];
261
- tracked && tracked();
258
+ this.get(target, property, target);
262
259
  return property in target;
263
260
  },
264
261
  set(target, property, value) {
@@ -305,10 +302,10 @@ function wrap(value, name) {
305
302
  function createMutable(state, options) {
306
303
  const unwrappedStore = unwrap(state || {});
307
304
  if (typeof unwrappedStore !== "object" && typeof unwrappedStore !== "function") throw new Error(`Unexpected type ${typeof unwrappedStore} received when initializing 'createMutable'. Expected an object.`);
308
- const wrappedStore = wrap(unwrappedStore, (options && options.name || DEV.hashValue(unwrappedStore)));
305
+ const wrappedStore = wrap(unwrappedStore, (options && options.name || DEV$1.hashValue(unwrappedStore)));
309
306
  {
310
- const name = options && options.name || DEV.hashValue(unwrappedStore);
311
- DEV.registerGraph(name, {
307
+ const name = options && options.name || DEV$1.hashValue(unwrappedStore);
308
+ DEV$1.registerGraph(name, {
312
309
  value: unwrappedStore
313
310
  });
314
311
  }
@@ -434,4 +431,10 @@ function produce(fn) {
434
431
  };
435
432
  }
436
433
 
437
- export { $RAW, createMutable, createStore, modifyMutable, produce, reconcile, unwrap };
434
+ const DEV = {
435
+ $NAME,
436
+ $NODE,
437
+ isWrappable
438
+ } ;
439
+
440
+ export { $RAW, DEV, createMutable, createStore, modifyMutable, produce, reconcile, unwrap };
@@ -110,8 +110,10 @@ function produce(fn) {
110
110
  return state;
111
111
  };
112
112
  }
113
+ const DEV = undefined;
113
114
 
114
115
  exports.$RAW = $RAW;
116
+ exports.DEV = DEV;
115
117
  exports.createMutable = createMutable;
116
118
  exports.createStore = createStore;
117
119
  exports.isWrappable = isWrappable;
@@ -106,5 +106,6 @@ function produce(fn) {
106
106
  return state;
107
107
  };
108
108
  }
109
+ const DEV = undefined;
109
110
 
110
- export { $RAW, createMutable, createStore, isWrappable, produce, reconcile, setProperty, unwrap, updatePath };
111
+ export { $RAW, DEV, createMutable, createStore, isWrappable, produce, reconcile, setProperty, unwrap, updatePath };
@@ -113,8 +113,7 @@ const proxyTraps$1 = {
113
113
  },
114
114
  has(target, property) {
115
115
  if (property === $RAW || property === solidJs.$PROXY || property === solidJs.$TRACK || property === $NODE || property === "__proto__") return true;
116
- const tracked = getDataNodes(target)[property];
117
- tracked && tracked();
116
+ this.get(target, property, target);
118
117
  return property in target;
119
118
  },
120
119
  set() {
@@ -128,11 +127,9 @@ const proxyTraps$1 = {
128
127
  };
129
128
  function setProperty(state, property, value, deleting = false) {
130
129
  if (!deleting && state[property] === value) return;
131
- const prev = state[property];
132
- const len = state.length;
133
- if (value === undefined) {
134
- delete state[property];
135
- } else state[property] = value;
130
+ const prev = state[property],
131
+ len = state.length;
132
+ if (value === undefined) delete state[property];else state[property] = value;
136
133
  let nodes = getDataNodes(state),
137
134
  node;
138
135
  if (node = getDataNode(nodes, property, prev)) node.$(() => value);
@@ -249,8 +246,7 @@ const proxyTraps = {
249
246
  },
250
247
  has(target, property) {
251
248
  if (property === $RAW || property === solidJs.$PROXY || property === solidJs.$TRACK || property === $NODE || property === "__proto__") return true;
252
- const tracked = getDataNodes(target)[property];
253
- tracked && tracked();
249
+ this.get(target, property, target);
254
250
  return property in target;
255
251
  },
256
252
  set(target, property, value) {
@@ -416,7 +412,10 @@ function produce(fn) {
416
412
  };
417
413
  }
418
414
 
415
+ const DEV = undefined;
416
+
419
417
  exports.$RAW = $RAW;
418
+ exports.DEV = DEV;
420
419
  exports.createMutable = createMutable;
421
420
  exports.createStore = createStore;
422
421
  exports.modifyMutable = modifyMutable;
@@ -109,8 +109,7 @@ const proxyTraps$1 = {
109
109
  },
110
110
  has(target, property) {
111
111
  if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === "__proto__") return true;
112
- const tracked = getDataNodes(target)[property];
113
- tracked && tracked();
112
+ this.get(target, property, target);
114
113
  return property in target;
115
114
  },
116
115
  set() {
@@ -124,11 +123,9 @@ const proxyTraps$1 = {
124
123
  };
125
124
  function setProperty(state, property, value, deleting = false) {
126
125
  if (!deleting && state[property] === value) return;
127
- const prev = state[property];
128
- const len = state.length;
129
- if (value === undefined) {
130
- delete state[property];
131
- } else state[property] = value;
126
+ const prev = state[property],
127
+ len = state.length;
128
+ if (value === undefined) delete state[property];else state[property] = value;
132
129
  let nodes = getDataNodes(state),
133
130
  node;
134
131
  if (node = getDataNode(nodes, property, prev)) node.$(() => value);
@@ -245,8 +242,7 @@ const proxyTraps = {
245
242
  },
246
243
  has(target, property) {
247
244
  if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === "__proto__") return true;
248
- const tracked = getDataNodes(target)[property];
249
- tracked && tracked();
245
+ this.get(target, property, target);
250
246
  return property in target;
251
247
  },
252
248
  set(target, property, value) {
@@ -412,4 +408,6 @@ function produce(fn) {
412
408
  };
413
409
  }
414
410
 
415
- export { $RAW, createMutable, createStore, modifyMutable, produce, reconcile, unwrap };
411
+ const DEV = undefined;
412
+
413
+ export { $RAW, DEV, createMutable, createStore, modifyMutable, produce, reconcile, unwrap };
@@ -2,3 +2,9 @@ export { createStore, unwrap, $RAW } from "./store.js";
2
2
  export type { Store, SetStoreFunction, NotWrappable, SolidStore, StoreNode, StoreSetter, StorePathRange, ArrayFilterFn, Part, DeepReadonly, DeepMutable } from "./store.js";
3
3
  export * from "./mutable.js";
4
4
  export * from "./modifiers.js";
5
+ import { $NAME, $NODE, isWrappable } from "./store.js";
6
+ export declare const DEV: {
7
+ readonly $NAME: typeof $NAME;
8
+ readonly $NODE: typeof $NODE;
9
+ readonly isWrappable: typeof isWrappable;
10
+ } | undefined;
@@ -12,4 +12,5 @@ declare type ReconcileOptions = {
12
12
  };
13
13
  export declare function reconcile<T extends U, U>(value: T, options?: ReconcileOptions): (state: U) => T;
14
14
  export declare function produce<T>(fn: (state: T) => void): (state: T) => T;
15
+ export declare const DEV: undefined;
15
16
  export {};
@@ -1,5 +1,18 @@
1
1
  export declare const $RAW: unique symbol, $NODE: unique symbol, $NAME: unique symbol;
2
- export declare type StoreNode = Record<PropertyKey, any>;
2
+ declare global {
3
+ var _$onStoreNodeUpdate: OnStoreNodeUpdate | undefined;
4
+ }
5
+ declare type DataNode = {
6
+ (): any;
7
+ $(value?: any): void;
8
+ };
9
+ declare type DataNodes = Record<PropertyKey, DataNode>;
10
+ export declare type OnStoreNodeUpdate = (state: StoreNode, property: PropertyKey, value: StoreNode | NotWrappable, prev: StoreNode | NotWrappable) => void;
11
+ export interface StoreNode {
12
+ [$NAME]?: string;
13
+ [$NODE]?: DataNodes;
14
+ [key: PropertyKey]: any;
15
+ }
3
16
  export declare namespace SolidStore {
4
17
  interface Unwrappable {
5
18
  }
@@ -7,9 +20,20 @@ export declare namespace SolidStore {
7
20
  export declare type NotWrappable = string | number | bigint | symbol | boolean | Function | null | undefined | SolidStore.Unwrappable[keyof SolidStore.Unwrappable];
8
21
  export declare type Store<T> = T;
9
22
  export declare function isWrappable<T>(obj: T | NotWrappable): obj is T;
23
+ /**
24
+ * Returns the underlying data in the store without a proxy.
25
+ * @param item store proxy object
26
+ * @example
27
+ * ```js
28
+ * const initial = {z...};
29
+ * const [state, setState] = createStore(initial);
30
+ * initial === state; // => false
31
+ * initial === unwrap(state); // => true
32
+ * ```
33
+ */
10
34
  export declare function unwrap<T>(item: T, set?: Set<unknown>): T;
11
- export declare function getDataNodes(target: StoreNode): any;
12
- export declare function getDataNode(nodes: Record<string, any>, property: string | symbol, value: any): any;
35
+ export declare function getDataNodes(target: StoreNode): DataNodes;
36
+ export declare function getDataNode(nodes: DataNodes, property: PropertyKey, value: any): DataNode;
13
37
  export declare function proxyDescriptor(target: StoreNode, property: PropertyKey): PropertyDescriptor | undefined;
14
38
  export declare function trackSelf(target: StoreNode): void;
15
39
  export declare function ownKeys(target: StoreNode): (string | symbol)[];
package/types/jsx.d.ts CHANGED
@@ -727,6 +727,8 @@ export namespace JSX {
727
727
  }
728
728
  interface DialogHtmlAttributes<T> extends HTMLAttributes<T> {
729
729
  open?: boolean;
730
+ onClose?: EventHandlerUnion<T, Event>;
731
+ onCancel?: EventHandlerUnion<T, Event>;
730
732
  }
731
733
  interface EmbedHTMLAttributes<T> extends HTMLAttributes<T> {
732
734
  height?: number | string;
@@ -9,8 +9,8 @@ export declare var Owner: Owner | null;
9
9
  export declare let Transition: TransitionState | null;
10
10
  declare let ExternalSourceFactory: ExternalSourceFactory | null;
11
11
  declare global {
12
- var _$afterUpdate: () => void;
13
- var _$afterCreateRoot: (root: Owner) => void;
12
+ var _$afterUpdate: (() => void) | undefined;
13
+ var _$afterCreateRoot: ((root: Owner) => void) | undefined;
14
14
  }
15
15
  export interface SignalState<T> {
16
16
  value?: T;
@@ -2,7 +2,7 @@ import type { JSX } from "../jsx.js";
2
2
  export declare function enableHydration(): void;
3
3
  /**
4
4
  * A general `Component` has no implicit `children` prop. If desired, you can
5
- * specify one as in `Component<{name: String, children: JSX.Element>}`.
5
+ * specify one as in `Component<{name: String, children: JSX.Element}>`.
6
6
  */
7
7
  export declare type Component<P = {}> = (props: P) => JSX.Element;
8
8
  /**
package/web/dist/dev.cjs CHANGED
@@ -358,14 +358,14 @@ function eventHandler(e) {
358
358
  solidJs.sharedConfig.done = true;
359
359
  document.querySelectorAll("[id^=pl-]").forEach(elem => elem.remove());
360
360
  }
361
- while (node !== null) {
361
+ while (node) {
362
362
  const handler = node[key];
363
363
  if (handler && !node.disabled) {
364
364
  const data = node[`${key}Data`];
365
365
  data !== undefined ? handler.call(node, data, e) : handler.call(node, e);
366
366
  if (e.cancelBubble) return;
367
367
  }
368
- node = node.host && node.host !== node && node.host instanceof Node ? node.host : node.parentNode;
368
+ node = node._$host || node.parentNode || node.host;
369
369
  }
370
370
  }
371
371
  function insertExpression(parent, value, current, marker, unwrapArray) {
@@ -557,7 +557,7 @@ function Portal(props) {
557
557
  renderRoot = useShadow && container.attachShadow ? container.attachShadow({
558
558
  mode: "open"
559
559
  }) : container;
560
- Object.defineProperty(container, "host", {
560
+ Object.defineProperty(container, "_$host", {
561
561
  get() {
562
562
  return marker.parentNode;
563
563
  },
package/web/dist/dev.js CHANGED
@@ -355,14 +355,14 @@ function eventHandler(e) {
355
355
  sharedConfig.done = true;
356
356
  document.querySelectorAll("[id^=pl-]").forEach(elem => elem.remove());
357
357
  }
358
- while (node !== null) {
358
+ while (node) {
359
359
  const handler = node[key];
360
360
  if (handler && !node.disabled) {
361
361
  const data = node[`${key}Data`];
362
362
  data !== undefined ? handler.call(node, data, e) : handler.call(node, e);
363
363
  if (e.cancelBubble) return;
364
364
  }
365
- node = node.host && node.host !== node && node.host instanceof Node ? node.host : node.parentNode;
365
+ node = node._$host || node.parentNode || node.host;
366
366
  }
367
367
  }
368
368
  function insertExpression(parent, value, current, marker, unwrapArray) {
@@ -554,7 +554,7 @@ function Portal(props) {
554
554
  renderRoot = useShadow && container.attachShadow ? container.attachShadow({
555
555
  mode: "open"
556
556
  }) : container;
557
- Object.defineProperty(container, "host", {
557
+ Object.defineProperty(container, "_$host", {
558
558
  get() {
559
559
  return marker.parentNode;
560
560
  },
@@ -103,7 +103,7 @@ function writeProp(cur, accessor) {
103
103
  case undefined:
104
104
  BUFFER.push("Object.assign(Object.create(null),");
105
105
  writeObject(cur);
106
- BUFFER.push("))");
106
+ BUFFER.push(")");
107
107
  break;
108
108
  default:
109
109
  return false;
@@ -638,7 +638,7 @@ function generateHydrationScript({
638
638
  eventNames = ["click", "input"],
639
639
  nonce
640
640
  } = {}) {
641
- return `<script${nonce ? ` nonce="${nonce}"` : ""}>var e,t;e=window._$HY||(_$HY={events:[],completed:new WeakSet,r:{},fe(){},init(e,t){_$HY.r[e]=[new Promise(((e,o)=>t=e)),t]},set(e,t,o){(o=_$HY.r[e])&&o[1](t),_$HY.r[e]=[t]},unset(e){delete _$HY.r[e]},load:e=>_$HY.r[e]}),t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode)),["${eventNames.join('", "')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])}))));</script><!--xs-->`;
641
+ return `<script${nonce ? ` nonce="${nonce}"` : ""}>(e=>{let t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode));["${eventNames.join('", "')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])}))))})(window._$HY||(_$HY={events:[],completed:new WeakSet,r:{},fe(){},init(e,t){_$HY.r[e]=[new Promise((e=>t=e)),t]},set(e,t,o){(o=_$HY.r[e])&&o[1](t),_$HY.r[e]=[t]},unset(e){delete _$HY.r[e]},load:e=>_$HY.r[e]}));</script><!--xs-->`;
642
642
  }
643
643
  function Hydration(props) {
644
644
  if (!solidJs.sharedConfig.context.noHydrate) return props.children;
@@ -871,4 +871,5 @@ exports.ssrElement = ssrElement;
871
871
  exports.ssrHydrationKey = ssrHydrationKey;
872
872
  exports.ssrSpread = ssrSpread;
873
873
  exports.ssrStyle = ssrStyle;
874
+ exports.stringify = stringify;
874
875
  exports.useAssets = useAssets;
@@ -100,7 +100,7 @@ function writeProp(cur, accessor) {
100
100
  case undefined:
101
101
  BUFFER.push("Object.assign(Object.create(null),");
102
102
  writeObject(cur);
103
- BUFFER.push("))");
103
+ BUFFER.push(")");
104
104
  break;
105
105
  default:
106
106
  return false;
@@ -635,7 +635,7 @@ function generateHydrationScript({
635
635
  eventNames = ["click", "input"],
636
636
  nonce
637
637
  } = {}) {
638
- return `<script${nonce ? ` nonce="${nonce}"` : ""}>var e,t;e=window._$HY||(_$HY={events:[],completed:new WeakSet,r:{},fe(){},init(e,t){_$HY.r[e]=[new Promise(((e,o)=>t=e)),t]},set(e,t,o){(o=_$HY.r[e])&&o[1](t),_$HY.r[e]=[t]},unset(e){delete _$HY.r[e]},load:e=>_$HY.r[e]}),t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode)),["${eventNames.join('", "')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])}))));</script><!--xs-->`;
638
+ return `<script${nonce ? ` nonce="${nonce}"` : ""}>(e=>{let t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode));["${eventNames.join('", "')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])}))))})(window._$HY||(_$HY={events:[],completed:new WeakSet,r:{},fe(){},init(e,t){_$HY.r[e]=[new Promise((e=>t=e)),t]},set(e,t,o){(o=_$HY.r[e])&&o[1](t),_$HY.r[e]=[t]},unset(e){delete _$HY.r[e]},load:e=>_$HY.r[e]}));</script><!--xs-->`;
639
639
  }
640
640
  function Hydration(props) {
641
641
  if (!sharedConfig.context.noHydrate) return props.children;
@@ -800,4 +800,4 @@ function Portal(props) {
800
800
  return "";
801
801
  }
802
802
 
803
- export { Assets, Dynamic, Hydration, HydrationScript, NoHydration, Portal, addEventListener, delegateEvents, escape, generateHydrationScript, getAssets, getHydrationKey, insert, isServer, pipeToNodeWritable, pipeToWritable, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrSpread, ssrStyle, useAssets };
803
+ export { Assets, Dynamic, Hydration, HydrationScript, NoHydration, Portal, addEventListener, delegateEvents, escape, generateHydrationScript, getAssets, getHydrationKey, insert, isServer, pipeToNodeWritable, pipeToWritable, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrSpread, ssrStyle, stringify, useAssets };
package/web/dist/web.cjs CHANGED
@@ -355,14 +355,14 @@ function eventHandler(e) {
355
355
  solidJs.sharedConfig.done = true;
356
356
  document.querySelectorAll("[id^=pl-]").forEach(elem => elem.remove());
357
357
  }
358
- while (node !== null) {
358
+ while (node) {
359
359
  const handler = node[key];
360
360
  if (handler && !node.disabled) {
361
361
  const data = node[`${key}Data`];
362
362
  data !== undefined ? handler.call(node, data, e) : handler.call(node, e);
363
363
  if (e.cancelBubble) return;
364
364
  }
365
- node = node.host && node.host !== node && node.host instanceof Node ? node.host : node.parentNode;
365
+ node = node._$host || node.parentNode || node.host;
366
366
  }
367
367
  }
368
368
  function insertExpression(parent, value, current, marker, unwrapArray) {
@@ -554,7 +554,7 @@ function Portal(props) {
554
554
  renderRoot = useShadow && container.attachShadow ? container.attachShadow({
555
555
  mode: "open"
556
556
  }) : container;
557
- Object.defineProperty(container, "host", {
557
+ Object.defineProperty(container, "_$host", {
558
558
  get() {
559
559
  return marker.parentNode;
560
560
  },
package/web/dist/web.js CHANGED
@@ -352,14 +352,14 @@ function eventHandler(e) {
352
352
  sharedConfig.done = true;
353
353
  document.querySelectorAll("[id^=pl-]").forEach(elem => elem.remove());
354
354
  }
355
- while (node !== null) {
355
+ while (node) {
356
356
  const handler = node[key];
357
357
  if (handler && !node.disabled) {
358
358
  const data = node[`${key}Data`];
359
359
  data !== undefined ? handler.call(node, data, e) : handler.call(node, e);
360
360
  if (e.cancelBubble) return;
361
361
  }
362
- node = node.host && node.host !== node && node.host instanceof Node ? node.host : node.parentNode;
362
+ node = node._$host || node.parentNode || node.host;
363
363
  }
364
364
  }
365
365
  function insertExpression(parent, value, current, marker, unwrapArray) {
@@ -551,7 +551,7 @@ function Portal(props) {
551
551
  renderRoot = useShadow && container.attachShadow ? container.attachShadow({
552
552
  mode: "open"
553
553
  }) : container;
554
- Object.defineProperty(container, "host", {
554
+ Object.defineProperty(container, "_$host", {
555
555
  get() {
556
556
  return marker.parentNode;
557
557
  },
@@ -49,6 +49,7 @@ export function createComponent<T>(Comp: (props: T) => JSX.Element, props: T): J
49
49
  export function mergeProps(...sources: unknown[]): unknown;
50
50
  export function getOwner(): unknown;
51
51
  export function generateHydrationScript(options: { nonce?: string; eventNames?: string[] }): string;
52
+ export function stringify(root: unknown): string;
52
53
 
53
54
  export function Hydration(props: { children?: JSX.Element }): JSX.Element;
54
55
  export function NoHydration(props: { children?: JSX.Element }): JSX.Element;