diff --git a/src/compiler/compile/render_dom/Block.ts b/src/compiler/compile/render_dom/Block.ts
index f73212f3ba..b268954dd0 100644
--- a/src/compiler/compile/render_dom/Block.ts
+++ b/src/compiler/compile/render_dom/Block.ts
@@ -146,11 +146,13 @@ export default class Block {
if (!wrapper.var) continue;
+ let suffix = '';
if (dupes.has(wrapper.var.name)) {
const i = counts.get(wrapper.var.name) || 0;
counts.set(wrapper.var.name, i + 1);
- wrapper.var.name = this.get_unique_name(wrapper.var.name + i).name;
+ suffix = i;
}
+ wrapper.var.name = this.get_unique_name(wrapper.var.name + suffix).name;
}
}
diff --git a/test/js/samples/debug-no-dependencies/expected.js b/test/js/samples/debug-no-dependencies/expected.js
index 2212f3e0bb..57a67e9ea9 100644
--- a/test/js/samples/debug-no-dependencies/expected.js
+++ b/test/js/samples/debug-no-dependencies/expected.js
@@ -60,7 +60,7 @@ function create_each_block(ctx) {
}
function create_fragment(ctx) {
- let each_anchor;
+ let each_1_anchor;
let each_value = things;
let each_blocks = [];
@@ -74,7 +74,7 @@ function create_fragment(ctx) {
each_blocks[i].c();
}
- each_anchor = empty();
+ each_1_anchor = empty();
},
l: function claim(nodes) {
throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
@@ -84,7 +84,7 @@ function create_fragment(ctx) {
each_blocks[i].m(target, anchor);
}
- insert_dev(target, each_anchor, anchor);
+ insert_dev(target, each_1_anchor, anchor);
},
p: function update(changed, ctx) {
if (changed.things) {
@@ -99,7 +99,7 @@ function create_fragment(ctx) {
} else {
each_blocks[i] = create_each_block(child_ctx);
each_blocks[i].c();
- each_blocks[i].m(each_anchor.parentNode, each_anchor);
+ each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor);
}
}
@@ -114,7 +114,7 @@ function create_fragment(ctx) {
o: noop,
d: function destroy(detaching) {
destroy_each(each_blocks, detaching);
- if (detaching) detach_dev(each_anchor);
+ if (detaching) detach_dev(each_1_anchor);
}
};
diff --git a/test/js/samples/deconflict-builtins/expected.js b/test/js/samples/deconflict-builtins/expected.js
index 222d473201..194188ad4e 100644
--- a/test/js/samples/deconflict-builtins/expected.js
+++ b/test/js/samples/deconflict-builtins/expected.js
@@ -43,7 +43,7 @@ function create_each_block(ctx) {
}
function create_fragment(ctx) {
- let each_anchor;
+ let each_1_anchor;
let each_value = ctx.createElement;
let each_blocks = [];
@@ -57,14 +57,14 @@ function create_fragment(ctx) {
each_blocks[i].c();
}
- each_anchor = empty();
+ each_1_anchor = empty();
},
m(target, anchor) {
for (let i = 0; i < each_blocks.length; i += 1) {
each_blocks[i].m(target, anchor);
}
- insert(target, each_anchor, anchor);
+ insert(target, each_1_anchor, anchor);
},
p(changed, ctx) {
if (changed.createElement) {
@@ -79,7 +79,7 @@ function create_fragment(ctx) {
} else {
each_blocks[i] = create_each_block(child_ctx);
each_blocks[i].c();
- each_blocks[i].m(each_anchor.parentNode, each_anchor);
+ each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor);
}
}
@@ -94,7 +94,7 @@ function create_fragment(ctx) {
o: noop,
d(detaching) {
destroy_each(each_blocks, detaching);
- if (detaching) detach(each_anchor);
+ if (detaching) detach(each_1_anchor);
}
};
}
diff --git a/test/js/samples/each-block-array-literal/expected.js b/test/js/samples/each-block-array-literal/expected.js
index 2eb1d903de..cd8e8b97c2 100644
--- a/test/js/samples/each-block-array-literal/expected.js
+++ b/test/js/samples/each-block-array-literal/expected.js
@@ -43,7 +43,7 @@ function create_each_block(ctx) {
}
function create_fragment(ctx) {
- let each_anchor;
+ let each_1_anchor;
let each_value = [ctx.a, ctx.b, ctx.c, ctx.d, ctx.e];
let each_blocks = [];
@@ -57,14 +57,14 @@ function create_fragment(ctx) {
each_blocks[i].c();
}
- each_anchor = empty();
+ each_1_anchor = empty();
},
m(target, anchor) {
for (let i = 0; i < 5; i += 1) {
each_blocks[i].m(target, anchor);
}
- insert(target, each_anchor, anchor);
+ insert(target, each_1_anchor, anchor);
},
p(changed, ctx) {
if (changed.a || changed.b || changed.c || changed.d || changed.e) {
@@ -79,7 +79,7 @@ function create_fragment(ctx) {
} else {
each_blocks[i] = create_each_block(child_ctx);
each_blocks[i].c();
- each_blocks[i].m(each_anchor.parentNode, each_anchor);
+ each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor);
}
}
@@ -92,7 +92,7 @@ function create_fragment(ctx) {
o: noop,
d(detaching) {
destroy_each(each_blocks, detaching);
- if (detaching) detach(each_anchor);
+ if (detaching) detach(each_1_anchor);
}
};
}
diff --git a/test/js/samples/each-block-keyed-animated/expected.js b/test/js/samples/each-block-keyed-animated/expected.js
index e2e8357805..02022d7d67 100644
--- a/test/js/samples/each-block-keyed-animated/expected.js
+++ b/test/js/samples/each-block-keyed-animated/expected.js
@@ -63,15 +63,15 @@ function create_each_block(key_1, ctx) {
function create_fragment(ctx) {
let each_blocks = [];
- let each_lookup = new Map();
- let each_anchor;
+ let each_1_lookup = new Map();
+ let each_1_anchor;
let each_value = ctx.things;
const get_key = ctx => ctx.thing.id;
for (let i = 0; i < each_value.length; i += 1) {
let child_ctx = get_each_context(ctx, each_value, i);
let key = get_key(child_ctx);
- each_lookup.set(key, each_blocks[i] = create_each_block(key, child_ctx));
+ each_1_lookup.set(key, each_blocks[i] = create_each_block(key, child_ctx));
}
return {
@@ -80,19 +80,19 @@ function create_fragment(ctx) {
each_blocks[i].c();
}
- each_anchor = empty();
+ each_1_anchor = empty();
},
m(target, anchor) {
for (let i = 0; i < each_blocks.length; i += 1) {
each_blocks[i].m(target, anchor);
}
- insert(target, each_anchor, anchor);
+ insert(target, each_1_anchor, anchor);
},
p(changed, ctx) {
const each_value = ctx.things;
for (let i = 0; i < each_blocks.length; i += 1) each_blocks[i].r();
- each_blocks = update_keyed_each(each_blocks, changed, get_key, 1, ctx, each_value, each_lookup, each_anchor.parentNode, fix_and_destroy_block, create_each_block, each_anchor, get_each_context);
+ each_blocks = update_keyed_each(each_blocks, changed, get_key, 1, ctx, each_value, each_1_lookup, each_1_anchor.parentNode, fix_and_destroy_block, create_each_block, each_1_anchor, get_each_context);
for (let i = 0; i < each_blocks.length; i += 1) each_blocks[i].a();
},
i: noop,
@@ -102,7 +102,7 @@ function create_fragment(ctx) {
each_blocks[i].d(detaching);
}
- if (detaching) detach(each_anchor);
+ if (detaching) detach(each_1_anchor);
}
};
}
diff --git a/test/js/samples/each-block-keyed/expected.js b/test/js/samples/each-block-keyed/expected.js
index 5e149826b8..050c499e01 100644
--- a/test/js/samples/each-block-keyed/expected.js
+++ b/test/js/samples/each-block-keyed/expected.js
@@ -48,15 +48,15 @@ function create_each_block(key_1, ctx) {
function create_fragment(ctx) {
let each_blocks = [];
- let each_lookup = new Map();
- let each_anchor;
+ let each_1_lookup = new Map();
+ let each_1_anchor;
let each_value = ctx.things;
const get_key = ctx => ctx.thing.id;
for (let i = 0; i < each_value.length; i += 1) {
let child_ctx = get_each_context(ctx, each_value, i);
let key = get_key(child_ctx);
- each_lookup.set(key, each_blocks[i] = create_each_block(key, child_ctx));
+ each_1_lookup.set(key, each_blocks[i] = create_each_block(key, child_ctx));
}
return {
@@ -65,18 +65,18 @@ function create_fragment(ctx) {
each_blocks[i].c();
}
- each_anchor = empty();
+ each_1_anchor = empty();
},
m(target, anchor) {
for (let i = 0; i < each_blocks.length; i += 1) {
each_blocks[i].m(target, anchor);
}
- insert(target, each_anchor, anchor);
+ insert(target, each_1_anchor, anchor);
},
p(changed, ctx) {
const each_value = ctx.things;
- each_blocks = update_keyed_each(each_blocks, changed, get_key, 1, ctx, each_value, each_lookup, each_anchor.parentNode, destroy_block, create_each_block, each_anchor, get_each_context);
+ each_blocks = update_keyed_each(each_blocks, changed, get_key, 1, ctx, each_value, each_1_lookup, each_1_anchor.parentNode, destroy_block, create_each_block, each_1_anchor, get_each_context);
},
i: noop,
o: noop,
@@ -85,7 +85,7 @@ function create_fragment(ctx) {
each_blocks[i].d(detaching);
}
- if (detaching) detach(each_anchor);
+ if (detaching) detach(each_1_anchor);
}
};
}
diff --git a/test/runtime/samples/deconflict-builtins-2/_config.js b/test/runtime/samples/deconflict-builtins-2/_config.js
new file mode 100644
index 0000000000..5870ff073b
--- /dev/null
+++ b/test/runtime/samples/deconflict-builtins-2/_config.js
@@ -0,0 +1,4 @@
+export default {
+ html: `hello world`,
+ preserveIdentifiers: true,
+};
\ No newline at end of file
diff --git a/test/runtime/samples/deconflict-builtins-2/main.svelte b/test/runtime/samples/deconflict-builtins-2/main.svelte
new file mode 100644
index 0000000000..82f9213045
--- /dev/null
+++ b/test/runtime/samples/deconflict-builtins-2/main.svelte
@@ -0,0 +1,5 @@
+
+
+{foo}
\ No newline at end of file