Merge branch 'master' into silence-warnings

pull/6504/head
Simon H 5 years ago committed by GitHub
commit bf9e7a24cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

5
.github/stale.yml vendored

@ -8,6 +8,7 @@ exemptLabels:
- popular
- pinned
- security
- bug
- "[Status] Maybe Later"
# Set to true to ignore issues in a project (defaults to false)
@ -31,7 +32,7 @@ limitPerRun: 30
# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls':
pulls:
daysUntilStale: 180
daysUntilStale: 210
daysUntilClose: 25
markComment: >
This pull request has been automatically marked as stale because it has not had
@ -41,7 +42,7 @@ pulls:
This pull request has been closed as it was previously marked as stale and saw no subsequent activity.
issues:
daysUntilStale: 90
daysUntilStale: 180
daysUntilClose: 14
markComment: >
This issue has been automatically marked as stale because it has not had

@ -9,37 +9,24 @@ jobs:
node-version: [8, 10, 12, 14]
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- id: npm-cache-dir
run: echo "::set-output name=dir::$(npm config get cache)"
- uses: actions/cache@v2
id: npm-cache
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-node-
- run: npm install
- run: npm test
env:
CI: true
- uses: actions/checkout@v1
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: npm
- run: npm install
- run: npm test
env:
CI: true
Lint:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
- id: npm-cache-dir
run: echo "::set-output name=dir::$(npm config get cache)"
- uses: actions/cache@v2
id: npm-cache
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-node-
- run: 'npm i && npm run lint'
- uses: actions/checkout@v1
- uses: actions/setup-node@v2
with:
cache: npm
- run: 'npm i && npm run lint'
Unit:
runs-on: ${{ matrix.os }}
timeout-minutes: 10
@ -47,14 +34,8 @@ jobs:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
- id: npm-cache-dir
run: echo "::set-output name=dir::$(npm config get cache)"
- uses: actions/cache@v2
id: npm-cache
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-node-
- run: 'npm i && npm run test:unit'
- uses: actions/checkout@v1
- uses: actions/setup-node@v2
with:
cache: npm
- run: 'npm i && npm run test:unit'

