diff --git a/generate-type-definitions.js b/generate-type-definitions.js
index d8f6e9f826ed..6ec2f313c337 100644
--- a/generate-type-definitions.js
+++ b/generate-type-definitions.js
@@ -3,8 +3,12 @@
const { execSync } = require('child_process');
const { readFileSync, writeFileSync } = require('fs');
-execSync('tsc -p src/compiler --emitDeclarationOnly && tsc -p src/runtime --emitDeclarationOnly');
-
+try {
+ execSync('tsc -p src/compiler --emitDeclarationOnly && tsc -p src/runtime --emitDeclarationOnly');
+} catch (err) {
+ console.error(err.stderr.toString());
+ throw err;
+}
// We need to add these types to the .d.ts files here because if we add them before building, the build will fail,
// because the TS->JS transformation doesn't know these exports are types and produces code that fails at runtime.
// We can't use `export type` syntax either because the TS version we're on doesn't have this feature yet.
diff --git a/src/runtime/transition/index.ts b/src/runtime/transition/index.ts
index 5940d054d352..c6d9dbc97afb 100644
--- a/src/runtime/transition/index.ts
+++ b/src/runtime/transition/index.ts
@@ -198,7 +198,7 @@ export function draw(node: SVGElement & { getTotalLength(): number }, {
delay,
duration,
easing,
- css: (t, u) => `
+ css: (_, u) => `
stroke-dasharray: ${len};
stroke-dashoffset: ${u * len};
`
diff --git a/test/js/samples/svelte-element-event-handlers/expected.js b/test/js/samples/svelte-element-event-handlers/expected.js
index b9e648aadced..ab24f2e92427 100644
--- a/test/js/samples/svelte-element-event-handlers/expected.js
+++ b/test/js/samples/svelte-element-event-handlers/expected.js
@@ -39,16 +39,16 @@ function create_dynamic_element(ctx) {
return {
c() {
- svelte_element1 = element("a");
- svelte_element0 = element("span");
+ svelte_element1 = element(a);
+ svelte_element0 = element(span);
- if ((/-/).test("span")) {
+ if ((/-/).test(span)) {
set_custom_element_data_map(svelte_element0, svelte_element0_data);
} else {
set_attributes(svelte_element0, svelte_element0_data);
}
- if ((/-/).test("a")) {
+ if ((/-/).test(a)) {
set_custom_element_data_map(svelte_element1, svelte_element1_data);
} else {
set_attributes(svelte_element1, svelte_element1_data);
@@ -72,7 +72,7 @@ function create_dynamic_element(ctx) {
p(ctx, dirty) {
svelte_element0_data = get_spread_update(svelte_element0_levels, [{ class: "inner" }]);
- if ((/-/).test("span")) {
+ if ((/-/).test(span)) {
set_custom_element_data_map(svelte_element0, svelte_element0_data);
} else {
set_attributes(svelte_element0, svelte_element0_data);
@@ -80,7 +80,7 @@ function create_dynamic_element(ctx) {
svelte_element1_data = get_spread_update(svelte_element1_levels, [{ class: "outer" }]);
- if ((/-/).test("a")) {
+ if ((/-/).test(a)) {
set_custom_element_data_map(svelte_element1, svelte_element1_data);
} else {
set_attributes(svelte_element1, svelte_element1_data);
@@ -95,9 +95,9 @@ function create_dynamic_element(ctx) {
}
function create_fragment(ctx) {
- let previous_tag = "a";
+ let previous_tag = a;
let svelte_element_anchor;
- let svelte_element = "a" && create_dynamic_element(ctx);
+ let svelte_element = a && create_dynamic_element(ctx);
return {
c() {
@@ -109,12 +109,12 @@ function create_fragment(ctx) {
insert(target, svelte_element_anchor, anchor);
},
p(ctx, [dirty]) {
- if ("a") {
+ if (a) {
if (!previous_tag) {
svelte_element = create_dynamic_element(ctx);
svelte_element.c();
svelte_element.m(svelte_element_anchor.parentNode, svelte_element_anchor);
- } else if (safe_not_equal(previous_tag, "a")) {
+ } else if (safe_not_equal(previous_tag, a)) {
svelte_element.d(1);
svelte_element = create_dynamic_element(ctx);
svelte_element.c();
@@ -127,7 +127,7 @@ function create_fragment(ctx) {
svelte_element = null;
}
- previous_tag = "a";
+ previous_tag = a;
},
i: noop,
o: noop,
@@ -138,6 +138,9 @@ function create_fragment(ctx) {
};
}
+const a = 'a';
+const span = 'span';
+
function instance($$self) {
function keydown_handler(event) {
bubble.call(this, $$self, event);
diff --git a/test/js/samples/svelte-element-event-handlers/input.svelte b/test/js/samples/svelte-element-event-handlers/input.svelte
index bb0b7b57a9cb..3a7b0f980084 100644
--- a/test/js/samples/svelte-element-event-handlers/input.svelte
+++ b/test/js/samples/svelte-element-event-handlers/input.svelte
@@ -1,3 +1,8 @@
-
-
-
\ No newline at end of file
+
+
+
+
+
diff --git a/test/js/samples/svelte-element-static/expected.js b/test/js/samples/svelte-element-static/expected.js
new file mode 100644
index 000000000000..68d895db3ccf
--- /dev/null
+++ b/test/js/samples/svelte-element-static/expected.js
@@ -0,0 +1,41 @@
+/* generated by Svelte vX.Y.Z */
+import {
+ SvelteComponent,
+ attr,
+ detach,
+ element,
+ init,
+ insert,
+ noop,
+ safe_not_equal
+} from "svelte/internal";
+
+function create_fragment(ctx) {
+ let a;
+
+ return {
+ c() {
+ a = element("a");
+ a.innerHTML = ``;
+ attr(a, "class", "outer");
+ },
+ m(target, anchor) {
+ insert(target, a, anchor);
+ },
+ p: noop,
+ i: noop,
+ o: noop,
+ d(detaching) {
+ if (detaching) detach(a);
+ }
+ };
+}
+
+class Component extends SvelteComponent {
+ constructor(options) {
+ super();
+ init(this, options, null, create_fragment, safe_not_equal, {});
+ }
+}
+
+export default Component;
\ No newline at end of file
diff --git a/test/js/samples/svelte-element-static/input.svelte b/test/js/samples/svelte-element-static/input.svelte
new file mode 100644
index 000000000000..4893d49847a4
--- /dev/null
+++ b/test/js/samples/svelte-element-static/input.svelte
@@ -0,0 +1,3 @@
+
+
+