[IMP] qweb: add template name in generated compiled code

This commit is contained in:
Géry Debongnie
2019-12-10 14:27:14 +01:00
committed by aab-odoo
parent 124211c18b
commit b890e7ceae
7 changed files with 395 additions and 199 deletions
+3 -3
View File
@@ -392,12 +392,13 @@ export class QWeb extends EventBus {
}
let code = ctx.generateCode();
const templateName = ctx.templateName.replace(/`/g, "'").slice(0, 200);
code.unshift(` // Template name: "${templateName}"`)
let template;
try {
template = new Function("context", "extra", code.join("\n")) as CompiledTemplate;
template = new Function("context, extra", code.join("\n")) as CompiledTemplate;
} catch (e) {
const templateName = ctx.templateName.replace(/`/g, "'");
console.groupCollapsed(`Invalid Code generated by ${templateName}`);
console.warn(code.join("\n"));
console.groupEnd();
@@ -453,7 +454,6 @@ export class QWeb extends EventBus {
}
return;
}
if (ctx !== ctx.rootContext) {
ctx = ctx.subContext("currentKey", ctx.currentKey);
}
+10 -5
View File
@@ -1,8 +1,9 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`animations t-transition combined with component 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"Parent\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -45,8 +46,9 @@ exports[`animations t-transition combined with component 1`] = `
`;
exports[`animations t-transition combined with t-component and t-if 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"Parent\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -91,8 +93,9 @@ exports[`animations t-transition combined with t-component and t-if 1`] = `
`;
exports[`animations t-transition combined with t-component, remove and re-add before transitionend 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__2\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -137,8 +140,9 @@ exports[`animations t-transition combined with t-component, remove and re-add be
`;
exports[`animations t-transition with no delay/duration 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
var h = this.h;
let c1 = [], p1 = {key:1};
@@ -157,8 +161,9 @@ exports[`animations t-transition with no delay/duration 1`] = `
`;
exports[`animations t-transition, on a simple node (insert) 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"test\\"
let utils = this.constructor.utils;
var h = this.h;
let c1 = [], p1 = {key:1};
@@ -1,8 +1,9 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`basic widget properties reconciliation alg works for t-foreach in t-foreach 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__2\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -70,8 +71,9 @@ exports[`basic widget properties reconciliation alg works for t-foreach in t-for
`;
exports[`basic widget properties t-key on a component with t-if, and a sibling component 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__2\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -135,8 +137,9 @@ exports[`basic widget properties t-key on a component with t-if, and a sibling c
`;
exports[`class and style attributes with t-component dynamic t-att-style is properly added and updated on widget root el 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"ParentWidget\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -174,8 +177,9 @@ exports[`class and style attributes with t-component dynamic t-att-style is prop
`;
exports[`class and style attributes with t-component t-att-class is properly added/removed on widget root el (v2) 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"ParentWidget\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -217,8 +221,9 @@ exports[`class and style attributes with t-component t-att-class is properly add
`;
exports[`class and style attributes with t-component t-att-class is properly added/removed on widget root el (v2) 2`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"Child\\"
let utils = this.constructor.utils;
var h = this.h;
let _8 = {'c':true};
@@ -230,8 +235,9 @@ exports[`class and style attributes with t-component t-att-class is properly add
`;
exports[`class and style attributes with t-component t-att-class is properly added/removed on widget root el (v3) 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"ParentWidget\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -273,8 +279,9 @@ exports[`class and style attributes with t-component t-att-class is properly add
`;
exports[`class and style attributes with t-component t-att-class is properly added/removed on widget root el (v3) 2`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"Child\\"
let utils = this.constructor.utils;
var h = this.h;
let _8 = {'c':true};
@@ -286,8 +293,9 @@ exports[`class and style attributes with t-component t-att-class is properly add
`;
exports[`composition sub components with some state rendered in a loop 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"parent\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -341,8 +349,9 @@ exports[`composition sub components with some state rendered in a loop 1`] = `
`;
exports[`composition t-component with dynamic value 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"ParentWidget\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -379,8 +388,9 @@ exports[`composition t-component with dynamic value 1`] = `
`;
exports[`composition t-component with dynamic value 2 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"ParentWidget\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -417,8 +427,9 @@ exports[`composition t-component with dynamic value 2 1`] = `
`;
exports[`dynamic t-props basic use 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__2\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -455,8 +466,9 @@ exports[`dynamic t-props basic use 1`] = `
`;
exports[`other directives with t-component t-on with getter as handler 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__2\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -497,8 +509,9 @@ exports[`other directives with t-component t-on with getter as handler 1`] = `
`;
exports[`other directives with t-component t-on with handler bound to argument 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"ParentWidget\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -535,8 +548,9 @@ exports[`other directives with t-component t-on with handler bound to argument 1
`;
exports[`other directives with t-component t-on with handler bound to empty object (with non empty inner string) 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"ParentWidget\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -573,8 +587,9 @@ exports[`other directives with t-component t-on with handler bound to empty obje
`;
exports[`other directives with t-component t-on with handler bound to empty object 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"ParentWidget\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -611,8 +626,9 @@ exports[`other directives with t-component t-on with handler bound to empty obje
`;
exports[`other directives with t-component t-on with handler bound to object 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"ParentWidget\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -649,8 +665,9 @@ exports[`other directives with t-component t-on with handler bound to object 1`]
`;
exports[`other directives with t-component t-on with inline statement 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__2\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -691,8 +708,9 @@ exports[`other directives with t-component t-on with inline statement 1`] = `
`;
exports[`other directives with t-component t-on with no handler (only modifiers) 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__3\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -729,8 +747,9 @@ exports[`other directives with t-component t-on with no handler (only modifiers)
`;
exports[`other directives with t-component t-on with prevent and self modifiers (order matters) 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"ParentWidget\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -767,8 +786,9 @@ exports[`other directives with t-component t-on with prevent and self modifiers
`;
exports[`other directives with t-component t-on with self and prevent modifiers (order matters) 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"ParentWidget\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -805,8 +825,9 @@ exports[`other directives with t-component t-on with self and prevent modifiers
`;
exports[`other directives with t-component t-on with self modifier 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"ParentWidget\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -843,8 +864,9 @@ exports[`other directives with t-component t-on with self modifier 1`] = `
`;
exports[`other directives with t-component t-on with stop and/or prevent modifiers 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"ParentWidget\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -881,8 +903,9 @@ exports[`other directives with t-component t-on with stop and/or prevent modifie
`;
exports[`random stuff/miscellaneous can inject values in tagged templates 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__2\\"
var h = this.h;
let c1 = [], p1 = {key:1};
var vn1 = h('div', p1, c1);
@@ -898,8 +921,9 @@ exports[`random stuff/miscellaneous can inject values in tagged templates 1`] =
`;
exports[`random stuff/miscellaneous snapshotting compiled code 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"Parent\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -937,8 +961,9 @@ exports[`random stuff/miscellaneous snapshotting compiled code 1`] = `
`;
exports[`random stuff/miscellaneous t-on with handler bound to dynamic argument on a t-foreach 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__1\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -993,8 +1018,9 @@ exports[`random stuff/miscellaneous t-on with handler bound to dynamic argument
`;
exports[`t-model directive .lazy modifier 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__1\\"
var h = this.h;
let c1 = [], p1 = {key:1};
var vn1 = h('div', p1, c1);
@@ -1018,8 +1044,9 @@ exports[`t-model directive .lazy modifier 1`] = `
`;
exports[`t-model directive basic use, on an input 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__1\\"
var h = this.h;
let c1 = [], p1 = {key:1};
var vn1 = h('div', p1, c1);
@@ -1043,8 +1070,9 @@ exports[`t-model directive basic use, on an input 1`] = `
`;
exports[`t-model directive basic use, on another key in component 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"SomeComponent\\"
var h = this.h;
let c1 = [], p1 = {key:1};
var vn1 = h('div', p1, c1);
@@ -1068,8 +1096,9 @@ exports[`t-model directive basic use, on another key in component 1`] = `
`;
exports[`t-model directive in a t-foreach 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__1\\"
context = Object.create(context);
var h = this.h;
let c1 = [], p1 = {key:1};
@@ -1104,8 +1133,9 @@ exports[`t-model directive in a t-foreach 1`] = `
`;
exports[`t-model directive on a select 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"SomeComponent\\"
var h = this.h;
let c1 = [], p1 = {key:1};
var vn1 = h('div', p1, c1);
@@ -1150,8 +1180,9 @@ exports[`t-model directive on a select 1`] = `
`;
exports[`t-model directive on a sub state key 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__1\\"
var h = this.h;
let c1 = [], p1 = {key:1};
var vn1 = h('div', p1, c1);
@@ -1175,8 +1206,9 @@ exports[`t-model directive on a sub state key 1`] = `
`;
exports[`t-model directive on an input type=radio 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"SomeComponent\\"
var h = this.h;
let c1 = [], p1 = {key:1};
var vn1 = h('div', p1, c1);
@@ -1215,8 +1247,9 @@ exports[`t-model directive on an input type=radio 1`] = `
`;
exports[`t-model directive on an input, type=checkbox 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"SomeComponent\\"
var h = this.h;
let c1 = [], p1 = {key:1};
var vn1 = h('div', p1, c1);
@@ -1243,8 +1276,9 @@ exports[`t-model directive on an input, type=checkbox 1`] = `
`;
exports[`t-slot directive can define and call slots 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"Parent\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -1282,8 +1316,9 @@ exports[`t-slot directive can define and call slots 1`] = `
`;
exports[`t-slot directive can define and call slots 2`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"Dialog\\"
let owner = context;
var h = this.h;
let c7 = [], p7 = {key:7};
@@ -1307,8 +1342,9 @@ exports[`t-slot directive can define and call slots 2`] = `
`;
exports[`t-slot directive can define and call slots 3`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"slot_header_template\\"
var h = this.h;
let c1 = extra.parentNode;
Object.assign(context, extra.fiber.scope);
@@ -1320,8 +1356,9 @@ exports[`t-slot directive can define and call slots 3`] = `
`;
exports[`t-slot directive can define and call slots 4`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"slot_footer_template\\"
var h = this.h;
let c1 = extra.parentNode;
Object.assign(context, extra.fiber.scope);
@@ -1333,8 +1370,9 @@ exports[`t-slot directive can define and call slots 4`] = `
`;
exports[`t-slot directive content is the default slot 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"slot_default_template\\"
var h = this.h;
let c1 = extra.parentNode;
Object.assign(context, extra.fiber.scope);
@@ -1346,8 +1384,9 @@ exports[`t-slot directive content is the default slot 1`] = `
`;
exports[`t-slot directive default slot work with text nodes 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"slot_default_template\\"
var h = this.h;
let c1 = extra.parentNode;
Object.assign(context, extra.fiber.scope);
@@ -1356,8 +1395,9 @@ exports[`t-slot directive default slot work with text nodes 1`] = `
`;
exports[`t-slot directive multiple roots are allowed in a default slot 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"slot_default_template\\"
var h = this.h;
let c1 = extra.parentNode;
Object.assign(context, extra.fiber.scope);
@@ -1373,8 +1413,9 @@ exports[`t-slot directive multiple roots are allowed in a default slot 1`] = `
`;
exports[`t-slot directive multiple roots are allowed in a named slot 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"slot_content_template\\"
var h = this.h;
let c1 = extra.parentNode;
Object.assign(context, extra.fiber.scope);
@@ -1390,8 +1431,9 @@ exports[`t-slot directive multiple roots are allowed in a named slot 1`] = `
`;
exports[`t-slot directive refs are properly bound in slots 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"slot_footer_template\\"
let owner = context;
context.__owl__.refs = context.__owl__.refs || {};
var h = this.h;
@@ -1416,8 +1458,9 @@ exports[`t-slot directive refs are properly bound in slots 1`] = `
`;
exports[`t-slot directive slots are rendered with proper context 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"slot_footer_template\\"
let owner = context;
var h = this.h;
let c1 = extra.parentNode;
@@ -1432,8 +1475,9 @@ exports[`t-slot directive slots are rendered with proper context 1`] = `
`;
exports[`t-slot directive slots are rendered with proper context, part 2 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"Link\\"
let owner = context;
var h = this.h;
var _12 = context['props'].to;
@@ -1448,8 +1492,9 @@ exports[`t-slot directive slots are rendered with proper context, part 2 1`] = `
`;
exports[`t-slot directive slots are rendered with proper context, part 2 2`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"App\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -1516,8 +1561,9 @@ exports[`t-slot directive slots are rendered with proper context, part 2 2`] = `
`;
exports[`t-slot directive slots are rendered with proper context, part 2 3`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"slot_default_template\\"
var h = this.h;
let c7 = extra.parentNode;
Object.assign(context, extra.fiber.scope);
@@ -1530,8 +1576,9 @@ exports[`t-slot directive slots are rendered with proper context, part 2 3`] = `
`;
exports[`t-slot directive slots are rendered with proper context, part 3 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"Link\\"
let owner = context;
var h = this.h;
var _12 = context['props'].to;
@@ -1546,8 +1593,9 @@ exports[`t-slot directive slots are rendered with proper context, part 3 1`] = `
`;
exports[`t-slot directive slots are rendered with proper context, part 3 2`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"App\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -1615,8 +1663,9 @@ exports[`t-slot directive slots are rendered with proper context, part 3 2`] = `
`;
exports[`t-slot directive slots are rendered with proper context, part 3 3`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"slot_default_template\\"
var h = this.h;
let c7 = extra.parentNode;
let _8 = extra.vars._8;
@@ -1628,8 +1677,9 @@ exports[`t-slot directive slots are rendered with proper context, part 3 3`] = `
`;
exports[`t-slot directive slots are rendered with proper context, part 4 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"App\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -1668,8 +1718,9 @@ exports[`t-slot directive slots are rendered with proper context, part 4 1`] = `
`;
exports[`t-slot directive slots are rendered with proper context, part 4 2`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"slot_default_template\\"
var h = this.h;
let c1 = extra.parentNode;
let _2 = extra.vars._2;
@@ -1681,8 +1732,9 @@ exports[`t-slot directive slots are rendered with proper context, part 4 2`] = `
`;
exports[`t-slot directive template can just return a slot 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__2\\"
let utils = this.constructor.utils;
let owner = context;
let result;
@@ -1699,8 +1751,9 @@ exports[`t-slot directive template can just return a slot 1`] = `
`;
exports[`top level sub widgets basic use 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"Parent\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -1738,8 +1791,9 @@ exports[`top level sub widgets basic use 1`] = `
`;
exports[`top level sub widgets can select a sub widget 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__3\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
@@ -1,8 +1,9 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`props validation props are validated in dev mode (code snapshot) 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"App\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -1,8 +1,9 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Link component can render simple cases 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__1\\"
let utils = this.constructor.utils;
let owner = context;
var h = this.h;
@@ -1,8 +1,9 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`RouteComponent can render simple cases 1`] = `
"function anonymous(context,extra
"function anonymous(context, extra
) {
// Template name: \\"__template__1\\"
let utils = this.constructor.utils;
let QWeb = this.constructor;
let parent = context;