@ -12,9 +12,14 @@
* Fix compiler error when using `:where()` inside `:global()` ([#6434](https://github.com/sveltejs/svelte/issues/6434))
* Fix erroneous `unknown prop` warning when using slot on a component ([#6065](https://github.com/sveltejs/svelte/pull/6065))
* Fix `:global()` with pseudo element not being seen as global ([#6470](https://github.com/sveltejs/svelte/pull/6470))
* Allow `:global()` to contain multiple selectors when it is not part of a larger selector ([#6477](https://github.com/sveltejs/svelte/issues/6477))
* Add a11y warning `a11y-mouse-events-have-key-events` which checks that `mouseover`/`mouseout` are accompanied by `focus`/`blur` event handlers ([#5938](https://github.com/sveltejs/svelte/pull/5938))
* Remove deprecated a11y warning `a11y-no-onchange warning` ([#6457](https://github.com/sveltejs/svelte/issues/6457))
* Stop checking `a11y-media-has-caption` a11y warning on `<audio>` elements ([#6054](https://github.com/sveltejs/svelte/issues/6054))
* Relax `derived` function signature ([#6178](https://github.com/sveltejs/svelte/issues/6178))
* Support `bind:group` in SSR ([#4621](https://github.com/sveltejs/svelte/pull/4621))
* Add sourcemaps to html elements ([#6427](https://github.com/sveltejs/svelte/pull/6427))
* Make `<script>` and `<style>` end tag parsing more robust ([#6511](https://github.com/sveltejs/svelte/pull/6511))
* Make it possible to silence more warnings ([#5954](https://github.com/sveltejs/svelte/issues/5954))
## 3.38.3

59
package-lock.json generated

@ -479,9 +479,9 @@
"dev": true
},
"acorn": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz",
"integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==",
"version": "8.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz",
"integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==",
"dev": true
},
"acorn-globals": {
@ -947,31 +947,32 @@
}
},
"code-red": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/code-red/-/code-red-0.1.4.tgz",
"integrity": "sha512-NPiLFd1EfonYONCNXCH1oVirQMXk5oAOQ3FanRbjB4HZ09rTU/lZGKjVOOP0FKr4pccGVYE5I4CqtyU6ens2VA==",
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/code-red/-/code-red-0.2.1.tgz",
"integrity": "sha512-qn8UyXkRqHJnWkrgc5AGDjkgoqlK5BtelIykSCl89HOV/HMtVxZw2GTwD2A7uMbLgGmch4/KyJX+mcWuPpqCtg==",
"dev": true,
"requires": {
"acorn": "^7.3.1",
"is-reference": "^1.1.4",
"@types/estree": "^0.0.45",
"acorn": "^8.0.5",
"estree-walker": "^0.9.0",
"is-reference": "^2.0.0",
"periscopic": "^2.0.1",
"sourcemap-codec": "^1.4.6"
"sourcemap-codec": "^1.4.8"
},
"dependencies": {
"estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.9.0.tgz",
"integrity": "sha512-12U47o7XHUX329+x3FzNVjCx3SHEzMF0nkDv7r/HnBzX/xNTKxajBk6gyygaxrAFtLj39219oMfbtxv4KpaOiA==",
"dev": true
},
"periscopic": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/periscopic/-/periscopic-2.0.3.tgz",
"integrity": "sha512-FuCZe61mWxQOJAQFEfmt9FjzebRlcpFz8sFPbyaCKtdusPkMEbA9ey0eARnRav5zAhmXznhaQkKGFAPn7X9NUw==",
"is-reference": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-2.0.0.tgz",
"integrity": "sha512-kgaeJVq59jasPrhlGK/K61muTjLxMOZf4oMwI4X94nDWqkqLxDWVWrecCSP5c6OR8JF7Yul0X7h59lB1ho0epQ==",
"dev": true,
"requires": {
"estree-walker": "^2.0.2",
"is-reference": "^1.1.4"
"@types/estree": "*"
}
}
}
@ -1867,6 +1868,12 @@
"eslint-visitor-keys": "^1.3.0"
},
"dependencies": {
"acorn": {
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true
},
"eslint-visitor-keys": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
@ -2725,6 +2732,14 @@
"whatwg-url": "^7.0.0",
"ws": "^7.0.0",
"xml-name-validator": "^3.0.0"
},
"dependencies": {
"acorn": {
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true
}
}
},
"json-parse-better-errors": {
@ -3847,6 +3862,14 @@
"@types/estree": "*",
"@types/node": "*",
"acorn": "^7.1.0"
},
"dependencies": {
"acorn": {
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true
}
}
},
"rollup-plugin-virtual": {

@ -112,10 +112,10 @@
"@types/node": "^8.10.53",
"@typescript-eslint/eslint-plugin": "^4.9.0",
"@typescript-eslint/parser": "^4.9.0",
"acorn": "^7.4.0",
"acorn": "^8.4.1",
"agadoo": "^1.1.0",
"c8": "^5.0.1",
"code-red": "^0.1.4",
"code-red": "^0.2.1",
"codecov": "^3.5.0",
"css-tree": "^1.1.2",
"eslint": "^7.15.0",

@ -177,7 +177,7 @@ If a statement consists entirely of an assignment to an undeclared variable, Sve
A *store* is an object that allows reactive access to a value via a simple *store contract*. The [`svelte/store` module](docs#svelte_store) contains minimal store implementations which fulfil this contract.
Any time you have a reference to a store, you can access its value inside a component by prefixing it with the `$` character. This causes Svelte to declare the prefixed variable, and set up a store subscription that will be unsubscribed when appropriate.
Any time you have a reference to a store, you can access its value inside a component by prefixing it with the `$` character. This causes Svelte to declare the prefixed variable, subscribe to the store at component initialization and unsubscribe when appropriate.
Assignments to `$`-prefixed variables require that the variable be a writable store, and will result in a call to the store's `.set` method.
@ -321,4 +321,4 @@ In that case, the `<style>` tag will be inserted as-is into the DOM, no scoping
}
</style>
</div>
```
```

@ -136,11 +136,14 @@ An element or component can have multiple spread attributes, interspersed with r
Text can also contain JavaScript expressions:
> If you're using a regular expression (`RegExp`) [literal notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#literal_notation_and_constructor), you'll need to wrap it in parentheses.
```sv
<h1>Hello {name}!</h1>
<p>{a} + {b} = {a + b}.</p>
```
<div>{(/^[A-Za-z ]+$/).test(value) ? x : y}</div>
```
### Comments

@ -38,9 +38,9 @@
<div class="chart" bind:clientWidth={width} bind:clientHeight={height}>
<svg>
<!-- y axis -->
<g class="axis y-axis" transform="translate(0,{padding.top})">
<g class="axis y-axis">
{#each yTicks as tick}
<g class="tick tick-{tick}" transform="translate(0, {yScale(tick) - padding.bottom})">
<g class="tick tick-{tick}" transform="translate(0, {yScale(tick)})">
<line x2="100%"></line>
<text y="-4">{tick} {tick === 20 ? ' per 1,000 population' : ''}</text>
</g>
@ -62,7 +62,7 @@
x="{xScale(i) + 2}"
y="{yScale(point.birthrate)}"
width="{barWidth - 4}"
height="{height - padding.bottom - yScale(point.birthrate)}"
height="{yScale(0) - yScale(point.birthrate)}"
></rect>
{/each}
</g>
@ -115,4 +115,4 @@
stroke: none;
opacity: 0.65;
}
</style>
</style>

@ -1,5 +1,3 @@
<svelte:options immutable/>
<script>
import ImmutableTodo from './ImmutableTodo.svelte';
import MutableTodo from './MutableTodo.svelte';

@ -142,6 +142,15 @@ export default class Selector {
}
}
this.validate_global_with_multiple_selectors(component);
}
validate_global_with_multiple_selectors(component: Component) {
if (this.blocks.length === 1 && this.blocks[0].selectors.length === 1) {
// standalone :global() with multiple selectors is OK
return;
}
for (const block of this.blocks) {
for (const selector of block.selectors) {
if (selector.type === 'PseudoClassSelector' && selector.name === 'global') {
@ -536,11 +545,11 @@ function has_definite_elements(result: Map<Element, NodeExist>): boolean {
function add_to_map(from: Map<Element, NodeExist>, to: Map<Element, NodeExist>) {
from.forEach((exist, element) => {
to.set(element, higher_existance(exist, to.get(element)));
to.set(element, higher_existence(exist, to.get(element)));
});
}
function higher_existance(exist1: NodeExist | null, exist2: NodeExist | null): NodeExist {
function higher_existence(exist1: NodeExist | null, exist2: NodeExist | null): NodeExist {
if (exist1 === undefined || exist2 === undefined) return exist1 || exist2;
return exist1 > exist2 ? exist1 : exist2;
}

@ -65,7 +65,7 @@ export default class Expression {
walk(info, {
enter(node: any, parent: any, key: string) {
// don't manipulate shorthand props twice
if (key === 'value' && parent.shorthand) return;
if (key === 'key' && parent.shorthand) return;
// don't manipulate `import.meta`, `new.target`
if (node.type === 'MetaProperty') return this.skip();

@ -3,7 +3,7 @@ import Component from '../Component';
import Renderer from './Renderer';
import { CompileOptions, CssResult } from '../../interfaces';
import { walk } from 'estree-walker';
import { extract_names, Scope } from '../utils/scope';
import { extract_names, Scope } from 'periscopic';
import { invalidate } from './invalidate';
import Block from './Block';
import { ClassDeclaration, FunctionExpression, Node, Statement, ObjectExpression, Expression } from 'estree';

@ -1,5 +1,5 @@
import { nodes_match } from '../../utils/nodes_match';
import { Scope } from '../utils/scope';
import { Scope } from 'periscopic';
import { x } from 'code-red';
import { Node, Expression } from 'estree';
import Renderer from './Renderer';
@ -52,7 +52,7 @@ export function invalidate(renderer: Renderer, scope: Scope, node: Node, names:
if (is_store_value) {
return x`@set_store_value(${head.name.slice(1)}, ${node}, ${head.name}, ${extra_args})`;
}
let invalidate;
if (!main_execution_context) {
const pass_value = (

@ -19,7 +19,7 @@ import { add_event_handler } from '../shared/add_event_handlers';
import { add_action } from '../shared/add_actions';
import bind_this from '../shared/bind_this';
import { is_head } from '../shared/is_head';
import { Identifier } from 'estree';
import { Identifier, ExpressionStatement, CallExpression } from 'estree';
import EventHandler from './EventHandler';
import { extract_names } from 'periscopic';
import Action from '../../../nodes/Action';
@ -263,15 +263,23 @@ export default class ElementWrapper extends Wrapper {
}
if (parent_node) {
block.chunks.mount.push(
b`@append(${parent_node}, ${node});`
);
const append = b`@append(${parent_node}, ${node});`;
((append[0] as ExpressionStatement).expression as CallExpression).callee.loc = {
start: this.renderer.locate(this.node.start),
end: this.renderer.locate(this.node.end)
};
block.chunks.mount.push(append);
if (is_head(parent_node)) {
block.chunks.destroy.push(b`@detach(${node});`);
}
} else {
block.chunks.mount.push(b`@insert(#target, ${node}, #anchor);`);
const insert = b`@insert(#target, ${node}, #anchor);`;
((insert[0] as ExpressionStatement).expression as CallExpression).callee.loc = {
start: this.renderer.locate(this.node.start),
end: this.renderer.locate(this.node.end)
};
block.chunks.mount.push(insert);
// TODO we eventually need to consider what happens to elements
// that belong to the same outgroup as an outroing element...

@ -344,7 +344,7 @@ export default class InlineComponentWrapper extends Wrapper {
contextual_dependencies.push(object.name, property.name);
}
const params = [x`#value`];
const params: Identifier[] = [x`#value` as Identifier];
const args = [x`#value`];
if (contextual_dependencies.length > 0) {

@ -44,10 +44,19 @@ export default class TextWrapper extends Wrapper {
if (this.skip) return;
const use_space = this.use_space();
const string_literal = {
type: 'Literal',
value: this.data,
loc: {
start: this.renderer.locate(this.node.start),
end: this.renderer.locate(this.node.end)
}
};
block.add_element(
this.var,
use_space ? x`@space()` : x`@text("${this.data}")`,
parent_nodes && (use_space ? x`@claim_space(${parent_nodes})` : x`@claim_text(${parent_nodes}, "${this.data}")`),
use_space ? x`@space()` : x`@text(${string_literal})`,
parent_nodes && (use_space ? x`@claim_space(${parent_nodes})` : x`@claim_text(${parent_nodes}, ${string_literal})`),
parent_node as Identifier
);
}

@ -1,5 +1,5 @@
import { is_void } from '../../../utils/names';
import { get_attribute_value, get_class_attribute_value } from './shared/get_attribute_value';
import { get_attribute_expression, get_attribute_value, get_class_attribute_value } from './shared/get_attribute_value';
import { boolean_attributes } from './shared/boolean_attributes';
import Renderer, { RenderOptions } from '../Renderer';
import Element from '../../nodes/Element';
@ -110,7 +110,14 @@ export default function(node: Element, renderer: Renderer, options: RenderOption
}
if (name === 'group') {
// TODO server-render group bindings
const value_attribute = node.attributes.find(({ name }) => name === 'value');
if (value_attribute) {
const value = get_attribute_expression(value_attribute);
const type = node.get_static_attribute_value('type');
const bound = expression.node;
const condition = type === 'checkbox' ? x`~${bound}.indexOf(${value})`: x`${value} === ${bound}`;
renderer.add_expression(x`${condition} ? @add_attribute("checked", true, 1) : ""`);
}
} else if (contenteditable && (name === 'textContent' || name === 'innerHTML')) {
node_contents = expression.node;

@ -26,3 +26,10 @@ export function get_attribute_value(attribute: Attribute): ESTreeExpression {
})
.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);
}
export function get_attribute_expression(attribute: Attribute): ESTreeExpression {
if (attribute.chunks.length === 1 && attribute.chunks[0].type === 'Expression') {
return (attribute.chunks[0] as Expression).node as ESTreeExpression;
}
return get_attribute_value(attribute);
}

@ -177,9 +177,9 @@ export class Parser {
return identifier;
}
read_until(pattern: RegExp) {
read_until(pattern: RegExp, error_message?: Parameters<Parser['error']>[0]) {
if (this.index >= this.template.length) {
this.error({
this.error(error_message || {
code: 'unexpected-eof',
message: 'Unexpected end of input'
});

@ -3,8 +3,6 @@ import { Parser } from '../index';
import { Script } from '../../interfaces';
import { Node, Program } from 'estree';
const script_closing_tag = '</script>';
function get_context(parser: Parser, attributes: any[], start: number): string {
const context = attributes.find(attribute => attribute.name === 'context');
if (!context) return 'default';
@ -30,18 +28,17 @@ function get_context(parser: Parser, attributes: any[], start: number): string {
export default function read_script(parser: Parser, start: number, attributes: Node[]): Script {
const script_start = parser.index;
const script_end = parser.template.indexOf(script_closing_tag, script_start);
if (script_end === -1) {
parser.error({
code: 'unclosed-script',
message: '<script> must have a closing tag'
});
const error_message = {
code: 'unclosed-script',
message: '<script> must have a closing tag'
};
const data = parser.read_until(/<\/script\s*>/, error_message);
if (parser.index >= parser.template.length) {
parser.error(error_message);
}
const source = parser.template.slice(0, script_start).replace(/[^\n]/g, ' ') +
parser.template.slice(script_start, script_end);
parser.index = script_end + script_closing_tag.length;
const source = parser.template.slice(0, script_start).replace(/[^\n]/g, ' ') + data;
parser.read(/<\/script\s*>/);
let ast: Program;

@ -6,7 +6,17 @@ import { Style } from '../../interfaces';
export default function read_style(parser: Parser, start: number, attributes: Node[]): Style {
const content_start = parser.index;
const styles = parser.read_until(/<\/style>/);
const error_message = {
code: 'unclosed-style',
message: '<style> must have a closing tag'
};
const styles = parser.read_until(/<\/style\s*>/, error_message);
if (parser.index >= parser.template.length) {
parser.error(error_message);
}
const content_end = parser.index;
let ast;
@ -72,7 +82,7 @@ export default function read_style(parser: Parser, start: number, attributes: No
}
});
parser.eat('</style>', true);
parser.read(/<\/style\s*>/);
const end = parser.index;
return {

@ -203,7 +203,7 @@ export interface SvelteComponentTyped<
* class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}
* const component: typeof SvelteComponent = ASubclassOfSvelteComponent;
* ```
* will throw a type error, so we need to seperate the more strictly typed class.
* will throw a type error, so we need to separate the more strictly typed class.
*/
export class SvelteComponentTyped<
Props extends Record<string, any> = any,

@ -113,7 +113,7 @@ export function writable<T>(value?: T, start: StartStopNotifier<T> = noop): Writ
}
/** One or more `Readable`s. */
type Stores = Readable<any> | [Readable<any>, ...Array<Readable<any>>];
type Stores = Readable<any> | [Readable<any>, ...Array<Readable<any>>] | Array<Readable<any>>;
/** One or more values from `Readable` stores. */
type StoresValues<T> = T extends Readable<infer U> ? U :

@ -56,7 +56,7 @@ function instance($$self, $$props, $$invalidate) {
const foo_function = () => handleFoo(bar);
$$self.$$set = $$props => {
if ("bar" in $$props) $$invalidate(0, bar = $$props.bar);
if ('bar' in $$props) $$invalidate(0, bar = $$props.bar);
};
return [bar, foo_function];

@ -48,11 +48,11 @@ function link(node) {
history.pushState(null, null, event.target.href);
}
node.addEventListener("click", onClick);
node.addEventListener('click', onClick);
return {
destroy() {
node.removeEventListener("click", onClick);
node.removeEventListener('click', onClick);
}
};
}

@ -53,7 +53,7 @@ function instance($$self, $$props, $$invalidate) {
}
$$self.$$set = $$props => {
if ("open" in $$props) $$invalidate(0, open = $$props.open);
if ('open' in $$props) $$invalidate(0, open = $$props.open);
};
return [open, details_toggle_handler];

@ -47,8 +47,8 @@ function instance($$self, $$props, $$invalidate) {
}
$$self.$$set = $$props => {
if ("w" in $$props) $$invalidate(0, w = $$props.w);
if ("h" in $$props) $$invalidate(1, h = $$props.h);
if ('w' in $$props) $$invalidate(0, w = $$props.w);
if ('h' in $$props) $$invalidate(1, h = $$props.h);
};
return [w, h, div_elementresize_handler];

@ -69,7 +69,7 @@ function instance($$self, $$props, $$invalidate) {
}
$$self.$$set = $$props => {
if ("files" in $$props) $$invalidate(0, files = $$props.files);
if ('files' in $$props) $$invalidate(0, files = $$props.files);
};
return [files, input0_change_handler, input1_change_handler];

@ -95,7 +95,7 @@ const moduleContantProps = 4;
let moduleLet;
const moduleConst = 2;
let shadowedByModule;
const priv = "priv";
const priv = 'priv';
function instance($$self, $$props, $$invalidate) {
let computed;
@ -106,22 +106,22 @@ function instance($$self, $$props, $$invalidate) {
$$self.$$.on_destroy.push(() => $$unsubscribe_prop());
let { $$slots: slots = {}, $$scope } = $$props;
validate_slots("Component", slots, []);
validate_slots('Component', slots, []);
let { prop } = $$props;
validate_store(prop, "prop");
validate_store(prop, 'prop');
$$subscribe_prop();
let { alias: realName } = $$props;
let local;
let shadowedByModule;
const writable_props = ["prop", "alias"];
const writable_props = ['prop', 'alias'];
Object.keys($$props).forEach(key => {
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") console.warn(`<Component> was created with unknown prop '${key}'`);
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<Component> was created with unknown prop '${key}'`);
});
$$self.$$set = $$props => {
if ("prop" in $$props) $$subscribe_prop($$invalidate(0, prop = $$props.prop));
if ("alias" in $$props) $$invalidate(1, realName = $$props.alias);
if ('prop' in $$props) $$subscribe_prop($$invalidate(0, prop = $$props.prop));
if ('alias' in $$props) $$invalidate(1, realName = $$props.alias);
};
$$self.$capture_state = () => ({
@ -140,11 +140,11 @@ function instance($$self, $$props, $$invalidate) {
});
$$self.$inject_state = $$props => {
if ("prop" in $$props) $$subscribe_prop($$invalidate(0, prop = $$props.prop));
if ("realName" in $$props) $$invalidate(1, realName = $$props.realName);
if ("local" in $$props) $$invalidate(3, local = $$props.local);
if ("shadowedByModule" in $$props) $$invalidate(4, shadowedByModule = $$props.shadowedByModule);
if ("computed" in $$props) computed = $$props.computed;
if ('prop' in $$props) $$subscribe_prop($$invalidate(0, prop = $$props.prop));
if ('realName' in $$props) $$invalidate(1, realName = $$props.realName);
if ('local' in $$props) $$invalidate(3, local = $$props.local);
if ('shadowedByModule' in $$props) $$invalidate(4, shadowedByModule = $$props.shadowedByModule);
if ('computed' in $$props) computed = $$props.computed;
};
if ($$props && "$$inject" in $$props) {
@ -170,11 +170,11 @@ class Component extends SvelteComponentDev {
const { ctx } = this.$$;
const props = options.props || {};
if (/*prop*/ ctx[0] === undefined && !("prop" in props)) {
if (/*prop*/ ctx[0] === undefined && !('prop' in props)) {
console.warn("<Component> was created without expected prop 'prop'");
}
if (/*realName*/ ctx[1] === undefined && !("alias" in props)) {
if (/*realName*/ ctx[1] === undefined && !('alias' in props)) {
console.warn("<Component> was created without expected prop 'alias'");
}
}

@ -49,7 +49,7 @@ function instance($$self, $$props, $$invalidate) {
let { foo = 42 } = $$props;
$$self.$$set = $$props => {
if ("foo" in $$props) $$invalidate(0, foo = $$props.foo);
if ('foo' in $$props) $$invalidate(0, foo = $$props.foo);
};
return [foo];

@ -16,8 +16,8 @@ import {
transition_out
} from "svelte/internal";
import Foo from "./Foo.svelte";
import Bar from "./Bar.svelte";
import Foo from './Foo.svelte';
import Bar from './Bar.svelte';
function create_fragment(ctx) {
let foo;

@ -13,7 +13,7 @@ import {
text
} from "svelte/internal";
import { writable } from "svelte/store";
import { writable } from 'svelte/store';
function create_fragment(ctx) {
let h1;

@ -7,7 +7,7 @@ import {
set_store_value
} from "svelte/internal";
import { count } from "./store.js";
import { count } from './store.js';
function instance($$self, $$props, $$invalidate) {
let $count;

@ -15,7 +15,7 @@ import {
text
} from "svelte/internal";
import { writable } from "svelte/store";
import { writable } from 'svelte/store';
function create_fragment(ctx) {
let h1;

@ -13,7 +13,7 @@ function instance($$self, $$props, $$invalidate) {
}
$$self.$$set = $$props => {
if ("x" in $$props) $$invalidate(0, x = $$props.x);
if ('x' in $$props) $$invalidate(0, x = $$props.x);
};
return [x, a, b];

@ -48,7 +48,7 @@ function instance($$self, $$props, $$invalidate) {
let { bar } = $$props;
$$self.$$set = $$props => {
if ("bar" in $$props) $$invalidate(0, bar = $$props.bar);
if ('bar' in $$props) $$invalidate(0, bar = $$props.bar);
};
return [bar];

@ -70,22 +70,22 @@ function create_fragment(ctx) {
function instance($$self, $$props, $$invalidate) {
let { $$slots: slots = {}, $$scope } = $$props;
validate_slots("Component", slots, []);
validate_slots('Component', slots, []);
let { name } = $$props;
const writable_props = ["name"];
const writable_props = ['name'];
Object.keys($$props).forEach(key => {
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") console.warn(`<Component> was created with unknown prop '${key}'`);
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<Component> was created with unknown prop '${key}'`);
});
$$self.$$set = $$props => {
if ("name" in $$props) $$invalidate(0, name = $$props.name);
if ('name' in $$props) $$invalidate(0, name = $$props.name);
};
$$self.$capture_state = () => ({ name });
$$self.$inject_state = $$props => {
if ("name" in $$props) $$invalidate(0, name = $$props.name);
if ('name' in $$props) $$invalidate(0, name = $$props.name);
};
if ($$props && "$$inject" in $$props) {
@ -110,7 +110,7 @@ class Component extends SvelteComponentDev {
const { ctx } = this.$$;
const props = options.props || {};
if (/*name*/ ctx[0] === undefined && !("name" in props)) {
if (/*name*/ ctx[0] === undefined && !('name' in props)) {
console.warn("<Component> was created without expected prop 'name'");
}
}

@ -171,31 +171,31 @@ function create_fragment(ctx) {
function instance($$self, $$props, $$invalidate) {
let { $$slots: slots = {}, $$scope } = $$props;
validate_slots("Component", slots, []);
validate_slots('Component', slots, []);
let { things } = $$props;
let { foo } = $$props;
let { bar } = $$props;
let { baz } = $$props;
const writable_props = ["things", "foo", "bar", "baz"];
const writable_props = ['things', 'foo', 'bar', 'baz'];
Object.keys($$props).forEach(key => {
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") console.warn(`<Component> was created with unknown prop '${key}'`);
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<Component> was created with unknown prop '${key}'`);
});
$$self.$$set = $$props => {
if ("things" in $$props) $$invalidate(0, things = $$props.things);
if ("foo" in $$props) $$invalidate(1, foo = $$props.foo);
if ("bar" in $$props) $$invalidate(2, bar = $$props.bar);
if ("baz" in $$props) $$invalidate(3, baz = $$props.baz);
if ('things' in $$props) $$invalidate(0, things = $$props.things);
if ('foo' in $$props) $$invalidate(1, foo = $$props.foo);
if ('bar' in $$props) $$invalidate(2, bar = $$props.bar);
if ('baz' in $$props) $$invalidate(3, baz = $$props.baz);
};
$$self.$capture_state = () => ({ things, foo, bar, baz });
$$self.$inject_state = $$props => {
if ("things" in $$props) $$invalidate(0, things = $$props.things);
if ("foo" in $$props) $$invalidate(1, foo = $$props.foo);
if ("bar" in $$props) $$invalidate(2, bar = $$props.bar);
if ("baz" in $$props) $$invalidate(3, baz = $$props.baz);
if ('things' in $$props) $$invalidate(0, things = $$props.things);
if ('foo' in $$props) $$invalidate(1, foo = $$props.foo);
if ('bar' in $$props) $$invalidate(2, bar = $$props.bar);
if ('baz' in $$props) $$invalidate(3, baz = $$props.baz);
};
if ($$props && "$$inject" in $$props) {
@ -220,19 +220,19 @@ class Component extends SvelteComponentDev {
const { ctx } = this.$$;
const props = options.props || {};
if (/*things*/ ctx[0] === undefined && !("things" in props)) {
if (/*things*/ ctx[0] === undefined && !('things' in props)) {
console.warn("<Component> was created without expected prop 'things'");
}
if (/*foo*/ ctx[1] === undefined && !("foo" in props)) {
if (/*foo*/ ctx[1] === undefined && !('foo' in props)) {
console.warn("<Component> was created without expected prop 'foo'");
}
if (/*bar*/ ctx[2] === undefined && !("bar" in props)) {
if (/*bar*/ ctx[2] === undefined && !('bar' in props)) {
console.warn("<Component> was created without expected prop 'bar'");
}
if (/*baz*/ ctx[3] === undefined && !("baz" in props)) {
if (/*baz*/ ctx[3] === undefined && !('baz' in props)) {
console.warn("<Component> was created without expected prop 'baz'");
}
}

@ -165,25 +165,25 @@ function create_fragment(ctx) {
function instance($$self, $$props, $$invalidate) {
let { $$slots: slots = {}, $$scope } = $$props;
validate_slots("Component", slots, []);
validate_slots('Component', slots, []);
let { things } = $$props;
let { foo } = $$props;
const writable_props = ["things", "foo"];
const writable_props = ['things', 'foo'];
Object.keys($$props).forEach(key => {
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") console.warn(`<Component> was created with unknown prop '${key}'`);
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<Component> was created with unknown prop '${key}'`);
});
$$self.$$set = $$props => {
if ("things" in $$props) $$invalidate(0, things = $$props.things);
if ("foo" in $$props) $$invalidate(1, foo = $$props.foo);
if ('things' in $$props) $$invalidate(0, things = $$props.things);
if ('foo' in $$props) $$invalidate(1, foo = $$props.foo);
};
$$self.$capture_state = () => ({ things, foo });
$$self.$inject_state = $$props => {
if ("things" in $$props) $$invalidate(0, things = $$props.things);
if ("foo" in $$props) $$invalidate(1, foo = $$props.foo);
if ('things' in $$props) $$invalidate(0, things = $$props.things);
if ('foo' in $$props) $$invalidate(1, foo = $$props.foo);
};
if ($$props && "$$inject" in $$props) {
@ -208,11 +208,11 @@ class Component extends SvelteComponentDev {
const { ctx } = this.$$;
const props = options.props || {};
if (/*things*/ ctx[0] === undefined && !("things" in props)) {
if (/*things*/ ctx[0] === undefined && !('things' in props)) {
console.warn("<Component> was created without expected prop 'things'");
}
if (/*foo*/ ctx[1] === undefined && !("foo" in props)) {
if (/*foo*/ ctx[1] === undefined && !('foo' in props)) {
console.warn("<Component> was created without expected prop 'foo'");
}
}

@ -50,20 +50,20 @@ function create_fragment(ctx) {
function instance($$self, $$props, $$invalidate) {
let { $$slots: slots = {}, $$scope } = $$props;
validate_slots("Component", slots, []);
validate_slots('Component', slots, []);
let obj = { x: 5 };
let kobzol = 5;
const writable_props = [];
Object.keys($$props).forEach(key => {
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") console.warn(`<Component> was created with unknown prop '${key}'`);
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<Component> was created with unknown prop '${key}'`);
});
$$self.$capture_state = () => ({ obj, kobzol });
$$self.$inject_state = $$props => {
if ("obj" in $$props) $$invalidate(0, obj = $$props.obj);
if ("kobzol" in $$props) $$invalidate(1, kobzol = $$props.kobzol);
if ('obj' in $$props) $$invalidate(0, obj = $$props.obj);
if ('kobzol' in $$props) $$invalidate(1, kobzol = $$props.kobzol);
};
if ($$props && "$$inject" in $$props) {

@ -137,11 +137,11 @@ function create_fragment(ctx) {
function instance($$self, $$props) {
let { $$slots: slots = {}, $$scope } = $$props;
validate_slots("Component", slots, []);
validate_slots('Component', slots, []);
const writable_props = [];
Object.keys($$props).forEach(key => {
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") console.warn(`<Component> was created with unknown prop '${key}'`);
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<Component> was created with unknown prop '${key}'`);
});
return [];

@ -105,7 +105,7 @@ function instance($$self, $$props, $$invalidate) {
let { createElement } = $$props;
$$self.$$set = $$props => {
if ("createElement" in $$props) $$invalidate(0, createElement = $$props.createElement);
if ('createElement' in $$props) $$invalidate(0, createElement = $$props.createElement);
};
return [createElement];

@ -1,17 +1,17 @@
/* generated by Svelte vX.Y.Z */
import { SvelteComponent, init, safe_not_equal } from "svelte/internal";
import { onMount } from "svelte";
import { onMount } from 'svelte';
function instance($$self, $$props, $$invalidate) {
let { foo = "bar" } = $$props;
let { foo = 'bar' } = $$props;
onMount(() => {
alert(JSON.stringify(data()));
});
$$self.$$set = $$props => {
if ("foo" in $$props) $$invalidate(0, foo = $$props.foo);
if ('foo' in $$props) $$invalidate(0, foo = $$props.foo);
};
return [foo];

@ -66,24 +66,24 @@ function create_fragment(ctx) {
function instance($$self, $$props, $$invalidate) {
let { $$slots: slots = {}, $$scope } = $$props;
validate_slots("Component", slots, []);
validate_slots('Component', slots, []);
let { foo } = $$props;
let bar;
const writable_props = ["foo"];
const writable_props = ['foo'];
Object.keys($$props).forEach(key => {
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") console.warn(`<Component> was created with unknown prop '${key}'`);
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<Component> was created with unknown prop '${key}'`);
});
$$self.$$set = $$props => {
if ("foo" in $$props) $$invalidate(0, foo = $$props.foo);
if ('foo' in $$props) $$invalidate(0, foo = $$props.foo);
};
$$self.$capture_state = () => ({ foo, bar });
$$self.$inject_state = $$props => {
if ("foo" in $$props) $$invalidate(0, foo = $$props.foo);
if ("bar" in $$props) $$invalidate(1, bar = $$props.bar);
if ('foo' in $$props) $$invalidate(0, foo = $$props.foo);
if ('bar' in $$props) $$invalidate(1, bar = $$props.bar);
};
if ($$props && "$$inject" in $$props) {
@ -114,7 +114,7 @@ class Component extends SvelteComponentDev {
const { ctx } = this.$$;
const props = options.props || {};
if (/*foo*/ ctx[0] === undefined && !("foo" in props)) {
if (/*foo*/ ctx[0] === undefined && !('foo' in props)) {
console.warn("<Component> was created without expected prop 'foo'");
}
}

@ -11,7 +11,7 @@ import {
transition_out
} from "svelte/internal";
import LazyLoad from "./LazyLoad.svelte";
import LazyLoad from './LazyLoad.svelte';
function create_fragment(ctx) {
let lazyload;
@ -42,7 +42,7 @@ function create_fragment(ctx) {
};
}
const func = () => import("./Foo.svelte");
const func = () => import('./Foo.svelte');
class Component extends SvelteComponent {
constructor(options) {

@ -107,11 +107,11 @@ function instance($$self, $$props, $$invalidate) {
let { e } = $$props;
$$self.$$set = $$props => {
if ("a" in $$props) $$invalidate(0, a = $$props.a);
if ("b" in $$props) $$invalidate(1, b = $$props.b);
if ("c" in $$props) $$invalidate(2, c = $$props.c);
if ("d" in $$props) $$invalidate(3, d = $$props.d);
if ("e" in $$props) $$invalidate(4, e = $$props.e);
if ('a' in $$props) $$invalidate(0, a = $$props.a);
if ('b' in $$props) $$invalidate(1, b = $$props.b);
if ('c' in $$props) $$invalidate(2, c = $$props.c);
if ('d' in $$props) $$invalidate(3, d = $$props.d);
if ('e' in $$props) $$invalidate(4, e = $$props.e);
};
return [a, b, c, d, e];

@ -154,10 +154,10 @@ function instance($$self, $$props, $$invalidate) {
let { foo } = $$props;
$$self.$$set = $$props => {
if ("comments" in $$props) $$invalidate(0, comments = $$props.comments);
if ("elapsed" in $$props) $$invalidate(1, elapsed = $$props.elapsed);
if ("time" in $$props) $$invalidate(2, time = $$props.time);
if ("foo" in $$props) $$invalidate(3, foo = $$props.foo);
if ('comments' in $$props) $$invalidate(0, comments = $$props.comments);
if ('elapsed' in $$props) $$invalidate(1, elapsed = $$props.elapsed);
if ('time' in $$props) $$invalidate(2, time = $$props.time);
if ('foo' in $$props) $$invalidate(3, foo = $$props.foo);
};
return [comments, elapsed, time, foo];

@ -130,7 +130,7 @@ function instance($$self, $$props, $$invalidate) {
let { things } = $$props;
$$self.$$set = $$props => {
if ("things" in $$props) $$invalidate(0, things = $$props.things);
if ('things' in $$props) $$invalidate(0, things = $$props.things);
};
return [things];

@ -99,7 +99,7 @@ function instance($$self, $$props, $$invalidate) {
let { things } = $$props;
$$self.$$set = $$props => {
if ("things" in $$props) $$invalidate(0, things = $$props.things);
if ('things' in $$props) $$invalidate(0, things = $$props.things);
};
return [things];

@ -89,7 +89,7 @@ function instance($$self, $$props, $$invalidate) {
let { foo } = $$props;
$$self.$$set = $$props => {
if ("foo" in $$props) $$invalidate(0, foo = $$props.foo);
if ('foo' in $$props) $$invalidate(0, foo = $$props.foo);
};
return [foo];

@ -67,7 +67,7 @@ function instance($$self, $$props, $$invalidate) {
let { foo } = $$props;
$$self.$$set = $$props => {
if ("foo" in $$props) $$invalidate(0, foo = $$props.foo);
if ('foo' in $$props) $$invalidate(0, foo = $$props.foo);
};
return [foo];

@ -45,9 +45,9 @@ function instance($$self, $$props, $$invalidate) {
let { y } = $$props;
$$self.$$set = $$props => {
if ("color" in $$props) $$invalidate(0, color = $$props.color);
if ("x" in $$props) $$invalidate(1, x = $$props.x);
if ("y" in $$props) $$invalidate(2, y = $$props.y);
if ('color' in $$props) $$invalidate(0, color = $$props.color);
if ('x' in $$props) $$invalidate(1, x = $$props.x);
if ('y' in $$props) $$invalidate(2, y = $$props.y);
};
return [color, x, y];

@ -38,7 +38,7 @@ function instance($$self, $$props, $$invalidate) {
let { data } = $$props;
$$self.$$set = $$props => {
if ("data" in $$props) $$invalidate(0, data = $$props.data);
if ('data' in $$props) $$invalidate(0, data = $$props.data);
};
return [data];

@ -38,7 +38,7 @@ function instance($$self, $$props, $$invalidate) {
let { color } = $$props;
$$self.$$set = $$props => {
if ("color" in $$props) $$invalidate(0, color = $$props.color);
if ('color' in $$props) $$invalidate(0, color = $$props.color);
};
return [color];

@ -55,9 +55,9 @@ function instance($$self, $$props, $$invalidate) {
let { value } = $$props;
$$self.$$set = $$props => {
if ("style" in $$props) $$invalidate(0, style = $$props.style);
if ("key" in $$props) $$invalidate(1, key = $$props.key);
if ("value" in $$props) $$invalidate(2, value = $$props.value);
if ('style' in $$props) $$invalidate(0, style = $$props.style);
if ('key' in $$props) $$invalidate(1, key = $$props.key);
if ('value' in $$props) $$invalidate(2, value = $$props.value);
};
return [style, key, value];

@ -30,7 +30,7 @@ function create_fragment(ctx) {
};
}
let color = "red";
let color = 'red';
class Component extends SvelteComponent {
constructor(options) {

@ -50,7 +50,7 @@ function instance($$self, $$props, $$invalidate) {
}
$$self.$$set = $$props => {
if ("files" in $$props) $$invalidate(0, files = $$props.files);
if ('files' in $$props) $$invalidate(0, files = $$props.files);
};
return [files, input_change_handler];

@ -69,7 +69,7 @@ function instance($$self, $$props, $$invalidate) {
function handleSubmit(event) {
event.preventDefault();
console.log("value", test);
console.log('value', test);
}
function input_input_handler() {

@ -61,7 +61,7 @@ function instance($$self, $$props, $$invalidate) {
}
$$self.$$set = $$props => {
if ("value" in $$props) $$invalidate(0, value = $$props.value);
if ('value' in $$props) $$invalidate(0, value = $$props.value);
};
return [value, input_change_input_handler];

@ -64,7 +64,7 @@ function create_fragment(ctx) {
}
function instance($$self, $$props, $$invalidate) {
let name = "change me";
let name = 'change me';
function onInput(event) {
$$invalidate(0, name = event.target.value);

@ -54,7 +54,7 @@ function instance($$self, $$props, $$invalidate) {
}
$$self.$$set = $$props => {
if ("foo" in $$props) $$invalidate(0, foo = $$props.foo);
if ('foo' in $$props) $$invalidate(0, foo = $$props.foo);
};
return [foo, input_change_handler];

@ -54,7 +54,7 @@ function create_fragment(ctx) {
}
function foo() {
const guard = "foo";
const guard = 'foo';
{
const guard_1 = loop_guard(100);
@ -68,7 +68,7 @@ function foo() {
function instance($$self, $$props, $$invalidate) {
let { $$slots: slots = {}, $$scope } = $$props;
validate_slots("Component", slots, []);
validate_slots('Component', slots, []);
let node;
{
@ -110,11 +110,11 @@ function instance($$self, $$props, $$invalidate) {
const writable_props = [];
Object.keys($$props).forEach(key => {
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") console_1.warn(`<Component> was created with unknown prop '${key}'`);
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1.warn(`<Component> was created with unknown prop '${key}'`);
});
function div_binding($$value) {
binding_callbacks[$$value ? "unshift" : "push"](() => {
binding_callbacks[$$value ? 'unshift' : 'push'](() => {
node = $$value;
$$invalidate(0, node);
});
@ -123,7 +123,7 @@ function instance($$self, $$props, $$invalidate) {
$$self.$capture_state = () => ({ node, foo });
$$self.$inject_state = $$props => {
if ("node" in $$props) $$invalidate(0, node = $$props.node);
if ('node' in $$props) $$invalidate(0, node = $$props.node);
};
if ($$props && "$$inject" in $$props) {

@ -174,17 +174,17 @@ function instance($$self, $$props, $$invalidate) {
}
$$self.$$set = $$props => {
if ("buffered" in $$props) $$invalidate(0, buffered = $$props.buffered);
if ("seekable" in $$props) $$invalidate(1, seekable = $$props.seekable);
if ("played" in $$props) $$invalidate(2, played = $$props.played);
if ("currentTime" in $$props) $$invalidate(3, currentTime = $$props.currentTime);
if ("duration" in $$props) $$invalidate(4, duration = $$props.duration);
if ("paused" in $$props) $$invalidate(5, paused = $$props.paused);
if ("volume" in $$props) $$invalidate(6, volume = $$props.volume);
if ("muted" in $$props) $$invalidate(7, muted = $$props.muted);
if ("playbackRate" in $$props) $$invalidate(8, playbackRate = $$props.playbackRate);
if ("seeking" in $$props) $$invalidate(9, seeking = $$props.seeking);
if ("ended" in $$props) $$invalidate(10, ended = $$props.ended);
if ('buffered' in $$props) $$invalidate(0, buffered = $$props.buffered);
if ('seekable' in $$props) $$invalidate(1, seekable = $$props.seekable);
if ('played' in $$props) $$invalidate(2, played = $$props.played);
if ('currentTime' in $$props) $$invalidate(3, currentTime = $$props.currentTime);
if ('duration' in $$props) $$invalidate(4, duration = $$props.duration);
if ('paused' in $$props) $$invalidate(5, paused = $$props.paused);
if ('volume' in $$props) $$invalidate(6, volume = $$props.volume);
if ('muted' in $$props) $$invalidate(7, muted = $$props.muted);
if ('playbackRate' in $$props) $$invalidate(8, playbackRate = $$props.playbackRate);
if ('seeking' in $$props) $$invalidate(9, seeking = $$props.seeking);
if ('ended' in $$props) $$invalidate(10, ended = $$props.ended);
};
return [

@ -14,7 +14,7 @@ import {
transition_out
} from "svelte/internal";
import Imported from "Imported.svelte";
import Imported from 'Imported.svelte';
function create_fragment(ctx) {
let imported;

@ -29,7 +29,7 @@ function create_fragment(ctx) {
};
}
let name = "world";
let name = 'world';
class Component extends SvelteComponent {
constructor(options) {

@ -23,9 +23,9 @@ function create_fragment(ctx) {
let t1_value = /*b*/ ctx[1]?.optional + "";
let t1;
let t2;
let t3_value = /*c*/ ctx[2]["computed"] + "";
let t3_value = /*c*/ ctx[2]['computed'] + "";
let t3;
let t4_value = /*d*/ ctx[3]?.["computed_optional"] + "";
let t4_value = /*d*/ ctx[3]?.['computed_optional'] + "";
let t4;
let t5;
let t6_value = /*e*/ ctx[4]() + "";
@ -48,8 +48,8 @@ function create_fragment(ctx) {
props: {
a: /*a*/ ctx[0].normal,
b: /*b*/ ctx[1]?.optional,
c: /*c*/ ctx[2]["computed"],
d: /*d*/ ctx[3]?.["computed_optional"],
c: /*c*/ ctx[2]['computed'],
d: /*d*/ ctx[3]?.['computed_optional'],
e: /*e*/ ctx[4](),
f: /*f*/ ctx[5]?.()
}
@ -71,8 +71,8 @@ function create_fragment(ctx) {
create_component(component.$$.fragment);
attr(div, "a", div_a_value = /*a*/ ctx[0].normal);
attr(div, "b", div_b_value = /*b*/ ctx[1]?.optional);
attr(div, "c", div_c_value = /*c*/ ctx[2]["computed"]);
attr(div, "d", div_d_value = /*d*/ ctx[3]?.["computed_optional"]);
attr(div, "c", div_c_value = /*c*/ ctx[2]['computed']);
attr(div, "d", div_d_value = /*d*/ ctx[3]?.['computed_optional']);
attr(div, "e", div_e_value = /*e*/ ctx[4]());
attr(div, "f", div_f_value = /*f*/ ctx[5]?.());
},
@ -94,8 +94,8 @@ function create_fragment(ctx) {
p(ctx, [dirty]) {
if ((!current || dirty & /*a*/ 1) && t0_value !== (t0_value = /*a*/ ctx[0].normal + "")) set_data(t0, t0_value);
if ((!current || dirty & /*b*/ 2) && t1_value !== (t1_value = /*b*/ ctx[1]?.optional + "")) set_data(t1, t1_value);
if ((!current || dirty & /*c*/ 4) && t3_value !== (t3_value = /*c*/ ctx[2]["computed"] + "")) set_data(t3, t3_value);
if ((!current || dirty & /*d*/ 8) && t4_value !== (t4_value = /*d*/ ctx[3]?.["computed_optional"] + "")) set_data(t4, t4_value);
if ((!current || dirty & /*c*/ 4) && t3_value !== (t3_value = /*c*/ ctx[2]['computed'] + "")) set_data(t3, t3_value);
if ((!current || dirty & /*d*/ 8) && t4_value !== (t4_value = /*d*/ ctx[3]?.['computed_optional'] + "")) set_data(t4, t4_value);
if ((!current || dirty & /*e*/ 16) && t6_value !== (t6_value = /*e*/ ctx[4]() + "")) set_data(t6, t6_value);
if ((!current || dirty & /*f*/ 32) && t7_value !== (t7_value = /*f*/ ctx[5]?.() + "")) set_data(t7, t7_value);
@ -107,11 +107,11 @@ function create_fragment(ctx) {
attr(div, "b", div_b_value);
}
if (!current || dirty & /*c*/ 4 && div_c_value !== (div_c_value = /*c*/ ctx[2]["computed"])) {
if (!current || dirty & /*c*/ 4 && div_c_value !== (div_c_value = /*c*/ ctx[2]['computed'])) {
attr(div, "c", div_c_value);
}
if (!current || dirty & /*d*/ 8 && div_d_value !== (div_d_value = /*d*/ ctx[3]?.["computed_optional"])) {
if (!current || dirty & /*d*/ 8 && div_d_value !== (div_d_value = /*d*/ ctx[3]?.['computed_optional'])) {
attr(div, "d", div_d_value);
}
@ -126,8 +126,8 @@ function create_fragment(ctx) {
const component_changes = {};
if (dirty & /*a*/ 1) component_changes.a = /*a*/ ctx[0].normal;
if (dirty & /*b*/ 2) component_changes.b = /*b*/ ctx[1]?.optional;
if (dirty & /*c*/ 4) component_changes.c = /*c*/ ctx[2]["computed"];
if (dirty & /*d*/ 8) component_changes.d = /*d*/ ctx[3]?.["computed_optional"];
if (dirty & /*c*/ 4) component_changes.c = /*c*/ ctx[2]['computed'];
if (dirty & /*d*/ 8) component_changes.d = /*d*/ ctx[3]?.['computed_optional'];
if (dirty & /*e*/ 16) component_changes.e = /*e*/ ctx[4]();
if (dirty & /*f*/ 32) component_changes.f = /*f*/ ctx[5]?.();
component.$set(component_changes);
@ -168,12 +168,12 @@ function instance($$self, $$props, $$invalidate) {
let Component;
$$self.$$set = $$props => {
if ("a" in $$props) $$invalidate(0, a = $$props.a);
if ("b" in $$props) $$invalidate(1, b = $$props.b);
if ("c" in $$props) $$invalidate(2, c = $$props.c);
if ("d" in $$props) $$invalidate(3, d = $$props.d);
if ("e" in $$props) $$invalidate(4, e = $$props.e);
if ("f" in $$props) $$invalidate(5, f = $$props.f);
if ('a' in $$props) $$invalidate(0, a = $$props.a);
if ('b' in $$props) $$invalidate(1, b = $$props.b);
if ('c' in $$props) $$invalidate(2, c = $$props.c);
if ('d' in $$props) $$invalidate(3, d = $$props.d);
if ('e' in $$props) $$invalidate(4, e = $$props.e);
if ('f' in $$props) $$invalidate(5, f = $$props.f);
};
return [a, b, c, d, e, f, Component];

@ -13,7 +13,7 @@ import {
toggle_class
} from "svelte/internal";
import { reactiveStoreVal, unreactiveExport } from "./store";
import { reactiveStoreVal, unreactiveExport } from './store';
function create_fragment(ctx) {
let div0;
@ -159,4 +159,4 @@ class Component extends SvelteComponent {
}
}
export default Component;
export default Component;

@ -7,7 +7,7 @@ function instance($$self, $$props, $$invalidate) {
let b;
$$self.$$set = $$props => {
if ("x" in $$props) $$invalidate(0, x = $$props.x);
if ('x' in $$props) $$invalidate(0, x = $$props.x);
};
$$self.$$.update = () => {

@ -6,13 +6,13 @@ function instance($$self, $$props, $$invalidate) {
let { b = 2 } = $$props;
$$self.$$set = $$props => {
if ("a" in $$props) $$invalidate(0, a = $$props.a);
if ("b" in $$props) $$invalidate(1, b = $$props.b);
if ('a' in $$props) $$invalidate(0, a = $$props.a);
if ('b' in $$props) $$invalidate(1, b = $$props.b);
};
$$self.$$.update = () => {
if ($$self.$$.dirty & /*a, b*/ 3) {
$: console.log("max", Math.max(a, b));
$: console.log('max', Math.max(a, b));
}
};

@ -51,7 +51,7 @@ function instance($$self, $$props, $$invalidate) {
let { current } = $$props;
$$self.$$set = $$props => {
if ("current" in $$props) $$invalidate(0, current = $$props.current);
if ('current' in $$props) $$invalidate(0, current = $$props.current);
};
return [current];

@ -68,8 +68,8 @@ function instance($$self, $$props, $$invalidate) {
let { slug } = $$props;
$$self.$$set = $$props => {
if ("url" in $$props) $$invalidate(0, url = $$props.url);
if ("slug" in $$props) $$invalidate(1, slug = $$props.slug);
if ('url' in $$props) $$invalidate(0, url = $$props.url);
if ('slug' in $$props) $$invalidate(1, slug = $$props.slug);
};
return [url, slug];

@ -1,14 +1,14 @@
/* generated by Svelte vX.Y.Z */
import { create_ssr_component } from "svelte/internal";
import { onDestroy, onMount } from "svelte";
import { onDestroy, onMount } from 'svelte';
function preload(input) {
return output;
}
function foo() {
console.log("foo");
console.log('foo');
}
function swipe(node, callback) {
@ -17,11 +17,11 @@ function swipe(node, callback) {
const Component = create_ssr_component(($$result, $$props, $$bindings, slots) => {
onMount(() => {
console.log("onMount");
console.log('onMount');
});
onDestroy(() => {
console.log("onDestroy");
console.log('onDestroy');
});
return ``;

@ -23,7 +23,7 @@ function instance($$self, $$props, $$invalidate) {
let { custom } = $$props;
$$self.$$set = $$props => {
if ("custom" in $$props) $$invalidate(0, custom = $$props.custom);
if ('custom' in $$props) $$invalidate(0, custom = $$props.custom);
};
return [custom];

@ -125,8 +125,8 @@ function instance($$self, $$props, $$invalidate) {
let { y } = $$props;
$$self.$$set = $$props => {
if ("x" in $$props) $$invalidate(0, x = $$props.x);
if ("y" in $$props) $$invalidate(1, y = $$props.y);
if ('x' in $$props) $$invalidate(0, x = $$props.x);
if ('y' in $$props) $$invalidate(1, y = $$props.y);
};
return [x, y];

@ -14,7 +14,7 @@ import {
transition_out
} from "svelte/internal";
import { fade } from "svelte/transition";
import { fade } from 'svelte/transition';
function create_if_block(ctx) {
let div;
@ -103,7 +103,7 @@ function instance($$self, $$props, $$invalidate) {
let { num = 1 } = $$props;
$$self.$$set = $$props => {
if ("num" in $$props) $$invalidate(0, num = $$props.num);
if ('num' in $$props) $$invalidate(0, num = $$props.num);
};
return [num];

@ -69,14 +69,14 @@ function create_fragment(ctx) {
};
}
let world1 = "world";
let world2 = "world";
let world1 = 'world';
let world2 = 'world';
function instance($$self, $$props, $$invalidate) {
const world3 = "world";
const world3 = 'world';
function foo() {
$$invalidate(0, world3 = "svelte");
$$invalidate(0, world3 = 'svelte');
}
return [world3];

@ -12,7 +12,7 @@ import {
text
} from "svelte/internal";
import { onMount } from "svelte";
import { onMount } from 'svelte';
function create_fragment(ctx) {
let p;

@ -244,11 +244,11 @@ function instance($$self, $$props, $$invalidate) {
let { e } = $$props;
$$self.$$set = $$props => {
if ("a" in $$props) $$invalidate(0, a = $$props.a);
if ("b" in $$props) $$invalidate(1, b = $$props.b);
if ("c" in $$props) $$invalidate(2, c = $$props.c);
if ("d" in $$props) $$invalidate(3, d = $$props.d);
if ("e" in $$props) $$invalidate(4, e = $$props.e);
if ('a' in $$props) $$invalidate(0, a = $$props.a);
if ('b' in $$props) $$invalidate(1, b = $$props.b);
if ('c' in $$props) $$invalidate(2, c = $$props.c);
if ('d' in $$props) $$invalidate(3, d = $$props.d);
if ('e' in $$props) $$invalidate(4, e = $$props.e);
};
return [a, b, c, d, e];

@ -94,10 +94,10 @@ function instance($$self, $$props, $$invalidate) {
}
$$self.$$set = $$props => {
if ("currentTime" in $$props) $$invalidate(0, currentTime = $$props.currentTime);
if ("videoHeight" in $$props) $$invalidate(1, videoHeight = $$props.videoHeight);
if ("videoWidth" in $$props) $$invalidate(2, videoWidth = $$props.videoWidth);
if ("offsetWidth" in $$props) $$invalidate(3, offsetWidth = $$props.offsetWidth);
if ('currentTime' in $$props) $$invalidate(0, currentTime = $$props.currentTime);
if ('videoHeight' in $$props) $$invalidate(1, videoHeight = $$props.videoHeight);
if ('videoWidth' in $$props) $$invalidate(2, videoWidth = $$props.videoWidth);
if ('offsetWidth' in $$props) $$invalidate(3, offsetWidth = $$props.offsetWidth);
};
return [

@ -79,7 +79,7 @@ function instance($$self, $$props, $$invalidate) {
}
$$self.$$set = $$props => {
if ("y" in $$props) $$invalidate(0, y = $$props.y);
if ('y' in $$props) $$invalidate(0, y = $$props.y);
};
return [y, onwindowscroll];

@ -0,0 +1,10 @@
{
"code": "unclosed-script",
"message": "<script> must have a closing tag",
"start": {
"line": 3,
"column": 22,
"character": 32
},
"pos": 32
}

@ -0,0 +1,10 @@
{
"code": "unclosed-style",
"message": "<style> must have a closing tag",
"start": {
"line": 3,
"column": 22,
"character": 31
},
"pos": 31
}

@ -0,0 +1,10 @@
{
"code": "unclosed-style",
"message": "<style> must have a closing tag",
"start": {
"line": 3,
"column": 7,
"character": 31
},
"pos": 31
}

@ -0,0 +1,3 @@
<h1>Hello {name}!</h1>
<style>

@ -0,0 +1,10 @@
<script>
let name = 'world';
</script
>
<h1>Hello {name}!</h1>

@ -0,0 +1,150 @@
{
"html": {
"start": 51,
"end": 73,
"type": "Fragment",
"children": [
{
"start": 49,
"end": 51,
"type": "Text",
"raw": "\n\n",
"data": "\n\n"
},
{
"start": 51,
"end": 73,
"type": "Element",
"name": "h1",
"attributes": [],
"children": [
{
"start": 55,
"end": 61,
"type": "Text",
"raw": "Hello ",
"data": "Hello "
},
{
"start": 61,
"end": 67,
"type": "MustacheTag",
"expression": {
"type": "Identifier",
"start": 62,
"end": 66,
"loc": {
"start": {
"line": 10,
"column": 11
},
"end": {
"line": 10,
"column": 15
}
},
"name": "name"
}
},
{
"start": 67,
"end": 68,
"type": "Text",
"raw": "!",
"data": "!"
}
]
}
]
},
"instance": {
"type": "Script",
"start": 0,
"end": 49,
"context": "default",
"content": {
"type": "Program",
"start": 8,
"end": 30,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 3,
"column": 0
}
},
"body": [
{
"type": "VariableDeclaration",
"start": 10,
"end": 29,
"loc": {
"start": {
"line": 2,
"column": 1
},
"end": {
"line": 2,
"column": 20
}
},
"declarations": [
{
"type": "VariableDeclarator",
"start": 14,
"end": 28,
"loc": {
"start": {
"line": 2,
"column": 5
},
"end": {
"line": 2,
"column": 19
}
},
"id": {
"type": "Identifier",
"start": 14,
"end": 18,
"loc": {
"start": {
"line": 2,
"column": 5
},
"end": {
"line": 2,
"column": 9
}
},
"name": "name"
},
"init": {
"type": "Literal",
"start": 21,
"end": 28,
"loc": {
"start": {
"line": 2,
"column": 12
},
"end": {
"line": 2,
"column": 19
}
},
"value": "world",
"raw": "'world'"
}
}
],
"kind": "let"
}
],
"sourceType": "module"
}
}
}

@ -0,0 +1,12 @@
<div>foo</div>
<style>
div {
color: red;
}
</style
>

@ -0,0 +1,97 @@
{
"html": {
"start": 0,
"end": 14,
"type": "Fragment",
"children": [
{
"start": 0,
"end": 14,
"type": "Element",
"name": "div",
"attributes": [],
"children": [
{
"start": 5,
"end": 8,
"type": "Text",
"raw": "foo",
"data": "foo"
}
]
},
{
"start": 14,
"end": 16,
"type": "Text",
"raw": "\n\n",
"data": "\n\n"
}
]
},
"css": {
"type": "Style",
"start": 16,
"end": 66,
"attributes": [],
"children": [
{
"type": "Rule",
"prelude": {
"type": "SelectorList",
"children": [
{
"type": "Selector",
"children": [
{
"type": "TypeSelector",
"name": "div",
"start": 25,
"end": 28
}
],
"start": 25,
"end": 28
}
],
"start": 25,
"end": 28
},
"block": {
"type": "Block",
"children": [
{
"type": "Declaration",
"important": false,
"property": "color",
"value": {
"type": "Value",
"children": [
{
"type": "Identifier",
"name": "red",
"start": 40,
"end": 43
}
],
"start": 40,
"end": 43
},
"start": 33,
"end": 43
}
],
"start": 29,
"end": 47
},
"start": 25,
"end": 47
}
],
"content": {
"start": 23,
"end": 48,
"styles": "\n\tdiv {\n\t\tcolor: red;\n\t}\n"
}
}
}

@ -1,5 +1,4 @@
export default {
skip_if_ssr: true,
props: {
foo: false

@ -1,5 +1,13 @@
export default {
skip_if_ssr: true,
ssrHtml: `
<input type="radio" value="radio1">
<input type="radio" value="radio2" checked>
<input type="radio" value="radio3">
<input type="checkbox" value="check1">
<input type="checkbox" value="check2" checked>
<input type="checkbox" value="check3">
`,
async test({ assert, component, target, window }) {
const event = new window.MouseEvent('click');

@ -25,6 +25,21 @@ export default {
<p>Beta</p>`,
ssrHtml: `
<label>
<input type="checkbox" value="[object Object]"> Alpha
</label>
<label>
<input type="checkbox" value="[object Object]" checked> Beta
</label>
<label>
<input type="checkbox" value="[object Object]"> Gamma
</label>
<p>Beta</p>`,
async test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, false);

@ -25,6 +25,21 @@ export default {
<p>Beta</p>`,
ssrHtml: `
<label>
<input type="checkbox" value="[object Object]"> Alpha
</label>
<label>
<input type="checkbox" value="[object Object]" checked> Beta
</label>
<label>
<input type="checkbox" value="[object Object]"> Gamma
</label>
<p>Beta</p>`,
async test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, false);

@ -64,6 +64,54 @@ export default {
</div>
`,
ssrHtml: `
<div>
<label>
<input type="checkbox" value="[object Object]"> Alpha
</label>
<label>
<input type="checkbox" value="[object Object]" checked> Beta
</label>
<label>
<input type="checkbox" value="[object Object]"> Gamma
</label>
<p>Beta</p>
</div>
<div>
<label>
<input type="checkbox" value="[object Object]"> Alpha
</label>
<label>
<input type="checkbox" value="[object Object]"> Beta
</label>
<label>
<input type="checkbox" value="[object Object]"> Gamma
</label>
<p></p>
</div>
<div>
<label>
<input type="checkbox" value="[object Object]"> Alpha
</label>
<label>
<input type="checkbox" value="[object Object]"> Beta
</label>
<label>
<input type="checkbox" value="[object Object]" checked> Gamma
</label>
<p>Gamma</p>
</div>
`,
async test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, false);

@ -12,6 +12,19 @@ export default {
<p>1, 2, 3</p>`,
ssrHtml: `
<label>
<input type="checkbox" value="1" checked> 1
</label>
<label>
<input type="checkbox" value="2" checked> 2
</label>
<label>
<input type="checkbox" value="3" checked> 3
</label>
<p>1, 2, 3</p>`,
async test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, true);

@ -63,7 +63,53 @@ export default {
<p>Gamma</p>
</div>
`,
ssrHtml: `
<div>
<label>
<input type="checkbox" value="[object Object]"> Alpha
</label>
<label>
<input type="checkbox" value="[object Object]" checked> Beta
</label>
<label>
<input type="checkbox" value="[object Object]"> Gamma
</label>
<p>Beta</p>
</div>
<div>
<label>
<input type="checkbox" value="[object Object]"> Alpha
</label>
<label>
<input type="checkbox" value="[object Object]"> Beta
</label>
<label>
<input type="checkbox" value="[object Object]"> Gamma
</label>
<p></p>
</div>
<div>
<label>
<input type="checkbox" value="[object Object]"> Alpha
</label>
<label>
<input type="checkbox" value="[object Object]"> Beta
</label>
<label>
<input type="checkbox" value="[object Object]" checked> Gamma
</label>
<p>Gamma</p>
</div>
`,
async test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, false);

@ -17,7 +17,24 @@ export default {
<label><input type="checkbox" value="3"> 3</label>
<p>3</p>
`,
ssrHtml: `
<label><input type="checkbox" value="1" checked> 1</label>
<label><input type="checkbox" value="2"> 2</label>
<label><input type="checkbox" value="3"> 3</label>
<p>1</p>
<label><input type="checkbox" value="1"> 1</label>
<label><input type="checkbox" value="2" checked> 2</label>
<label><input type="checkbox" value="3"> 3</label>
<p>2</p>
<label><input type="checkbox" value="1"> 1</label>
<label><input type="checkbox" value="2"> 2</label>
<label><input type="checkbox" value="3"> 3</label>
<p></p>
<label><input type="checkbox" value="1"> 1</label>
<label><input type="checkbox" value="2"> 2</label>
<label><input type="checkbox" value="3" checked> 3</label>
<p>3</p>
`,
async test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, true);

@ -17,7 +17,24 @@ export default {
<label><input type="checkbox" value="3"> 3</label>
<p>1</p>
`,
ssrHtml: `
<label><input type="checkbox" value="1" checked> 1</label>
<label><input type="checkbox" value="2"> 2</label>
<label><input type="checkbox" value="3"> 3</label>
<p>1</p>
<label><input type="checkbox" value="1" checked> 1</label>
<label><input type="checkbox" value="2" checked> 2</label>
<label><input type="checkbox" value="3" checked> 3</label>
<p>1, 2, 3</p>
<label><input type="checkbox" value="1"> 1</label>
<label><input type="checkbox" value="2" checked> 2</label>
<label><input type="checkbox" value="3"> 3</label>
<p>2</p>
<label><input type="checkbox" value="1" checked> 1</label>
<label><input type="checkbox" value="2"> 2</label>
<label><input type="checkbox" value="3"> 3</label>
<p>1</p>
`,
async test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, true);

@ -13,7 +13,6 @@ export default {
<label><input type="checkbox" value="z"> z</label>
<p></p>
`,
async test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, false);

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save