WIP: replace root with context reference

pull/5870/head
Ivan Hofer 6 years ago
parent 5111a79f21
commit 2ce0960693

@ -288,7 +288,7 @@ export default function dom(
const has_create_fragment = component.compile_options.dev || block.has_content();
if (has_create_fragment) {
body.push(b`
function create_fragment(root, #ctx) {
function create_fragment(#ctx) {
${block.get_contents()}
}
`);

@ -355,6 +355,7 @@ export default class EachBlockWrapper extends Wrapper {
function ${this.vars.get_each_context}(#ctx, list, i) {
const child_ctx = #ctx.slice();
${this.context_props}
child_ctx.root = #ctx.root;
return child_ctx;
}
`);

@ -191,7 +191,7 @@ export default class InlineComponentWrapper extends Wrapper {
// will complain that options.target is missing. This would
// work better if components had separate public and private
// APIs
component_opts.properties.push(p`root`);
component_opts.properties.push(p`root: #ctx.root`);
component_opts.properties.push(p`$$inline: true`);
}

@ -144,12 +144,14 @@ export function init(component, options, instance, create_fragment, not_equal, p
})
: [];
$$.ctx.root = options.target || options.root;
$$.update();
ready = true;
run_all($$.before_update);
// `false` as a special case of no DOM component
$$.fragment = create_fragment ? create_fragment(options.target || options.root, $$.ctx) : false;
$$.fragment = create_fragment ? create_fragment($$.ctx) : false;
if (options.target) {
if (options.hydrate) {

@ -16,6 +16,7 @@ export function handle_promise(promise, info) {
if (key !== undefined) {
child_ctx = child_ctx.slice();
child_ctx[key] = value;
child_ctx.root = info.ctx.root;
}
const block = type && (info.current = type)(child_ctx);

@ -79,10 +79,12 @@ export function create_slot(definition, ctx, $$scope, fn) {
}
}
export function get_slot_context(definition, ctx, $$scope, fn) {
return definition[1] && fn
function get_slot_context(definition, ctx, $$scope, fn) {
const context = definition[1] && fn
? assign($$scope.ctx.slice(), definition[1](fn(ctx)))
: $$scope.ctx;
context.root = ctx.root;
return context;
}
export function get_slot_changes(definition, $$scope, dirty, fn) {

@ -11,7 +11,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let button;
let foo_action;
let mounted;

@ -11,7 +11,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let a;
let link_action;
let mounted;

@ -9,7 +9,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let mounted;
let dispose;
add_render_callback(/*onlinestatuschanged*/ ctx[1]);

@ -10,7 +10,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let details;
let mounted;
let dispose;

@ -11,7 +11,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div;
let div_resize_listener;

@ -13,7 +13,7 @@ import {
space
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let input0;
let t;
let input1;

@ -15,7 +15,7 @@ import {
text
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let p;
let t0;
let t1;

@ -20,7 +20,7 @@ import {
const file = undefined;
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let p;
let t0;
let t1;

@ -18,7 +18,7 @@ function add_css(options) {
append_styles(options, "1a7i8ec", "p.svelte-1a7i8ec{color:red}");
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let p;
let t;

@ -11,7 +11,7 @@ import {
transition_out
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let nested;
let current;
nested = new /*Nested*/ ctx[0]({ props: { foo: [1, 2, 3] } });

@ -11,7 +11,7 @@ import {
transition_out
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let nested;
let current;
nested = new /*Nested*/ ctx[0]({ props: { foo: "bar" } });

@ -11,7 +11,7 @@ import {
transition_out
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let nested;
let current;
nested = new /*Nested*/ ctx[0]({ props: { foo: "bar" } });

@ -19,7 +19,7 @@ import {
import Foo from "./Foo.svelte";
import Bar from "./Bar.svelte";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let foo;
let t0;
let bar;

@ -11,7 +11,7 @@ import {
transition_out
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let nested;
let current;
nested = new /*Nested*/ ctx[0]({ props: { foo: "bar" } });

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

@ -17,7 +17,7 @@ import {
import { writable } from "svelte/store";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let h1;
let t0;
let t1;

@ -15,7 +15,7 @@ function add_css(options) {
append_styles(options, "1slhpfn", "@media(min-width: 1px){div.svelte-1slhpfn{color:red}}");
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div;
return {

@ -10,7 +10,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div;
return {

@ -11,7 +11,7 @@ import {
space
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div0;
let t;
let div1;

@ -18,7 +18,7 @@ import {
const file = undefined;
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let h1;
let t0;
let t1;

@ -23,6 +23,7 @@ const file = undefined;
function get_each_context(ctx, list, i) {
const child_ctx = ctx.slice();
child_ctx[4] = list[i];
child_ctx.root = ctx.root;
return child_ctx;
}
@ -84,7 +85,7 @@ function create_each_block(ctx) {
return block;
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let t0;
let p;
let t1;

@ -23,6 +23,7 @@ const file = undefined;
function get_each_context(ctx, list, i) {
const child_ctx = ctx.slice();
child_ctx[2] = list[i];
child_ctx.root = ctx.root;
return child_ctx;
}
@ -78,7 +79,7 @@ function create_each_block(ctx) {
return block;
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let t0;
let p;
let t1;

@ -10,7 +10,7 @@ import {
const file = undefined;
function create_fragment(root, ctx) {
function create_fragment(ctx) {
const block = {
c: function create() {
{

@ -21,6 +21,7 @@ function get_each_context(ctx, list, i) {
const child_ctx = ctx.slice();
child_ctx[0] = list[i];
child_ctx[2] = i;
child_ctx.root = ctx.root;
return child_ctx;
}
@ -63,7 +64,7 @@ function create_each_block(ctx) {
return block;
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let each_1_anchor;
let each_value = things;
validate_each_argument(each_value);

@ -17,6 +17,7 @@ import {
function get_each_context(ctx, list, i) {
const child_ctx = ctx.slice();
child_ctx[1] = list[i];
child_ctx.root = ctx.root;
return child_ctx;
}
@ -44,7 +45,7 @@ function create_each_block(ctx) {
};
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let each_1_anchor;
let each_value = /*createElement*/ ctx[0];
let each_blocks = [];

@ -18,7 +18,7 @@ import {
const file = undefined;
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let p;
let t0_value = Math.max(0, /*foo*/ ctx[0]) + "";
let t0;

@ -10,7 +10,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let input;
let mounted;
let dispose;

@ -13,7 +13,7 @@ import {
import LazyLoad from "./LazyLoad.svelte";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let lazyload;
let current;
lazyload = new LazyLoad({ props: { load: func } });

@ -17,6 +17,7 @@ import {
function get_each_context(ctx, list, i) {
const child_ctx = ctx.slice();
child_ctx[5] = list[i];
child_ctx.root = ctx.root;
return child_ctx;
}
@ -44,7 +45,7 @@ function create_each_block(ctx) {
};
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let each_1_anchor;
let each_value = [/*a*/ ctx[0], /*b*/ ctx[1], /*c*/ ctx[2], /*d*/ ctx[3], /*e*/ ctx[4]];
let each_blocks = [];

@ -20,6 +20,7 @@ function get_each_context(ctx, list, i) {
const child_ctx = ctx.slice();
child_ctx[4] = list[i];
child_ctx[6] = i;
child_ctx.root = ctx.root;
return child_ctx;
}
@ -81,7 +82,7 @@ function create_each_block(ctx) {
};
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let t0;
let p;
let t1;

@ -20,6 +20,7 @@ import {
function get_each_context(ctx, list, i) {
const child_ctx = ctx.slice();
child_ctx[1] = list[i];
child_ctx.root = ctx.root;
return child_ctx;
}
@ -64,7 +65,7 @@ function create_each_block(key_1, ctx) {
};
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let each_blocks = [];
let each_1_lookup = new Map();
let each_1_anchor;

@ -18,6 +18,7 @@ import {
function get_each_context(ctx, list, i) {
const child_ctx = ctx.slice();
child_ctx[1] = list[i];
child_ctx.root = ctx.root;
return child_ctx;
}
@ -49,7 +50,7 @@ function create_each_block(key_1, ctx) {
};
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let each_blocks = [];
let each_1_lookup = new Map();
let each_1_anchor;

@ -16,7 +16,7 @@ import {
text
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let p0;
let button0;
let t1;

@ -11,7 +11,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let a;
let mounted;
let dispose;

@ -15,7 +15,7 @@ import {
stop_propagation
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div1;
let div0;
let t1;

@ -10,7 +10,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let meta0;
let meta1;

@ -9,7 +9,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let b;
return {

@ -9,7 +9,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let b;
return {

@ -14,7 +14,7 @@ import {
space
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let img;
let img_src_value;
let t;

@ -28,7 +28,7 @@ function create_if_block(ctx) {
};
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let show_if = /*item*/ ctx[0].divider && /*item*/ ctx[0].divider.includes(1);
let if_block_anchor;
let if_block = show_if && create_if_block(ctx);

@ -45,7 +45,7 @@ function create_if_block(ctx) {
};
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let if_block_anchor;
function select_block_type(ctx, dirty) {

@ -27,7 +27,7 @@ function create_if_block(ctx) {
};
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let if_block_anchor;
let if_block = /*foo*/ ctx[0] && create_if_block(ctx);

@ -10,7 +10,7 @@ import {
text
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let t0;
let t1;
let t2_value = import.meta.url + "";

@ -10,7 +10,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let button;
let mounted;
let dispose;

@ -10,7 +10,7 @@ import {
set_style
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div;
return {

@ -10,7 +10,7 @@ import {
set_style
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div;
return {

@ -10,7 +10,7 @@ import {
set_style
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div;
return {

@ -11,7 +11,7 @@ import {
space
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div0;
let t;
let div1;

@ -10,7 +10,7 @@ import {
set_style
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div;
return {

@ -11,7 +11,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let input;
let mounted;
let dispose;

@ -15,7 +15,7 @@ import {
space
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let form;
let input;
let t0;

@ -14,7 +14,7 @@ import {
to_number
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let input;
let mounted;
let dispose;

@ -14,7 +14,7 @@ import {
text
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let input;
let t0;
let h1;

@ -11,7 +11,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let input;
let mounted;
let dispose;

@ -14,7 +14,7 @@ import {
text
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let button;
let t1;
let p;

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

@ -14,7 +14,7 @@ import {
text
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let button;
let t1;
let p;

@ -14,7 +14,7 @@ import {
text
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let button;
let t1;
let p;

@ -14,7 +14,7 @@ import {
text
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let button;
let t1;
let p;

@ -10,7 +10,7 @@ import {
set_input_type
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let input;
return {

@ -18,7 +18,7 @@ import {
const { console: console_1 } = globals;
const file = undefined;
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div;
const block = {

@ -14,7 +14,7 @@ import {
time_ranges_to_array
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let audio;
let audio_updating = false;
let audio_animationframe;

@ -16,7 +16,7 @@ import {
import Imported from "Imported.svelte";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let imported;
let t;
let nonimported;

@ -9,7 +9,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let h1;
return {

@ -17,7 +17,7 @@ import {
transition_out
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let t0_value = /*a*/ ctx[0].normal + "";
let t0;
let t1_value = /*b*/ ctx[1]?.optional + "";

@ -15,7 +15,7 @@ import {
import { reactiveStoreVal, unreactiveExport } from "./store";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div0;
let t0;
let div1;

@ -11,7 +11,7 @@ import {
select_option
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let select;
let option0;
let option1;

@ -13,7 +13,7 @@ import {
space
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let img0;
let img0_src_value;
let t;

@ -11,7 +11,7 @@ import {
text
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let svg;
let title;
let t;

@ -1,7 +1,7 @@
/* generated by Svelte vX.Y.Z */
import { SvelteComponent, init, noop, safe_not_equal } from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let title_value;
document.title = title_value = "a " + /*custom*/ ctx[0] + " title";

@ -80,7 +80,7 @@ function create_if_block_1(ctx) {
};
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let if_block_anchor;
let if_block = /*x*/ ctx[0] && create_if_block(ctx);

@ -46,7 +46,7 @@ function create_if_block(ctx) {
};
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let if_block_anchor;
let current;
let if_block = /*num*/ ctx[0] < 5 && create_if_block(ctx);

@ -13,7 +13,7 @@ import {
text
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div0;
let p0;
let t1;

@ -14,7 +14,7 @@ import {
import { onMount } from "svelte";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let p;
let t;

@ -101,7 +101,7 @@ function create_if_block(ctx) {
};
}
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div;
let t0;
let p0;

@ -9,7 +9,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let div;
return {

@ -14,7 +14,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let video;
let video_updating = false;
let video_animationframe;

@ -9,7 +9,7 @@ import {
safe_not_equal
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let mounted;
let dispose;
add_render_callback(/*onlinestatuschanged*/ ctx[1]);

@ -14,7 +14,7 @@ import {
text
} from "svelte/internal";
function create_fragment(root, ctx) {
function create_fragment(ctx) {
let scrolling = false;
let clear_scrolling = () => {

Loading…
Cancel
Save