// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`t-foreach does not pollute the rendering context 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; let block1 = createBlock(\`
\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block2, v_block2, l_block2, c_block2] = prepareList([1]);; for (let i1 = 0; i1 < l_block2; i1++) { ctx[\`item\`] = k_block2[i1]; const key1 = ctx['item']; c_block2[i1] = withKey(text(ctx['item']), key1); } const b2 = list(c_block2); return block1([], [b2]); } }" `; exports[`t-foreach iterate on items (on a element node) 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; let block1 = createBlock(\`
\`); let block3 = createBlock(\`\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block2, v_block2, l_block2, c_block2] = prepareList([1,2]);; for (let i1 = 0; i1 < l_block2; i1++) { ctx[\`item\`] = k_block2[i1]; const key1 = ctx['item']; let txt1 = ctx['item']; c_block2[i1] = withKey(block3([txt1]), key1); } const b2 = list(c_block2); return block1([], [b2]); } }" `; exports[`t-foreach iterate on items 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; let block1 = createBlock(\`
\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block2, v_block2, l_block2, c_block2] = prepareList([3,2,1]);; for (let i1 = 0; i1 < l_block2; i1++) { ctx[\`item\`] = k_block2[i1]; ctx[\`item_index\`] = i1; ctx[\`item_value\`] = v_block2[i1]; const key1 = ctx['item']; const b4 = text(\` [\`); const b5 = text(ctx['item_index']); const b6 = text(\`: \`); const b7 = text(ctx['item']); const b8 = text(\` \`); const b9 = text(ctx['item_value']); const b10 = text(\`] \`); c_block2[i1] = withKey(multi([b4, b5, b6, b7, b8, b9, b10]), key1); } const b2 = list(c_block2); return block1([], [b2]); } }" `; exports[`t-foreach iterate, Map param 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block1, v_block1, l_block1, c_block1] = prepareList(ctx['value']);; for (let i1 = 0; i1 < l_block1; i1++) { ctx[\`item\`] = k_block1[i1]; ctx[\`item_index\`] = i1; ctx[\`item_value\`] = v_block1[i1]; const key1 = ctx['item_index']; const b3 = text(\` [\`); const b4 = text(ctx['item_index']); const b5 = text(\`: \`); const b6 = text(ctx['item']); const b7 = text(\` \`); const b8 = text(ctx['item_value']); const b9 = text(\`] \`); c_block1[i1] = withKey(multi([b3, b4, b5, b6, b7, b8, b9]), key1); } return list(c_block1); } }" `; exports[`t-foreach iterate, Set param 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block1, v_block1, l_block1, c_block1] = prepareList(ctx['value']);; for (let i1 = 0; i1 < l_block1; i1++) { ctx[\`item\`] = k_block1[i1]; ctx[\`item_index\`] = i1; ctx[\`item_value\`] = v_block1[i1]; const key1 = ctx['item_index']; const b3 = text(\` [\`); const b4 = text(ctx['item_index']); const b5 = text(\`: \`); const b6 = text(ctx['item']); const b7 = text(\` \`); const b8 = text(ctx['item_value']); const b9 = text(\`] \`); c_block1[i1] = withKey(multi([b3, b4, b5, b6, b7, b8, b9]), key1); } return list(c_block1); } }" `; exports[`t-foreach iterate, dict param 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; let block1 = createBlock(\`
\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block2, v_block2, l_block2, c_block2] = prepareList(ctx['value']);; for (let i1 = 0; i1 < l_block2; i1++) { ctx[\`item\`] = k_block2[i1]; ctx[\`item_index\`] = i1; ctx[\`item_value\`] = v_block2[i1]; const key1 = ctx['item_index']; const b4 = text(\` [\`); const b5 = text(ctx['item_index']); const b6 = text(\`: \`); const b7 = text(ctx['item']); const b8 = text(\` \`); const b9 = text(ctx['item_value']); const b10 = text(\`] \`); c_block2[i1] = withKey(multi([b4, b5, b6, b7, b8, b9, b10]), key1); } const b2 = list(c_block2); return block1([], [b2]); } }" `; exports[`t-foreach iterate, generator param 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block1, v_block1, l_block1, c_block1] = prepareList(ctx['gen']());; for (let i1 = 0; i1 < l_block1; i1++) { ctx[\`item\`] = k_block1[i1]; ctx[\`item_index\`] = i1; ctx[\`item_value\`] = v_block1[i1]; const key1 = ctx['item_index']; const b3 = text(\` [\`); const b4 = text(ctx['item_index']); const b5 = text(\`: \`); const b6 = text(ctx['item']); const b7 = text(\` \`); const b8 = text(ctx['item_value']); const b9 = text(\`] \`); c_block1[i1] = withKey(multi([b3, b4, b5, b6, b7, b8, b9]), key1); } return list(c_block1); } }" `; exports[`t-foreach iterate, iterable param 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block1, v_block1, l_block1, c_block1] = prepareList(ctx['map'].values());; for (let i1 = 0; i1 < l_block1; i1++) { ctx[\`item\`] = k_block1[i1]; ctx[\`item_index\`] = i1; ctx[\`item_value\`] = v_block1[i1]; const key1 = ctx['item_index']; const b3 = text(\` [\`); const b4 = text(ctx['item_index']); const b5 = text(\`: \`); const b6 = text(ctx['item']); const b7 = text(\` \`); const b8 = text(ctx['item_value']); const b9 = text(\`] \`); c_block1[i1] = withKey(multi([b3, b4, b5, b6, b7, b8, b9]), key1); } return list(c_block1); } }" `; exports[`t-foreach iterate, position 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; let block1 = createBlock(\`
\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block2, v_block2, l_block2, c_block2] = prepareList(Array(5));; for (let i1 = 0; i1 < l_block2; i1++) { ctx[\`elem\`] = k_block2[i1]; ctx[\`elem_first\`] = i1 === 0; ctx[\`elem_last\`] = i1 === k_block2.length - 1; ctx[\`elem_index\`] = i1; const key1 = ctx['elem']; let b4, b5, b6, b7, b8, b9; b4 = text(\` -\`); if (ctx['elem_first']) { b5 = text(\` first\`); } if (ctx['elem_last']) { b6 = text(\` last\`); } b7 = text(\` (\`); b8 = text(ctx['elem_index']); b9 = text(\`) \`); c_block2[i1] = withKey(multi([b4, b5, b6, b7, b8, b9]), key1); } const b2 = list(c_block2); return block1([], [b2]); } }" `; exports[`t-foreach iterate, string param 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block1, v_block1, l_block1, c_block1] = prepareList('abc');; for (let i1 = 0; i1 < l_block1; i1++) { ctx[\`item\`] = k_block1[i1]; ctx[\`item_index\`] = i1; ctx[\`item_value\`] = v_block1[i1]; const key1 = ctx['item_index']; const b3 = text(\` [\`); const b4 = text(ctx['item_index']); const b5 = text(\`: \`); const b6 = text(ctx['item']); const b7 = text(\` \`); const b8 = text(ctx['item_value']); const b9 = text(\`] \`); c_block1[i1] = withKey(multi([b3, b4, b5, b6, b7, b8, b9]), key1); } return list(c_block1); } }" `; exports[`t-foreach simple iteration (in a node) 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; let block1 = createBlock(\`
\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block2, v_block2, l_block2, c_block2] = prepareList([3,2,1]);; for (let i1 = 0; i1 < l_block2; i1++) { ctx[\`item\`] = k_block2[i1]; const key1 = ctx['item']; c_block2[i1] = withKey(text(ctx['item']), key1); } const b2 = list(c_block2); return block1([], [b2]); } }" `; exports[`t-foreach simple iteration 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block1, v_block1, l_block1, c_block1] = prepareList([3,2,1]);; for (let i1 = 0; i1 < l_block1; i1++) { ctx[\`item\`] = k_block1[i1]; const key1 = ctx['item']; c_block1[i1] = withKey(text(ctx['item']), key1); } return list(c_block1); } }" `; exports[`t-foreach simple iteration with two nodes inside 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; let block3 = createBlock(\`a\`); let block4 = createBlock(\`b\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block1, v_block1, l_block1, c_block1] = prepareList([3,2,1]);; for (let i1 = 0; i1 < l_block1; i1++) { ctx[\`item\`] = k_block1[i1]; const key1 = ctx['item']; let txt1 = ctx['item']; const b3 = block3([txt1]); let txt2 = ctx['item']; const b4 = block4([txt2]); c_block1[i1] = withKey(multi([b3, b4]), key1); } return list(c_block1); } }" `; exports[`t-foreach t-call with body in t-foreach in t-foreach 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, isBoundary, withDefault, setContextValue, withKey } = helpers; const callTemplate_1 = app.getTemplate(\`sub\`); let block1 = createBlock(\`
[][][]
\`); let block6 = createBlock(\`\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); ctx[isBoundary] = 1 ctx = Object.create(ctx); const [k_block2, v_block2, l_block2, c_block2] = prepareList(ctx['numbers']);; for (let i1 = 0; i1 < l_block2; i1++) { ctx[\`a\`] = k_block2[i1]; ctx[\`a_first\`] = i1 === 0; ctx[\`a_last\`] = i1 === k_block2.length - 1; ctx[\`a_index\`] = i1; ctx[\`a_value\`] = v_block2[i1]; const key1 = ctx['a']; ctx = Object.create(ctx); const [k_block4, v_block4, l_block4, c_block4] = prepareList(ctx['letters']);; for (let i2 = 0; i2 < l_block4; i2++) { ctx[\`b\`] = k_block4[i2]; ctx[\`b_first\`] = i2 === 0; ctx[\`b_last\`] = i2 === k_block4.length - 1; ctx[\`b_index\`] = i2; ctx[\`b_value\`] = v_block4[i2]; const key2 = ctx['b']; ctx = Object.create(ctx); ctx[isBoundary] = 1; setContextValue(ctx, \\"c\\", 'x'+'_'+ctx['a']+'_'+ctx['b']); c_block4[i2] = withKey(callTemplate_1.call(this, ctx, node, key + \`__1__\${key1}__\${key2}\`), key2); ctx = ctx.__proto__; } ctx = ctx.__proto__; const b4 = list(c_block4); let txt1 = ctx['c']; const b6 = block6([txt1]); c_block2[i1] = withKey(multi([b4, b6]), key1); } ctx = ctx.__proto__; const b2 = list(c_block2); let txt2 = ctx['a']; let txt3 = ctx['b']; let txt4 = ctx['c']; return block1([txt2, txt3, txt4], [b2]); } }" `; exports[`t-foreach t-call with body in t-foreach in t-foreach 2`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; return function template(ctx, node, key = \\"\\") { const b2 = text(\` [\`); const b3 = text(ctx['a']); const b4 = text(\`] [\`); const b5 = text(ctx['b']); const b6 = text(\`] [\`); const b7 = text(ctx['c']); const b8 = text(\`] \`); return multi([b2, b3, b4, b5, b6, b7, b8]); } }" `; exports[`t-foreach t-call without body in t-foreach in t-foreach 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; const callTemplate_1 = app.getTemplate(\`sub\`); let block1 = createBlock(\`
[][][]
\`); let block6 = createBlock(\`\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block2, v_block2, l_block2, c_block2] = prepareList(ctx['numbers']);; for (let i1 = 0; i1 < l_block2; i1++) { ctx[\`a\`] = k_block2[i1]; ctx[\`a_first\`] = i1 === 0; ctx[\`a_last\`] = i1 === k_block2.length - 1; ctx[\`a_index\`] = i1; ctx[\`a_value\`] = v_block2[i1]; const key1 = ctx['a']; ctx = Object.create(ctx); const [k_block4, v_block4, l_block4, c_block4] = prepareList(ctx['letters']);; for (let i2 = 0; i2 < l_block4; i2++) { ctx[\`b\`] = k_block4[i2]; ctx[\`b_first\`] = i2 === 0; ctx[\`b_last\`] = i2 === k_block4.length - 1; ctx[\`b_index\`] = i2; ctx[\`b_value\`] = v_block4[i2]; const key2 = ctx['b']; c_block4[i2] = withKey(callTemplate_1.call(this, ctx, node, key + \`__1__\${key1}__\${key2}\`), key2); } ctx = ctx.__proto__; const b4 = list(c_block4); let txt1 = ctx['c']; const b6 = block6([txt1]); c_block2[i1] = withKey(multi([b4, b6]), key1); } ctx = ctx.__proto__; const b2 = list(c_block2); let txt2 = ctx['a']; let txt3 = ctx['b']; let txt4 = ctx['c']; return block1([txt2, txt3, txt4], [b2]); } }" `; exports[`t-foreach t-call without body in t-foreach in t-foreach 2`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { isBoundary, withDefault, setContextValue } = helpers; return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); ctx[isBoundary] = 1 setContextValue(ctx, \\"c\\", 'x'+'_'+ctx['a']+'_'+ctx['b']); const b2 = text(\` [\`); const b3 = text(ctx['a']); const b4 = text(\`] [\`); const b5 = text(ctx['b']); const b6 = text(\`] [\`); const b7 = text(ctx['c']); const b8 = text(\`] \`); return multi([b2, b3, b4, b5, b6, b7, b8]); } }" `; exports[`t-foreach t-foreach in t-foreach 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; let block1 = createBlock(\`
\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block2, v_block2, l_block2, c_block2] = prepareList(ctx['numbers']);; for (let i1 = 0; i1 < l_block2; i1++) { ctx[\`number\`] = k_block2[i1]; const key1 = ctx['number']; ctx = Object.create(ctx); const [k_block3, v_block3, l_block3, c_block3] = prepareList(ctx['letters']);; for (let i2 = 0; i2 < l_block3; i2++) { ctx[\`letter\`] = k_block3[i2]; const key2 = ctx['letter']; const b5 = text(\` [\`); const b6 = text(ctx['number']); const b7 = text(ctx['letter']); const b8 = text(\`] \`); c_block3[i2] = withKey(multi([b5, b6, b7, b8]), key2); } ctx = ctx.__proto__; c_block2[i1] = withKey(list(c_block3), key1); } const b2 = list(c_block2); return block1([], [b2]); } }" `; exports[`t-foreach t-foreach with t-if inside (no external node) 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; let block3 = createBlock(\`\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block1, v_block1, l_block1, c_block1] = prepareList(ctx['elems']);; for (let i1 = 0; i1 < l_block1; i1++) { ctx[\`elem\`] = k_block1[i1]; const key1 = ctx['elem'].id; let b3; if (ctx['elem'].id<3) { let txt1 = ctx['elem'].text; b3 = block3([txt1]); } c_block1[i1] = withKey(multi([b3]), key1); } return list(c_block1); } }" `; exports[`t-foreach t-foreach with t-if inside 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; let block1 = createBlock(\`
\`); let block4 = createBlock(\`\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block2, v_block2, l_block2, c_block2] = prepareList(ctx['elems']);; for (let i1 = 0; i1 < l_block2; i1++) { ctx[\`elem\`] = k_block2[i1]; const key1 = ctx['elem'].id; let b4; if (ctx['elem'].id<3) { let txt1 = ctx['elem'].text; b4 = block4([txt1]); } c_block2[i1] = withKey(multi([b4]), key1); } const b2 = list(c_block2); return block1([], [b2]); } }" `; exports[`t-foreach t-key on t-foreach 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; let block1 = createBlock(\`
\`); let block3 = createBlock(\`\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block2, v_block2, l_block2, c_block2] = prepareList(ctx['things']);; for (let i1 = 0; i1 < l_block2; i1++) { ctx[\`thing\`] = k_block2[i1]; const key1 = ctx['thing']; c_block2[i1] = withKey(block3(), key1); } const b2 = list(c_block2); return block1([], [b2]); } }" `; exports[`t-foreach throws error if invalid loop expression 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; let block1 = createBlock(\`
\`); let block3 = createBlock(\`\`); return function template(ctx, node, key = \\"\\") { ctx = Object.create(ctx); const [k_block2, v_block2, l_block2, c_block2] = prepareList(ctx['abc']);; for (let i1 = 0; i1 < l_block2; i1++) { ctx[\`item\`] = k_block2[i1]; ctx[\`item_index\`] = i1; const key1 = ctx['item']; const tKey_1 = ctx['item_index']; c_block2[i1] = withKey(block3(), tKey_1 + key1); } const b2 = list(c_block2); return block1([], [b2]); } }" `; exports[`t-foreach with t-memo 1`] = ` "function anonymous(app, bdom, helpers ) { let { text, createBlock, list, multi, html, toggler, comment } = bdom; let { prepareList, withKey } = helpers; let block1 = createBlock(\`
\`); let block3 = createBlock(\`

\`); return function template(ctx, node, key = \\"\\") { let cache = ctx.cache || {}; let nextCache = ctx.cache = {}; ctx = Object.create(ctx); const [k_block2, v_block2, l_block2, c_block2] = prepareList(ctx['items']);; for (let i1 = 0; i1 < l_block2; i1++) { ctx[\`item\`] = k_block2[i1]; const key1 = ctx['item'].id; const memo1 = [ctx['item'].x]; const vnode1 = cache[key1];; if (vnode1) { if (shallowEqual(vnode1.memo, memo1)) { c_block2[i1] = vnode1; nextCache[key1] = vnode1; continue; } } let txt1 = ctx['item'].x; let txt2 = ctx['item'].y; c_block2[i1] = withKey(block3([txt1, txt2]), key1); nextCache[key1] = Object.assign(c_block2[i1], {memo: memo1}); } const b2 = list(c_block2); return block1([], [b2]); } }" `;