Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const nodes = new AuNodeSequence(dom, wrapper);
const itemBinding = new PropertyBinding(new AccessScopeExpression('item'), text, 'textContent', BindingMode.toView, observerLocator, container);
binding.persistentFlags |= strategy;
(itemRenderable as Writable).nodes = nodes;
addBinding(itemRenderable, itemBinding);
}
};
const itemFactory = new ViewFactory(`item-view`, itemTemplate, lifecycle);
const binding: PropertyBinding = {
target: null,
targetProperty: 'items',
sourceExpression: new ForOfStatement(new BindingIdentifier('item'), new AccessScopeExpression('items'))
} as any;
const renderable: IController = {
bindings: [binding]
} as any;
let sut: Repeat;
if (proxies) {
const raw = new Repeat(location, renderable, itemFactory);
sut = new ProxyObserver(raw).proxy;
raw.$controller = Controller.forCustomAttribute(sut, container);
} else {
sut = new Repeat(location, renderable, itemFactory);
sut.$controller = Controller.forCustomAttribute(sut, container);
}
binding.target = sut as any;
// -- Round 1 --
[`+$3`, new UnaryExpression('+', new AccessScopeExpression('$3'))],
[`void $4`, new UnaryExpression('void', new AccessScopeExpression('$4'))],
[`typeof $5`, new UnaryExpression('typeof', new AccessScopeExpression('$5'))]
];
// concatenation of UnaryExpression + LeftHandSide
// This forms the group Precedence.LeftHandSide and includes Precedence.Unary
const SimpleIsUnaryList: [string, any][] = [
...SimpleIsLeftHandSideList,
...SimpleUnaryList
];
// This forms the group Precedence.Multiplicative
const SimpleMultiplicativeList: [string, any][] = [
[`$6*$7`, new BinaryExpression('*', new AccessScopeExpression('$6'), new AccessScopeExpression('$7'))],
[`$8%$9`, new BinaryExpression('%', new AccessScopeExpression('$8'), new AccessScopeExpression('$9'))],
[`$10/$11`, new BinaryExpression('/', new AccessScopeExpression('$10'), new AccessScopeExpression('$11'))]
];
const SimpleIsMultiplicativeList: [string, any][] = [
...SimpleIsUnaryList,
...SimpleMultiplicativeList
];
// This forms the group Precedence.Additive
const SimpleAdditiveList: [string, any][] = [
[`$12+$13`, new BinaryExpression('+', new AccessScopeExpression('$12'), new AccessScopeExpression('$13'))],
[`$14-$15`, new BinaryExpression('-', new AccessScopeExpression('$14'), new AccessScopeExpression('$15'))]
];
const SimpleIsAdditiveList: [string, any][] = [
...SimpleIsMultiplicativeList,
...SimpleAdditiveList
];
[`$12+$13`, new BinaryExpression('+', new AccessScopeExpression('$12'), new AccessScopeExpression('$13'))],
[`$14-$15`, new BinaryExpression('-', new AccessScopeExpression('$14'), new AccessScopeExpression('$15'))]
];
const SimpleIsAdditiveList: [string, any][] = [
...SimpleIsMultiplicativeList,
...SimpleAdditiveList
];
// This forms the group Precedence.Relational
const SimpleRelationalList: [string, any][] = [
[`$16<$17`, new BinaryExpression('<', new AccessScopeExpression('$16'), new AccessScopeExpression('$17'))],
[`$18>$19`, new BinaryExpression('>', new AccessScopeExpression('$18'), new AccessScopeExpression('$19'))],
[`$20<=$21`, new BinaryExpression('<=', new AccessScopeExpression('$20'), new AccessScopeExpression('$21'))],
[`$22>=$23`, new BinaryExpression('>=', new AccessScopeExpression('$22'), new AccessScopeExpression('$23'))],
[`$24 in $25`, new BinaryExpression('in', new AccessScopeExpression('$24'), new AccessScopeExpression('$25'))],
[`$26 instanceof $27`, new BinaryExpression('instanceof', new AccessScopeExpression('$26'), new AccessScopeExpression('$27'))]
];
const SimpleIsRelationalList: [string, any][] = [
...SimpleIsAdditiveList,
...SimpleRelationalList
];
// This forms the group Precedence.Equality
const SimpleEqualityList: [string, any][] = [
[`$28==$29`, new BinaryExpression('==', new AccessScopeExpression('$28'), new AccessScopeExpression('$29'))],
[`$30!=$31`, new BinaryExpression('!=', new AccessScopeExpression('$30'), new AccessScopeExpression('$31'))],
[`$32===$33`, new BinaryExpression('===', new AccessScopeExpression('$32'), new AccessScopeExpression('$33'))],
[`$34!==$35`, new BinaryExpression('!==', new AccessScopeExpression('$34'), new AccessScopeExpression('$35'))]
];
const SimpleIsEqualityList: [string, any][] = [
...SimpleIsRelationalList,
...SimpleEqualityList
() => [new AccessScopeExpression('foo'), `foo `],
() => [new AccessMemberExpression(new AccessScopeExpression('foo'), 'bar'), `foo.bar `],
(ctx, $1, [attr, to, value]) => [`${attr}.delegate`, value, { type: HTT.listenerBinding, from: new AccessScopeExpression(value), to, strategy: DelegationStrategy.bubbling, preventDefault: false }],
(ctx, $1, [attr, to, value]) => [`${attr}.capture`, value, { type: HTT.listenerBinding, from: new AccessScopeExpression(value), to, strategy: DelegationStrategy.capturing, preventDefault: false }],
@customAttribute({
name: 'prop',
isTemplateController: true
})
class Prop {
public value: any;
}
const { template, instructions } = compileWith(
`<template></template>`,
[Prop]
);
assert.strictEqual((template as HTMLTemplateElement).outerHTML, '<template></template>', `(template as HTMLTemplateElement).outerHTML`);
const [hydratePropAttrInstruction] = instructions[0] as unknown as [HydrateTemplateController];
verifyInstructions(hydratePropAttrInstruction.instructions, [
{ toVerify: ['type', 'to', 'from'],
type: TT.propertyBinding, to: 'value', from: new AccessScopeExpression('p') }
]);
verifyInstructions(hydratePropAttrInstruction.def.instructions[0], [
{ toVerify: ['type', 'to', 'from'],
type: TT.propertyBinding, to: 'name', from: new AccessScopeExpression('name') },
{ toVerify: ['type', 'to', 'from'],
type: TT.propertyBinding, to: 'title', from: new AccessScopeExpression('title') },
]);
});
(ctx, $1, [attr, to, value]) => [`${attr}.bind`, value, { type: TT.propertyBinding, from: new AccessScopeExpression(value), to, mode: BindingMode.toView, oneTime: false }],
(ctx, $1, [attr, to, value]) => [`${attr}.to-view`, value, { type: TT.propertyBinding, from: new AccessScopeExpression(value), to, mode: BindingMode.toView, oneTime: false }],
() => [new CallScopeExpression('theFunc', [new AccessScopeExpression('arg1'), new AccessScopeExpression('arg2'), new AccessScopeExpression('arg3')]), `theFunc(arg1, arg2, arg3)`]
];