Skip to content

Commit 64094f6

Browse files
committed
set data- attributes like regular attributes (sveltejs#3337)
1 parent d6ca507 commit 64094f6

File tree

3 files changed

+6
-17
lines changed

3 files changed

+6
-17
lines changed

src/compiler/compile/render_dom/wrappers/Element/Attribute.ts

+1-13
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,6 @@ export default class AttributeWrapper {
7070

7171
const is_legacy_input_type = element.renderer.component.compile_options.legacy && name === 'type' && this.parent.node.name === 'input';
7272

73-
const is_dataset = /^data-/.test(name) && !element.renderer.component.compile_options.legacy && !element.node.namespace;
74-
const camel_case_name = is_dataset ? name.replace('data-', '').replace(/(-\w)/g, (m) => {
75-
return m[1].toUpperCase();
76-
}) : name;
77-
7873
if (this.node.is_dynamic) {
7974
let value;
8075

@@ -145,11 +140,6 @@ export default class AttributeWrapper {
145140
`${element.var}.${property_name} = ${init};`
146141
);
147142
updater = `${element.var}.${property_name} = ${should_cache ? last : value};`;
148-
} else if (is_dataset) {
149-
block.builders.hydrate.add_line(
150-
`${element.var}.dataset.${camel_case_name} = ${init};`
151-
);
152-
updater = `${element.var}.dataset.${camel_case_name} = ${should_cache ? last : value};`;
153143
} else {
154144
block.builders.hydrate.add_line(
155145
`${method}(${element.var}, "${name}", ${init});`
@@ -184,9 +174,7 @@ export default class AttributeWrapper {
184174
? `@set_input_type(${element.var}, ${value});`
185175
: property_name
186176
? `${element.var}.${property_name} = ${value};`
187-
: is_dataset
188-
? `${element.var}.dataset.${camel_case_name} = ${value === true ? '""' : value};`
189-
: `${method}(${element.var}, "${name}", ${value === true ? '""' : value});`
177+
: `${method}(${element.var}, "${name}", ${value === true ? '""' : value});`
190178
);
191179

192180
block.builders.hydrate.add_line(statement);

test/js/samples/bind-open/expected.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,4 @@ class Component extends SvelteComponent {
6666
}
6767
}
6868

69-
export default Component;
69+
export default Component;

test/js/samples/do-use-dataset/expected.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/* generated by Svelte vX.Y.Z */
22
import {
33
SvelteComponent,
4+
attr,
45
detach,
56
element,
67
init,
@@ -18,8 +19,8 @@ function create_fragment(ctx) {
1819
div0 = element("div");
1920
t = space();
2021
div1 = element("div");
21-
div0.dataset.foo = "bar";
22-
div1.dataset.foo = ctx.bar;
22+
attr(div0, "data-foo", "bar");
23+
attr(div1, "data-foo", ctx.bar);
2324
},
2425

2526
m(target, anchor) {
@@ -30,7 +31,7 @@ function create_fragment(ctx) {
3031

3132
p(changed, ctx) {
3233
if (changed.bar) {
33-
div1.dataset.foo = ctx.bar;
34+
attr(div1, "data-foo", ctx.bar);
3435
}
3536
},
3637

0 commit comments

Comments
 (0)