Skip to content

Commit eb90755

Browse files
authored
Merge pull request #2101 from sveltejs/gh-2018
Use initCustomEvent instead of new CustomEvent
2 parents d31d857 + 7c9c8ce commit eb90755

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

src/internal/dom.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,3 +250,9 @@ export function addResizeListener(element, fn) {
250250
export function toggleClass(element, name, toggle) {
251251
element.classList[toggle ? 'add' : 'remove'](name);
252252
}
253+
254+
export function custom_event(type, detail) {
255+
const e = document.createEvent('CustomEvent');
256+
e.initCustomEvent(type, false, false, detail);
257+
return e;
258+
}

src/internal/lifecycle.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { custom_event } from './dom';
2+
13
export let current_component;
24

35
export function set_current_component(component) {
@@ -34,7 +36,7 @@ export function createEventDispatcher() {
3436
if (callbacks) {
3537
// TODO are there situations where events could be dispatched
3638
// in a server (non-DOM) environment?
37-
const event = new window.CustomEvent(type, { detail });
39+
const event = custom_event(type, detail);
3840
callbacks.slice().forEach(fn => {
3941
fn.call(component, event);
4042
});

src/internal/transitions.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { identity as linear, noop, run_all } from './utils.js';
22
import { loop } from './loop.js';
33
import { create_rule, delete_rule } from './style_manager.js';
4+
import { custom_event } from './dom.js';
45

56
let promise;
67

@@ -238,14 +239,14 @@ export function create_bidirectional_transition(node, fn, params, intro) {
238239
if (b) tick(0, 1);
239240

240241
running_program = init(program, duration);
241-
node.dispatchEvent(new window.CustomEvent(`${running_program.b ? 'intro' : 'outro'}start`));
242+
node.dispatchEvent(custom_event(`${running_program.b ? 'intro' : 'outro'}start`));
242243

243244
loop(now => {
244245
if (pending_program && now > pending_program.start) {
245246
running_program = init(pending_program, duration);
246247
pending_program = null;
247248

248-
node.dispatchEvent(new window.CustomEvent(`${running_program.b ? 'intro' : 'outro'}start`));
249+
node.dispatchEvent(custom_event(`${running_program.b ? 'intro' : 'outro'}start`));
249250

250251
if (css) {
251252
clear_animation();
@@ -256,7 +257,7 @@ export function create_bidirectional_transition(node, fn, params, intro) {
256257
if (running_program) {
257258
if (now >= running_program.end) {
258259
tick(t = running_program.b, 1 - t);
259-
node.dispatchEvent(new window.CustomEvent(`${running_program.b ? 'intro' : 'outro'}end`));
260+
node.dispatchEvent(custom_event(`${running_program.b ? 'intro' : 'outro'}end`));
260261

261262
if (!pending_program) {
262263
// we're done

0 commit comments

Comments
 (0)