Skip to content

Commit 786b50a

Browse files
committed
tidy up
1 parent 47372df commit 786b50a

File tree

2 files changed

+20
-26
lines changed

2 files changed

+20
-26
lines changed

packages/svelte/src/internal/client/error-handling.js

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,32 @@
22
import { DEV } from 'esm-env';
33
import { FILENAME } from '../../constants.js';
44
import { is_firefox } from './dom/operations.js';
5-
import { BOUNDARY_EFFECT } from './constants.js';
5+
import { BOUNDARY_EFFECT, EFFECT_RAN } from './constants.js';
66
import { define_property } from '../shared/utils.js';
7+
import { active_effect } from './runtime.js';
78

89
// Used for DEV time error handling
910
/** @param {WeakSet<Error>} value */
1011
const adjusted_errors = new WeakSet();
1112

1213
/**
1314
* @param {unknown} error
14-
* @param {Effect} effect
1515
*/
16-
export function handle_error(error, effect) {
16+
export function handle_error(error) {
17+
var effect = /** @type {Effect} */ (active_effect);
18+
1719
if (DEV && error instanceof Error) {
1820
adjust_error(error, effect);
1921
}
2022

21-
invoke_error_boundary(error, effect);
23+
if ((effect.f & EFFECT_RAN) !== 0) {
24+
invoke_error_boundary(error, effect);
25+
} else if ((effect.f & BOUNDARY_EFFECT) !== 0) {
26+
// invoke directly
27+
effect.fn(error);
28+
} else {
29+
throw error;
30+
}
2231
}
2332

2433
/**
@@ -52,7 +61,7 @@ export function invoke_error_boundary(error, effect) {
5261
* @param {Error} error
5362
* @param {Effect} effect
5463
*/
55-
export function adjust_error(error, effect) {
64+
function adjust_error(error, effect) {
5665
if (adjusted_errors.has(error)) return;
5766
adjusted_errors.add(error);
5867

packages/svelte/src/internal/client/runtime.js

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/** @import { ComponentContext, Derived, Effect, Reaction, Signal, Source, Value } from '#client' */
1+
/** @import { Derived, Effect, Reaction, Signal, Source, Value } from '#client' */
22
import { DEV } from 'esm-env';
33
import { define_property, get_descriptors, get_prototype_of, index_of } from '../shared/utils.js';
44
import {
@@ -22,9 +22,7 @@ import {
2222
ROOT_EFFECT,
2323
LEGACY_DERIVED_PROP,
2424
DISCONNECTED,
25-
BOUNDARY_EFFECT,
26-
EFFECT_IS_UPDATING,
27-
EFFECT_RAN
25+
EFFECT_IS_UPDATING
2826
} from './constants.js';
2927
import { flush_tasks } from './dom/task.js';
3028
import { internal_set, old_values } from './reactivity/sources.js';
@@ -40,7 +38,7 @@ import {
4038
set_component_context,
4139
set_dev_current_component_function
4240
} from './context.js';
43-
import { adjust_error, handle_error, invoke_error_boundary } from './error-handling.js';
41+
import { handle_error, invoke_error_boundary } from './error-handling.js';
4442

4543
let is_flushing = false;
4644

@@ -345,20 +343,7 @@ export function update_reaction(reaction) {
345343

346344
return result;
347345
} catch (error) {
348-
var effect = /** @type {Effect} */ (active_effect);
349-
350-
if (DEV && error instanceof Error) {
351-
adjust_error(error, effect);
352-
}
353-
354-
if ((effect.f & EFFECT_RAN) !== 0) {
355-
invoke_error_boundary(error, effect);
356-
} else if ((effect.f & BOUNDARY_EFFECT) !== 0) {
357-
// invoke directly
358-
effect.fn(error);
359-
} else {
360-
throw error;
361-
}
346+
handle_error(error);
362347
} finally {
363348
new_deps = previous_deps;
364349
skipped_deps = previous_skipped_deps;
@@ -532,14 +517,14 @@ function infinite_loop_guard() {
532517
if (last_scheduled_effect !== null) {
533518
if (DEV) {
534519
try {
535-
handle_error(error, last_scheduled_effect);
520+
invoke_error_boundary(error, last_scheduled_effect);
536521
} catch (e) {
537522
// Only log the effect stack if the error is re-thrown
538523
log_effect_stack();
539524
throw e;
540525
}
541526
} else {
542-
handle_error(error, last_scheduled_effect);
527+
invoke_error_boundary(error, last_scheduled_effect);
543528
}
544529
} else {
545530
if (DEV) {

0 commit comments

Comments
 (0)