Skip to content

Commit f8d69e2

Browse files
committed
replace <svelte:document> with <svelte:body> (sveltejs#1846)
1 parent 88b6a26 commit f8d69e2

File tree

9 files changed

+26
-26
lines changed

9 files changed

+26
-26
lines changed

src/compile/nodes/Document.ts src/compile/nodes/Body.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import Node from './shared/Node';
22
import EventHandler from './EventHandler';
33

4-
export default class Document extends Node {
5-
type: 'Document';
4+
export default class Body extends Node {
5+
type: 'Body';
66
handlers: EventHandler[];
77

88
constructor(component, parent, scope, info) {

src/compile/nodes/shared/mapChildren.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import AwaitBlock from '../AwaitBlock';
2+
import Body from '../Body';
23
import Comment from '../Comment';
3-
import Document from '../Document';
44
import EachBlock from '../EachBlock';
55
import Element from '../Element';
66
import Head from '../Head';
@@ -19,8 +19,8 @@ import Node from './Node';
1919
function getConstructor(type): typeof Node {
2020
switch (type) {
2121
case 'AwaitBlock': return AwaitBlock;
22+
case 'Body': return Body;
2223
case 'Comment': return Comment;
23-
case 'Document': return Document;
2424
case 'EachBlock': return EachBlock;
2525
case 'Element': return Element;
2626
case 'Head': return Head;
@@ -50,4 +50,4 @@ export default function mapChildren(component, parent, scope, children: any[]) {
5050

5151
return node;
5252
});
53-
}
53+
}
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
import Block from '../Block';
22
import Wrapper from './shared/Wrapper';
33
import deindent from '../../../utils/deindent';
4-
import Document from '../../nodes/Document';
4+
import Body from '../../nodes/Body';
55

6-
export default class DocumentWrapper extends Wrapper {
7-
node: Document;
6+
export default class BodyWrapper extends Wrapper {
7+
node: Body;
88

99
render(block: Block, parentNode: string, parentNodes: string) {
1010
this.node.handlers.forEach(handler => {
1111
const snippet = handler.render(block);
1212

1313
block.builders.init.addBlock(deindent`
14-
document.addEventListener("${handler.name}", ${snippet});
14+
document.body.addEventListener("${handler.name}", ${snippet});
1515
`);
1616

1717
block.builders.destroy.addBlock(deindent`
18-
document.removeEventListener("${handler.name}", ${snippet});
18+
document.body.removeEventListener("${handler.name}", ${snippet});
1919
`);
2020
});
2121
}
22-
}
22+
}

src/compile/render-dom/wrappers/Fragment.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Wrapper from './shared/Wrapper';
22
import AwaitBlock from './AwaitBlock';
3+
import Body from './Body';
34
import DebugTag from './DebugTag';
4-
import Document from './Document';
55
import EachBlock from './EachBlock';
66
import Element from './Element';
77
import Head from './Head';
@@ -21,8 +21,8 @@ import Block from '../Block';
2121

2222
const wrappers = {
2323
AwaitBlock,
24+
Body,
2425
Comment: null,
25-
Document,
2626
DebugTag,
2727
EachBlock,
2828
Element,
@@ -140,4 +140,4 @@ export default class FragmentWrapper {
140140
this.nodes[i].render(block, parentNode, parentNodes);
141141
}
142142
}
143-
}
143+
}

src/compile/render-ssr/Renderer.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ function noop(){}
1919

2020
const handlers: Record<string, Handler> = {
2121
AwaitBlock,
22+
Body: noop,
2223
Comment,
2324
DebugTag,
24-
Document: noop,
2525
EachBlock,
2626
Element,
2727
Head,
@@ -64,4 +64,4 @@ export default class Renderer {
6464
handler(node, this, options);
6565
});
6666
}
67-
}
67+
}

src/parse/state/tag.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const metaTags = new Map([
1414
['svelte:head', 'Head'],
1515
['svelte:meta', 'Meta'],
1616
['svelte:window', 'Window'],
17-
['svelte:document', 'Document']
17+
['svelte:body', 'Body']
1818
]);
1919

2020
const valid_meta_tags = [...metaTags.keys(), 'svelte:self', 'svelte:component'];
@@ -101,7 +101,7 @@ export default function tag(parser: Parser) {
101101
const slug = metaTags.get(name).toLowerCase();
102102
if (isClosingTag) {
103103
if (
104-
(name === 'svelte:window' || name === 'svelte:document') &&
104+
(name === 'svelte:window' || name === 'svelte:body') &&
105105
parser.current().children.length
106106
) {
107107
parser.error({
@@ -540,4 +540,4 @@ function readSequence(parser: Parser, done: () => boolean) {
540540
code: `unexpected-eof`,
541541
message: `Unexpected end of input`
542542
});
543-
}
543+
}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"code": "invalid-tag-name",
3-
"message": "Valid <svelte:...> tag names are svelte:head, svelte:meta, svelte:window, svelte:document, svelte:self or svelte:component",
3+
"message": "Valid <svelte:...> tag names are svelte:head, svelte:meta, svelte:window, svelte:body, svelte:self or svelte:component",
44
"pos": 10,
55
"start": {
66
"character": 10,
77
"line": 2,
88
"column": 2
99
}
10-
}
10+
}
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
export default {
2-
test({ assert, component, target, window }) {
2+
test({ assert, component, window }) {
33
assert.deepEqual(component.events, []);
44

55
const event1 = new window.Event('mouseenter');
6-
window.document.dispatchEvent(event1);
6+
window.document.body.dispatchEvent(event1);
77
assert.deepEqual(component.events, ['enter']);
88

99
const event2 = new window.Event('mouseleave');
10-
window.document.dispatchEvent(event2);
10+
window.document.body.dispatchEvent(event2);
1111
assert.deepEqual(component.events, ['enter', 'leave']);
1212
},
13-
};
13+
};

test/runtime/samples/document-event/main.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
}
77
</script>
88

9-
<svelte:document on:mouseenter='{() => log("enter")}' on:mouseleave='{() => log("leave")}'/>
9+
<svelte:body on:mouseenter='{() => log("enter")}' on:mouseleave='{() => log("leave")}'/>

0 commit comments

Comments
 (0)