diff --git a/compiler/ast/CustomTag.js b/compiler/ast/CustomTag.js
index ab29a6d17..a40436492 100644
--- a/compiler/ast/CustomTag.js
+++ b/compiler/ast/CustomTag.js
@@ -299,7 +299,8 @@ class CustomTag extends HtmlElement {
// to the input object for the custom tag
this.forEachAttribute((attr) => {
var attrName = attr.name;
- var attrDef = attr.def || tagDef.getAttribute(attr.name);
+
+ var attrDef = attr.def || context.taglibLookup.getAttribute(tagName, attrName) || tagDef.getAttribute(attr.name);
if (!attrDef) {
var errorMessage = 'Unsupported attribute of "' + attrName + '" found on the <' + this.tagName + '> custom tag.';
diff --git a/compiler/ast/TemplateRoot.js b/compiler/ast/TemplateRoot.js
index b0bd2aa98..73c18e90b 100644
--- a/compiler/ast/TemplateRoot.js
+++ b/compiler/ast/TemplateRoot.js
@@ -15,6 +15,16 @@ class TemplateRoot extends Node {
constructor(def) {
super('TemplateRoot');
this.body = this.makeContainer(def.body);
+ this.extraRenderParams = null;
+ this.generateAssignRenderCode = null;
+ }
+
+ addRenderFunctionParam(id) {
+ if (!this.extraRenderParams) {
+ this.extraRenderParams = [];
+ }
+
+ this.extraRenderParams.push(id);
}
generateCode(codegen) {
@@ -24,8 +34,6 @@ class TemplateRoot extends Node {
context.optimize(this);
- context.emit('beforeGenerateCodeTemplateRoot', this);
-
var body = this.body;
var builder = codegen.builder;
@@ -54,48 +62,73 @@ class TemplateRoot extends Node {
renderStatements)
]);
} else {
- var templateArgs = [
- builder.identifier('__filename')
- ];
-
- let templateId = builder.identifier('template');
-
let body = [
- builder.var(templateId, builder.functionCall(
+ builder.var('marko_template', builder.functionCall(
builder.memberExpression(
builder.require(
builder.literal(context.getModuleRuntimeTarget())
),
- builder.identifier('c')
+ builder.identifier('t')
),
- templateArgs
- ))
+ [
+ builder.identifier('__filename')
+ ]
+ )),
+ builder.assignment(
+ builder.moduleExports(),
+ builder.identifier('marko_template'))
];
- var templateExports = this.generateExports(templateId, context);
-
- body = body.concat(templateExports);
-
let staticNodes = context.getStaticNodes();
if (staticNodes.length) {
body = body.concat(staticNodes);
}
+ var renderParams = [builder.identifier('data'), builder.identifierOut()];
+ if (this.extraRenderParams) {
+ renderParams = renderParams.concat(this.extraRenderParams);
+ }
+
let renderFunction = builder.functionDeclaration(
'render',
- ['data', builder.identifierOut()],
+ renderParams,
renderStatements);
body = body.concat([
renderFunction,
- builder.assignment(
- builder.memberExpression(builder.identifier('template'), builder.identifier('_')),
- builder.identifier('render'))
]);
+ var assignRenderCode;
+
+ let templateVar = builder.identifier('marko_template');
+ let renderFunctionVar = builder.identifier('render');
+ let templateRendererMember = builder.memberExpression(
+ builder.identifier('marko_template'),
+ builder.identifier('_'));
+
+ if (this.generateAssignRenderCode) {
+ var eventArgs = {
+ context,
+ templateVar,
+ templateRendererMember,
+ renderFunctionVar
+ };
+
+ assignRenderCode = this.generateAssignRenderCode(eventArgs);
+ } else {
+
+ assignRenderCode = builder.assignment(
+ templateRendererMember,
+ renderFunctionVar);
+ }
+
+ if (assignRenderCode) {
+ body = body.concat(assignRenderCode);
+ }
+
if (context.useMeta && context.meta) {
body.push(builder.assignment(
- builder.memberExpression(builder.identifier('template'), builder.identifier('meta')),
+ builder.memberExpression(builder.identifier('marko_template'), builder.identifier('meta')),
context.meta));
}
@@ -103,15 +136,6 @@ class TemplateRoot extends Node {
}
}
- generateExports(template, context) {
- var builder = context.builder;
-
- return builder.assignment(
- builder.memberExpression('module', 'exports'),
- template
- );
- }
-
toJSON(prettyPrinter) {
return {
type: this.type,
diff --git a/hot-reload/index.js b/hot-reload/index.js
index 73836498d..7d46054fb 100644
--- a/hot-reload/index.js
+++ b/hot-reload/index.js
@@ -12,7 +12,22 @@ var modifiedId = 1;
var HOT_RELOAD_KEY = Symbol('HOT_RELOAD');
+function cleaResolvePathCache() {
+ var modulePathCache = require('module').Module._pathCache;
+ if (!modulePathCache) {
+ console.log('[marko/hot-reload] WARNING: Missing: require("module").Module._pathCache [' + __filename + ']');
+ return;
+ }
+
+ var keys = Object.keys(modulePathCache);
+ keys.forEach(function(key) {
+ delete modulePathCache[key];
+ });
+}
+
function tryReloadTemplate(path) {
+ path = path.replace(/\.js$/, '');
+
try {
return marko.load(path);
} catch(e) {
@@ -32,91 +47,62 @@ exports.enable = function() {
// installed in the project will have hot reload enabled.
process.env.MARKO_HOT_RELOAD = 'true';
- var oldCreateTemplate = runtime.c;
-
- function patchMethods(obj, methodNames, reloadFunc) {
- var hotReloadData = obj[HOT_RELOAD_KEY] || (obj[HOT_RELOAD_KEY] = {});
- hotReloadData._modifiedId = modifiedId;
- hotReloadData._latest = obj;
-
- methodNames.forEach(function(methodName) {
- hotReloadData[methodName] = obj[methodName];
-
- obj[methodName] = function hotReloadWrapper() {
- if (hotReloadData.modifiedId !== modifiedId) {
- hotReloadData.modifiedId = modifiedId;
- hotReloadData._latest = reloadFunc() || obj;
- }
-
- var latest = hotReloadData._latest;
- return latest[HOT_RELOAD_KEY][methodName].apply(latest, arguments);
+ function createHotReloadProxy(func, template, methodName) {
+ var hotReloadData = template[HOT_RELOAD_KEY];
+ if (!hotReloadData) {
+ hotReloadData = template[HOT_RELOAD_KEY] = {
+ modifiedId: modifiedId,
+ latest: template,
+ originals: {}
};
- });
+ }
+
+ hotReloadData.originals[methodName] = func;
+
+ var templatePath = template.path;
+
+ function hotReloadProxy() {
+ if (hotReloadData.modifiedId !== modifiedId) {
+ hotReloadData.modifiedId = modifiedId;
+ hotReloadData.latest = tryReloadTemplate(templatePath) || template;
+
+ if (hotReloadData.latest !== template) {
+ template.meta = hotReloadData.latest.meta;
+ console.log('[marko/hot-reload] Template successfully reloaded: ' + templatePath);
+ }
+ }
+
+ var latest = hotReloadData.latest;
+ var originals = latest[HOT_RELOAD_KEY] && latest[HOT_RELOAD_KEY].originals;
+ if (!originals) {
+ originals = latest;
+ }
+
+ var targetFunc = originals._;
+ return targetFunc.apply(latest, arguments);
+ }
+
+ return hotReloadProxy;
}
- runtime.c = function hotReloadCreateTemplate(path) {
- var originalTemplate = oldCreateTemplate.apply(runtime, arguments);
- path = path.replace(/\.js$/, '');
+ var oldCreateTemplate = runtime.t;
+ runtime.t = function hotReloadCreateTemplate(path) {
+ var originalTemplate = oldCreateTemplate.apply(runtime, arguments);
var actualRenderFunc;
- var firstSet = true;
-
Object.defineProperty(originalTemplate, '_', {
- configurable: true,
-
get: function() {
return actualRenderFunc;
},
set: function(renderFunc) {
- actualRenderFunc = renderFunc;
- if (firstSet) {
- firstSet = false;
- patchMethods(originalTemplate, ['_'], function reloadTemplate() {
- var latestTemplate = tryReloadTemplate(path);
- if (latestTemplate) {
- if (latestTemplate !== originalTemplate) {
- console.log('[marko/hot-reload] Reloaded template: ' + path);
- originalTemplate.meta = latestTemplate.meta;
- }
-
- if (latestTemplate.template) {
- // The template might export a component that has a template property.
- return latestTemplate.template;
- } else {
- return latestTemplate;
- }
- }
- });
- }
+ actualRenderFunc = createHotReloadProxy(renderFunc, originalTemplate, '_');
}
});
return originalTemplate;
};
-
- var oldCreateComponent = widgets.c;
-
- widgets.c = function hotReloadCreateComponent(componentDef, template) {
- var path = template.path;
- path = path.replace(/\.js$/, '');
-
- var originalComponent = oldCreateComponent.apply(runtime, arguments);
-
- patchMethods(originalComponent, ['renderer', 'render', 'renderSync'], function reloadTemplate() {
- var latestComponent = tryReloadTemplate(path);
- if (latestComponent) {
- if (latestComponent !== originalComponent) {
- console.log('[marko/hot-reload] Reloaded template: ' + path);
- }
- return latestComponent;
- }
-
- });
-
- return originalComponent;
- };
};
exports.handleFileModified = function(path) {
@@ -131,6 +117,7 @@ exports.handleFileModified = function(path) {
console.log('[marko/hot-reload] File modified: ' + path);
runtime.cache = {};
compiler.clearCaches();
+ cleaResolvePathCache();
modifiedId++;
}
diff --git a/runtime/html/index.js b/runtime/html/index.js
index 587a1f1ce..2d125de66 100644
--- a/runtime/html/index.js
+++ b/runtime/html/index.js
@@ -8,7 +8,7 @@ var makeRenderable = require('../renderable');
* it is used to create a new Template instance.
* @private
*/
-exports.c = function createTemplate(path) {
+exports.t = function createTemplate(path) {
return new Template(path);
};
diff --git a/runtime/vdom/index.js b/runtime/vdom/index.js
index 332d1ff9a..32d4320c6 100644
--- a/runtime/vdom/index.js
+++ b/runtime/vdom/index.js
@@ -10,7 +10,7 @@ var makeRenderable = require('../renderable');
* it is used to create a new Template instance.
* @private
*/
-exports.c = function createTemplate(path) {
+exports.t = function createTemplate(path) {
return new Template(path);
};
diff --git a/test/autotests/codegen/codegen-addStaticVar/expected.js b/test/autotests/codegen/codegen-addStaticVar/expected.js
index 784bb89d6..6c4b6c93f 100644
--- a/test/autotests/codegen/codegen-addStaticVar/expected.js
+++ b/test/autotests/codegen/codegen-addStaticVar/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var foo = "Hello World";
@@ -8,4 +8,4 @@ function render(data, out) {
out.w("
");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/codegen/codegen-addVar/expected.js b/test/autotests/codegen/codegen-addVar/expected.js
index 980958d25..7bb4f085b 100644
--- a/test/autotests/codegen/codegen-addVar/expected.js
+++ b/test/autotests/codegen/codegen-addVar/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
var foo = "Hello World";
@@ -8,4 +8,4 @@ function render(data, out) {
out.w("");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/codegen/context-addStaticVar-dedupe/expected.js b/test/autotests/codegen/context-addStaticVar-dedupe/expected.js
index 784bb89d6..6c4b6c93f 100644
--- a/test/autotests/codegen/context-addStaticVar-dedupe/expected.js
+++ b/test/autotests/codegen/context-addStaticVar-dedupe/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var foo = "Hello World";
@@ -8,4 +8,4 @@ function render(data, out) {
out.w("");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/codegen/context-addStaticVar/expected.js b/test/autotests/codegen/context-addStaticVar/expected.js
index 784bb89d6..6c4b6c93f 100644
--- a/test/autotests/codegen/context-addStaticVar/expected.js
+++ b/test/autotests/codegen/context-addStaticVar/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var foo = "Hello World";
@@ -8,4 +8,4 @@ function render(data, out) {
out.w("");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/codegen/context-addVar-addStaticVar/expected.js b/test/autotests/codegen/context-addVar-addStaticVar/expected.js
index 8e9f56eaf..7c4eeac52 100644
--- a/test/autotests/codegen/context-addVar-addStaticVar/expected.js
+++ b/test/autotests/codegen/context-addVar-addStaticVar/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var fooStatic = "Hello Foo",
barStatic = "Hello Bar";
@@ -12,4 +12,4 @@ function render(data, out) {
out.w("");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/codegen/context-addVar/expected.js b/test/autotests/codegen/context-addVar/expected.js
index 980958d25..7bb4f085b 100644
--- a/test/autotests/codegen/context-addVar/expected.js
+++ b/test/autotests/codegen/context-addVar/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
var foo = "Hello World";
@@ -8,4 +8,4 @@ function render(data, out) {
out.w("");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/codegen/forEach/expected.js b/test/autotests/codegen/forEach/expected.js
index e55b94092..d6d174f18 100644
--- a/test/autotests/codegen/forEach/expected.js
+++ b/test/autotests/codegen/forEach/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_forEach = marko_helpers.f,
@@ -12,4 +12,4 @@ function render(data, out) {
});
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/codegen/forEachProps/expected.js b/test/autotests/codegen/forEachProps/expected.js
index 12d8d0bf7..e6d850023 100644
--- a/test/autotests/codegen/forEachProps/expected.js
+++ b/test/autotests/codegen/forEachProps/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_forEachProp = marko_helpers.fp;
@@ -11,4 +11,4 @@ function render(data, out) {
});
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/codegen/generate-exports/expected.js b/test/autotests/codegen/generate-exports/expected.js
deleted file mode 100644
index 68b796c3a..000000000
--- a/test/autotests/codegen/generate-exports/expected.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var template = require("marko/html").c(__filename);
-
-var component = require("./component");
-
-var template = template;
-
-module.exports = require("marko-widgets").c(component, template);
-
-function render(data, out) {}
-
-template._ = render;
diff --git a/test/autotests/codegen/generate-exports/index.js b/test/autotests/codegen/generate-exports/index.js
deleted file mode 100644
index 1c15814bd..000000000
--- a/test/autotests/codegen/generate-exports/index.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-
-module.exports = function(builder, codegen) {
- var templateRoot = builder.templateRoot([]);
-
- codegen.context.on('beforeGenerateCode:TemplateRoot', function(root) {
- root.node.generateExports = function(template) {
- return [
- builder.assignment(
- builder.var('component'),
- builder.require(
- builder.literal('./component')
- )
- ),
- builder.assignment(
- builder.var('template'),
- template
- ),
- builder.assignment(
- builder.memberExpression(
- builder.identifier('module'),
- builder.identifier('exports')
- ),
- builder.functionCall(
- builder.memberExpression(
- builder.require(
- builder.literal('marko-widgets')
- ),
- builder.identifier('c')
- ),
- [
- builder.identifier('component'),
- builder.identifier('template')
- ]
- )
- )
- ];
- };
- });
-
- return templateRoot;
-};
\ No newline at end of file
diff --git a/test/autotests/codegen/marko-template/expected.js b/test/autotests/codegen/marko-template/expected.js
index 4a3afea66..eb104464e 100644
--- a/test/autotests/codegen/marko-template/expected.js
+++ b/test/autotests/codegen/marko-template/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_escapeXml = marko_helpers.x;
@@ -23,4 +23,4 @@ function render(data, out) {
}
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/codegen/meta-dependencies/expected.js b/test/autotests/codegen/meta-dependencies/expected.js
index 32bb59f96..75c7fec23 100644
--- a/test/autotests/codegen/meta-dependencies/expected.js
+++ b/test/autotests/codegen/meta-dependencies/expected.js
@@ -1,14 +1,14 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
out.w("");
}
-template._ = render;
+marko_template._ = render;
-template.meta = {
+marko_template.meta = {
deps: [
"./foo"
]
diff --git a/test/autotests/codegen/templateRoot-prependChild/expected.js b/test/autotests/codegen/templateRoot-prependChild/expected.js
index 823d1ed63..2616da3da 100644
--- a/test/autotests/codegen/templateRoot-prependChild/expected.js
+++ b/test/autotests/codegen/templateRoot-prependChild/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
var foo = "bar";
@@ -8,4 +8,4 @@ function render(data, out) {
out.w("");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/codegen/templateRoot/expected.js b/test/autotests/codegen/templateRoot/expected.js
index 958dc69e5..4e48fde35 100644
--- a/test/autotests/codegen/templateRoot/expected.js
+++ b/test/autotests/codegen/templateRoot/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
var foo = "bar";
@@ -8,4 +8,4 @@ function render(data, out) {
out.w("
");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/addNestedVariable/expected.js b/test/autotests/compiler/addNestedVariable/expected.js
index 1373631e8..f372fd9b7 100644
--- a/test/autotests/compiler/addNestedVariable/expected.js
+++ b/test/autotests/compiler/addNestedVariable/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_escapeXml = marko_helpers.x,
@@ -17,4 +17,4 @@ function render(data, out) {
}, out);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/attr-escape/expected.js b/test/autotests/compiler/attr-escape/expected.js
index 93ef67d42..10efedbad 100644
--- a/test/autotests/compiler/attr-escape/expected.js
+++ b/test/autotests/compiler/attr-escape/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_classAttr = marko_helpers.ca,
@@ -23,4 +23,4 @@ function render(data, out) {
" b\">");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/attr-placeholder-escapeXml/expected.js b/test/autotests/compiler/attr-placeholder-escapeXml/expected.js
index 7caf79e96..0abf47304 100644
--- a/test/autotests/compiler/attr-placeholder-escapeXml/expected.js
+++ b/test/autotests/compiler/attr-placeholder-escapeXml/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_escapeXmlAttr = marko_helpers.xa;
@@ -13,4 +13,4 @@ function render(data, out) {
var foo = "Hello " + data.name;
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/createNodeFromEl/expected.js b/test/autotests/compiler/createNodeFromEl/expected.js
index b8d063872..2bfaa0263 100644
--- a/test/autotests/compiler/createNodeFromEl/expected.js
+++ b/test/autotests/compiler/createNodeFromEl/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_loadTag = marko_helpers.t,
@@ -20,4 +20,4 @@ function render(data, out) {
}, out);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/custom-tag-body-function/expected.js b/test/autotests/compiler/custom-tag-body-function/expected.js
index 6834c431c..5f30aa3d7 100644
--- a/test/autotests/compiler/custom-tag-body-function/expected.js
+++ b/test/autotests/compiler/custom-tag-body-function/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_loadTag = marko_helpers.t,
@@ -15,4 +15,4 @@ function render(data, out) {
}, out);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/custom-tag-data/expected.js b/test/autotests/compiler/custom-tag-data/expected.js
index 25658f3b1..6393ff7bc 100644
--- a/test/autotests/compiler/custom-tag-data/expected.js
+++ b/test/autotests/compiler/custom-tag-data/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_loadTag = marko_helpers.t,
@@ -26,4 +26,4 @@ function render(data, out) {
}), out);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/custom-tag-import-var/expected.js b/test/autotests/compiler/custom-tag-import-var/expected.js
index c19387baa..3bbf25a17 100644
--- a/test/autotests/compiler/custom-tag-import-var/expected.js
+++ b/test/autotests/compiler/custom-tag-import-var/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_loadTag = marko_helpers.t,
@@ -17,4 +17,4 @@ function render(data, out) {
}, out);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/custom-tag-template/expected.js b/test/autotests/compiler/custom-tag-template/expected.js
index 7c64de69c..c60b86a68 100644
--- a/test/autotests/compiler/custom-tag-template/expected.js
+++ b/test/autotests/compiler/custom-tag-template/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_loadTemplate = marko_helpers.l,
@@ -14,4 +14,4 @@ function render(data, out) {
}, out);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/custom-tag/expected.js b/test/autotests/compiler/custom-tag/expected.js
index 95e54e008..df0f58587 100644
--- a/test/autotests/compiler/custom-tag/expected.js
+++ b/test/autotests/compiler/custom-tag/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_loadTag = marko_helpers.t,
@@ -12,4 +12,4 @@ function render(data, out) {
}, out);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/entities/expected.js b/test/autotests/compiler/entities/expected.js
index b42b8d586..cd9e328cc 100644
--- a/test/autotests/compiler/entities/expected.js
+++ b/test/autotests/compiler/entities/expected.js
@@ -1,9 +1,9 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
out.w("Hello John & Suzy Invalid Entity: &b ; Valid Numeric Entity: " Valid Hexadecimal Entity: ¢");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/for-array/expected.js b/test/autotests/compiler/for-array/expected.js
index 06498b47b..cc69551ed 100644
--- a/test/autotests/compiler/for-array/expected.js
+++ b/test/autotests/compiler/for-array/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_escapeXml = marko_helpers.x;
@@ -22,4 +22,4 @@ function render(data, out) {
}
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/hello-dynamic/expected.js b/test/autotests/compiler/hello-dynamic/expected.js
index 5a776a88b..d63db98fc 100644
--- a/test/autotests/compiler/hello-dynamic/expected.js
+++ b/test/autotests/compiler/hello-dynamic/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_escapeXml = marko_helpers.x,
@@ -16,4 +16,4 @@ function render(data, out) {
"!");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/import-tag/expected.js b/test/autotests/compiler/import-tag/expected.js
index ea8cdfd5d..06e64546a 100644
--- a/test/autotests/compiler/import-tag/expected.js
+++ b/test/autotests/compiler/import-tag/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var bar = require("./bar"),
foo = bar.f;
@@ -9,4 +9,4 @@ require("./foo");
function render(data, out) {}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/importModule/expected.js b/test/autotests/compiler/importModule/expected.js
index 4a4d082ff..ec98c5572 100644
--- a/test/autotests/compiler/importModule/expected.js
+++ b/test/autotests/compiler/importModule/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var foo = require("./foo");
@@ -8,4 +8,4 @@ function render(data, out) {
foo();
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/include/expected.js b/test/autotests/compiler/include/expected.js
index d99395d8f..ecb090c31 100644
--- a/test/autotests/compiler/include/expected.js
+++ b/test/autotests/compiler/include/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_loadTemplate = marko_helpers.l,
@@ -14,4 +14,4 @@ function render(data, out) {
}, out);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/invoke-if/expected.js b/test/autotests/compiler/invoke-if/expected.js
index 060f5a022..8e9804d6f 100644
--- a/test/autotests/compiler/invoke-if/expected.js
+++ b/test/autotests/compiler/invoke-if/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
if (true) {
@@ -8,4 +8,4 @@ function render(data, out) {
}
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/invoke/expected.js b/test/autotests/compiler/invoke/expected.js
index 7080883c3..af5822319 100644
--- a/test/autotests/compiler/invoke/expected.js
+++ b/test/autotests/compiler/invoke/expected.js
@@ -1,9 +1,9 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
data.renderBody(out);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/macros/expected.js b/test/autotests/compiler/macros/expected.js
index 6e3f28425..605fc1998 100644
--- a/test/autotests/compiler/macros/expected.js
+++ b/test/autotests/compiler/macros/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_escapeXml = marko_helpers.x,
@@ -30,4 +30,4 @@ function render(data, out) {
macro_renderTree(data.node, out);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/marko-init/expected.js b/test/autotests/compiler/marko-init/expected.js
index e3aa80701..db047da2c 100644
--- a/test/autotests/compiler/marko-init/expected.js
+++ b/test/autotests/compiler/marko-init/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_escapeXml = marko_helpers.x;
@@ -14,4 +14,4 @@ function render(data, out) {
"!");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/nested-tag-shorthand-simple-conditional/expected.js b/test/autotests/compiler/nested-tag-shorthand-simple-conditional/expected.js
index 6554d1df6..c1f959597 100644
--- a/test/autotests/compiler/nested-tag-shorthand-simple-conditional/expected.js
+++ b/test/autotests/compiler/nested-tag-shorthand-simple-conditional/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_loadTemplate = marko_helpers.l,
@@ -18,4 +18,4 @@ function render(data, out) {
}, out);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/nested-tags/expected.js b/test/autotests/compiler/nested-tags/expected.js
index 211b8abb2..c7484a708 100644
--- a/test/autotests/compiler/nested-tags/expected.js
+++ b/test/autotests/compiler/nested-tags/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_loadTag = marko_helpers.t,
@@ -24,4 +24,4 @@ function render(data, out) {
}, out);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/replaceWith/expected.js b/test/autotests/compiler/replaceWith/expected.js
index dfa5369fe..120c9477f 100644
--- a/test/autotests/compiler/replaceWith/expected.js
+++ b/test/autotests/compiler/replaceWith/expected.js
@@ -1,9 +1,9 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
out.w("");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/simple/expected.js b/test/autotests/compiler/simple/expected.js
index d8305c3ed..fd14e1938 100644
--- a/test/autotests/compiler/simple/expected.js
+++ b/test/autotests/compiler/simple/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_escapeXml = marko_helpers.x,
@@ -40,4 +40,4 @@ function render(data, out) {
}
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/compiler/static/expected.js b/test/autotests/compiler/static/expected.js
index e9869b7e4..33b093279 100644
--- a/test/autotests/compiler/static/expected.js
+++ b/test/autotests/compiler/static/expected.js
@@ -1,9 +1,9 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
out.w("Hello John");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/hot-reload/component-to-template/.gitignore b/test/autotests/hot-reload/component-to-template/.gitignore
new file mode 100644
index 000000000..102d344f2
--- /dev/null
+++ b/test/autotests/hot-reload/component-to-template/.gitignore
@@ -0,0 +1 @@
+template.temp.marko
\ No newline at end of file
diff --git a/test/autotests/hot-reload/component-to-template/a/component.js b/test/autotests/hot-reload/component-to-template/a/component.js
new file mode 100644
index 000000000..1e70b9676
--- /dev/null
+++ b/test/autotests/hot-reload/component-to-template/a/component.js
@@ -0,0 +1,7 @@
+module.exports = {
+ onInput(input) {
+ this.state = {
+ name: input.name
+ };
+ }
+};
\ No newline at end of file
diff --git a/test/autotests/hot-reload/component-to-template/a/index.marko b/test/autotests/hot-reload/component-to-template/a/index.marko
new file mode 100644
index 000000000..c5e40bf1e
--- /dev/null
+++ b/test/autotests/hot-reload/component-to-template/a/index.marko
@@ -0,0 +1,3 @@
+
+ Hello ${state.name}
+
\ No newline at end of file
diff --git a/test/autotests/hot-reload/component-to-template/b/index.marko b/test/autotests/hot-reload/component-to-template/b/index.marko
new file mode 100644
index 000000000..60ca8defd
--- /dev/null
+++ b/test/autotests/hot-reload/component-to-template/b/index.marko
@@ -0,0 +1,3 @@
+
+ Hello ${data.name}
+
\ No newline at end of file
diff --git a/test/autotests/hot-reload/component-to-template/temp/index.marko b/test/autotests/hot-reload/component-to-template/temp/index.marko
new file mode 100644
index 000000000..60ca8defd
--- /dev/null
+++ b/test/autotests/hot-reload/component-to-template/temp/index.marko
@@ -0,0 +1,3 @@
+
+ Hello ${data.name}
+
\ No newline at end of file
diff --git a/test/autotests/hot-reload/component-to-template/test.js b/test/autotests/hot-reload/component-to-template/test.js
new file mode 100644
index 000000000..81673ef48
--- /dev/null
+++ b/test/autotests/hot-reload/component-to-template/test.js
@@ -0,0 +1,45 @@
+var fs = require('fs');
+var nodePath = require('path');
+
+var tempDir = nodePath.join(__dirname, 'temp');
+
+function copyFiles(dir) {
+ var files = fs.readdirSync(dir);
+ files.forEach((file) => {
+ var src = fs.readFileSync(nodePath.join(dir, file));
+ fs.writeFileSync(nodePath.join(tempDir, file), src);
+ });
+}
+
+exports.check = function(marko, hotReload, expect) {
+ try {
+ fs.mkdirSync(nodePath.join(__dirname, 'temp'));
+ } catch(e) {}
+
+ try {
+ fs.unlinkSync(nodePath.join(__dirname, 'temp/component.js'));
+ } catch(e) {}
+
+ try {
+ fs.unlinkSync(nodePath.join(__dirname, 'temp/index.marko'));
+ } catch(e) {}
+
+ try {
+ fs.unlinkSync(nodePath.join(__dirname, 'temp/index.marko.js'));
+ } catch(e) {}
+
+ var tempTemplatePath = nodePath.join(__dirname, 'temp/index.marko');
+
+ copyFiles(nodePath.join(__dirname, 'a'));
+ var component = require(tempTemplatePath);
+ expect(component.renderToString({ name: 'Frank' })).to.equal('Hello Frank
');
+
+ try {
+ fs.unlinkSync(nodePath.join(__dirname, 'temp/component.js'));
+ } catch(e) {}
+
+ hotReload.handleFileModified(tempTemplatePath);
+
+ copyFiles(nodePath.join(__dirname, 'b'));
+ expect(component.renderToString({ name: 'Jane' })).to.equal('Hello Jane
');
+};
\ No newline at end of file
diff --git a/test/autotests/hot-reload/template-to-component/.gitignore b/test/autotests/hot-reload/template-to-component/.gitignore
new file mode 100644
index 000000000..102d344f2
--- /dev/null
+++ b/test/autotests/hot-reload/template-to-component/.gitignore
@@ -0,0 +1 @@
+template.temp.marko
\ No newline at end of file
diff --git a/test/autotests/hot-reload/template-to-component/a/index.marko b/test/autotests/hot-reload/template-to-component/a/index.marko
new file mode 100644
index 000000000..55d3da1e0
--- /dev/null
+++ b/test/autotests/hot-reload/template-to-component/a/index.marko
@@ -0,0 +1,3 @@
+
+ Hello ${data.name}
+
\ No newline at end of file
diff --git a/test/autotests/hot-reload/template-to-component/b/component.js b/test/autotests/hot-reload/template-to-component/b/component.js
new file mode 100644
index 000000000..1e70b9676
--- /dev/null
+++ b/test/autotests/hot-reload/template-to-component/b/component.js
@@ -0,0 +1,7 @@
+module.exports = {
+ onInput(input) {
+ this.state = {
+ name: input.name
+ };
+ }
+};
\ No newline at end of file
diff --git a/test/autotests/hot-reload/template-to-component/b/index.marko b/test/autotests/hot-reload/template-to-component/b/index.marko
new file mode 100644
index 000000000..701678aff
--- /dev/null
+++ b/test/autotests/hot-reload/template-to-component/b/index.marko
@@ -0,0 +1,3 @@
+
+ Hello ${state.name}
+
\ No newline at end of file
diff --git a/test/autotests/hot-reload/template-to-component/temp/component.js b/test/autotests/hot-reload/template-to-component/temp/component.js
new file mode 100644
index 000000000..1e70b9676
--- /dev/null
+++ b/test/autotests/hot-reload/template-to-component/temp/component.js
@@ -0,0 +1,7 @@
+module.exports = {
+ onInput(input) {
+ this.state = {
+ name: input.name
+ };
+ }
+};
\ No newline at end of file
diff --git a/test/autotests/hot-reload/template-to-component/temp/index.marko b/test/autotests/hot-reload/template-to-component/temp/index.marko
new file mode 100644
index 000000000..701678aff
--- /dev/null
+++ b/test/autotests/hot-reload/template-to-component/temp/index.marko
@@ -0,0 +1,3 @@
+
+ Hello ${state.name}
+
\ No newline at end of file
diff --git a/test/autotests/hot-reload/template-to-component/test.js b/test/autotests/hot-reload/template-to-component/test.js
new file mode 100644
index 000000000..d34ca8dfa
--- /dev/null
+++ b/test/autotests/hot-reload/template-to-component/test.js
@@ -0,0 +1,41 @@
+var fs = require('fs');
+var nodePath = require('path');
+
+var tempDir = nodePath.join(__dirname, 'temp');
+
+function copyFiles(dir) {
+ var files = fs.readdirSync(dir);
+ files.forEach((file) => {
+ var src = fs.readFileSync(nodePath.join(dir, file));
+ fs.writeFileSync(nodePath.join(tempDir, file), src);
+ });
+}
+
+exports.check = function(marko, hotReload, expect) {
+ try {
+ fs.mkdirSync(nodePath.join(__dirname, 'temp'));
+ } catch(e) {}
+
+ try {
+ fs.unlinkSync(nodePath.join(__dirname, 'temp/component.js'));
+ } catch(e) {}
+
+ try {
+ fs.unlinkSync(nodePath.join(__dirname, 'temp/index.marko'));
+ } catch(e) {}
+
+ try {
+ fs.unlinkSync(nodePath.join(__dirname, 'temp/index.marko.js'));
+ } catch(e) {}
+
+ var tempTemplatePath = nodePath.join(__dirname, 'temp/index.marko');
+
+ copyFiles(nodePath.join(__dirname, 'a'));
+ var component = require(tempTemplatePath);
+ expect(component.renderSync({ name: 'Frank' }).toString()).to.equal('Hello Frank
');
+
+ hotReload.handleFileModified(tempTemplatePath);
+
+ copyFiles(nodePath.join(__dirname, 'b'));
+ expect(component.renderSync({ name: 'Jane' }).toString()).to.equal('Hello Jane
');
+};
\ No newline at end of file
diff --git a/test/autotests/taglib-lookup/forEachAttribute/expected.json b/test/autotests/taglib-lookup/forEachAttribute/expected.json
index 53db80169..7c55df239 100644
--- a/test/autotests/taglib-lookup/forEachAttribute/expected.json
+++ b/test/autotests/taglib-lookup/forEachAttribute/expected.json
@@ -10,6 +10,7 @@
"for",
"include",
"while",
+ "$w",
"w-bind",
"w-scope",
"w-config",
@@ -29,4 +30,4 @@
"w-preserve-attrs",
"on*",
"w-on*"
-]
+]
\ No newline at end of file
diff --git a/test/autotests/vdom-compiler/attr-class-expression/expected.js b/test/autotests/vdom-compiler/attr-class-expression/expected.js
index 25b2f687c..08dc2049f 100644
--- a/test/autotests/vdom-compiler/attr-class-expression/expected.js
+++ b/test/autotests/vdom-compiler/attr-class-expression/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/vdom").c(__filename);
+var marko_template = require("marko/vdom").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/vdom/helpers"),
marko_classList = marko_helpers.cl,
@@ -18,4 +18,4 @@ function render(data, out) {
.t("!");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/vdom-compiler/attrs-dynamic-object-literal/expected.js b/test/autotests/vdom-compiler/attrs-dynamic-object-literal/expected.js
index c56964c16..d96e72de8 100644
--- a/test/autotests/vdom-compiler/attrs-dynamic-object-literal/expected.js
+++ b/test/autotests/vdom-compiler/attrs-dynamic-object-literal/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/vdom").c(__filename);
+var marko_template = require("marko/vdom").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
out.e("div", {
@@ -12,4 +12,4 @@ function render(data, out) {
.t("!");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/vdom-compiler/attrs-dynamic/expected.js b/test/autotests/vdom-compiler/attrs-dynamic/expected.js
index 00f9a7e5b..4867ad777 100644
--- a/test/autotests/vdom-compiler/attrs-dynamic/expected.js
+++ b/test/autotests/vdom-compiler/attrs-dynamic/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/vdom").c(__filename);
+var marko_template = require("marko/vdom").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
var attrs = {
@@ -14,4 +14,4 @@ function render(data, out) {
.t("!");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/vdom-compiler/custom-tag/expected.js b/test/autotests/vdom-compiler/custom-tag/expected.js
index ecfe8c17f..c6569ec18 100644
--- a/test/autotests/vdom-compiler/custom-tag/expected.js
+++ b/test/autotests/vdom-compiler/custom-tag/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/vdom").c(__filename);
+var marko_template = require("marko/vdom").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/vdom/helpers"),
marko_loadTag = marko_helpers.t,
@@ -26,4 +26,4 @@ function render(data, out) {
out.ee();
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/vdom-compiler/dynamic-body-text/expected.js b/test/autotests/vdom-compiler/dynamic-body-text/expected.js
index 70ee42565..b5857ce0d 100644
--- a/test/autotests/vdom-compiler/dynamic-body-text/expected.js
+++ b/test/autotests/vdom-compiler/dynamic-body-text/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/vdom").c(__filename);
+var marko_template = require("marko/vdom").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_attrs0 = {
"class": "foo"
@@ -13,4 +13,4 @@ function render(data, out) {
.t("!");
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/vdom-compiler/no-escape/expected.js b/test/autotests/vdom-compiler/no-escape/expected.js
index abb54f3dd..5c3cda4aa 100644
--- a/test/autotests/vdom-compiler/no-escape/expected.js
+++ b/test/autotests/vdom-compiler/no-escape/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/vdom").c(__filename);
+var marko_template = require("marko/vdom").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
out.t("Hello ");
@@ -12,4 +12,4 @@ function render(data, out) {
out.h(message);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/vdom-compiler/simple/expected.js b/test/autotests/vdom-compiler/simple/expected.js
index 1fa02f3b8..70747887c 100644
--- a/test/autotests/vdom-compiler/simple/expected.js
+++ b/test/autotests/vdom-compiler/simple/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/vdom").c(__filename);
+var marko_template = require("marko/vdom").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/vdom/helpers"),
marko_forEach = marko_helpers.f,
@@ -30,4 +30,4 @@ function render(data, out) {
}
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/vdom-compiler/static-element-nested/expected.js b/test/autotests/vdom-compiler/static-element-nested/expected.js
index 71ba18cd3..e93890d63 100644
--- a/test/autotests/vdom-compiler/static-element-nested/expected.js
+++ b/test/autotests/vdom-compiler/static-element-nested/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/vdom").c(__filename);
+var marko_template = require("marko/vdom").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/vdom/helpers"),
marko_createElement = marko_helpers.e,
@@ -21,4 +21,4 @@ function render(data, out) {
.n(marko_node0);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/vdom-compiler/static-element-root/expected.js b/test/autotests/vdom-compiler/static-element-root/expected.js
index 3c85149f6..6de6fcb1f 100644
--- a/test/autotests/vdom-compiler/static-element-root/expected.js
+++ b/test/autotests/vdom-compiler/static-element-root/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/vdom").c(__filename);
+var marko_template = require("marko/vdom").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/vdom/helpers"),
marko_createElement = marko_helpers.e,
@@ -16,4 +16,4 @@ function render(data, out) {
out.n(marko_node0);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/vdom-compiler/tag-body/expected.js b/test/autotests/vdom-compiler/tag-body/expected.js
index eb941a6b0..198217117 100644
--- a/test/autotests/vdom-compiler/tag-body/expected.js
+++ b/test/autotests/vdom-compiler/tag-body/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/vdom").c(__filename);
+var marko_template = require("marko/vdom").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/vdom/helpers"),
marko_loadTag = marko_helpers.t,
@@ -15,4 +15,4 @@ function render(data, out) {
}, out);
}
-template._ = render;
+marko_template._ = render;
diff --git a/test/autotests/widgets-browser/sanity-check-custom-event/components/app-foo/component.js b/test/autotests/widgets-browser/sanity-check-custom-event/components/app-foo/component.js
new file mode 100644
index 000000000..d9143bae8
--- /dev/null
+++ b/test/autotests/widgets-browser/sanity-check-custom-event/components/app-foo/component.js
@@ -0,0 +1,5 @@
+module.exports = {
+ emitTestEvent: function() {
+ this.emit('test', 'abc', '123');
+ }
+};
\ No newline at end of file
diff --git a/test/autotests/widgets-browser/sanity-check-custom-event/components/app-foo/index.marko b/test/autotests/widgets-browser/sanity-check-custom-event/components/app-foo/index.marko
new file mode 100644
index 000000000..cc15524c0
--- /dev/null
+++ b/test/autotests/widgets-browser/sanity-check-custom-event/components/app-foo/index.marko
@@ -0,0 +1,3 @@
+
+ [app-foo]
+
\ No newline at end of file
diff --git a/test/autotests/widgets-browser/sanity-check-custom-event/index.marko b/test/autotests/widgets-browser/sanity-check-custom-event/index.marko
new file mode 100644
index 000000000..1c2417deb
--- /dev/null
+++ b/test/autotests/widgets-browser/sanity-check-custom-event/index.marko
@@ -0,0 +1,16 @@
+
+
+
\ No newline at end of file
diff --git a/test/autotests/widgets-browser/sanity-check-custom-event/test.js b/test/autotests/widgets-browser/sanity-check-custom-event/test.js
new file mode 100644
index 000000000..984ae262b
--- /dev/null
+++ b/test/autotests/widgets-browser/sanity-check-custom-event/test.js
@@ -0,0 +1,11 @@
+var expect = require('chai').expect;
+
+module.exports = function(helpers) {
+
+ var widget = helpers.mount(require('./index.marko'), { name: 'Frank' });
+
+ expect(widget.fooEvent.length).to.equal(3);
+ expect(widget.fooEvent[0]).to.equal('abc');
+ expect(widget.fooEvent[1]).to.equal('123');
+ expect(widget.fooEvent[2]).to.equal(widget.fooWidget);
+};
\ No newline at end of file
diff --git a/test/autotests/widgets-browser/sanity-check-inline/index.marko b/test/autotests/widgets-browser/sanity-check-inline/index.marko
index 1840ad485..a59f8bfbc 100644
--- a/test/autotests/widgets-browser/sanity-check-inline/index.marko
+++ b/test/autotests/widgets-browser/sanity-check-inline/index.marko
@@ -1,5 +1,5 @@
- Hello ${data.name}!
+ Hello ${state.name}!
+
+
+
\ No newline at end of file
diff --git a/test/autotests/widgets-browser/sanity-check-ref/index.marko b/test/autotests/widgets-browser/sanity-check-ref/index.marko
new file mode 100644
index 000000000..3784a7550
--- /dev/null
+++ b/test/autotests/widgets-browser/sanity-check-ref/index.marko
@@ -0,0 +1,12 @@
+
+
+
+
+ eBay
+
\ No newline at end of file
diff --git a/test/autotests/widgets-browser/sanity-check-ref/test.js b/test/autotests/widgets-browser/sanity-check-ref/test.js
new file mode 100644
index 000000000..6c9a73a23
--- /dev/null
+++ b/test/autotests/widgets-browser/sanity-check-ref/test.js
@@ -0,0 +1,11 @@
+var expect = require('chai').expect;
+
+module.exports = function(helpers) {
+ var widget = helpers.mount(require('./index'), { });
+
+ var fooWidget = widget.getWidget('foo');
+ expect(fooWidget.el.className).to.equal('foo');
+
+ var link = widget.getEl('link');
+ expect(link.nodeName).to.equal('A');
+};
\ No newline at end of file
diff --git a/test/autotests/widgets-browser/sanity-check-single-file-component/index.marko b/test/autotests/widgets-browser/sanity-check-single-file-component/index.marko
index 29531b824..fb98792d5 100644
--- a/test/autotests/widgets-browser/sanity-check-single-file-component/index.marko
+++ b/test/autotests/widgets-browser/sanity-check-single-file-component/index.marko
@@ -12,5 +12,5 @@
- Hello ${data.name}!
+ Hello ${state.name}!
\ No newline at end of file
diff --git a/test/autotests/widgets-browser/sanity-check-template-entry/component.js b/test/autotests/widgets-browser/sanity-check-template-entry/component.js
index 06fac67b7..e1fa6b833 100644
--- a/test/autotests/widgets-browser/sanity-check-template-entry/component.js
+++ b/test/autotests/widgets-browser/sanity-check-template-entry/component.js
@@ -2,7 +2,7 @@ module.exports = {
onInput: function(input) {
this.state = {
name: input.name
- }
+ };
},
setName: function(newName) {
this.state.name = newName;
diff --git a/test/autotests/widgets-browser/sanity-check-template-entry/index.marko b/test/autotests/widgets-browser/sanity-check-template-entry/index.marko
index 21ee43c6e..858c8431e 100644
--- a/test/autotests/widgets-browser/sanity-check-template-entry/index.marko
+++ b/test/autotests/widgets-browser/sanity-check-template-entry/index.marko
@@ -1,3 +1,3 @@
- Hello ${data.name}!
+ Hello ${state.name}!
diff --git a/test/autotests/widgets-compilation/bind-component/expected.js b/test/autotests/widgets-compilation/bind-component/expected.js
index 8edfae176..8584b319c 100644
--- a/test/autotests/widgets-compilation/bind-component/expected.js
+++ b/test/autotests/widgets-compilation/bind-component/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_widgets = require("marko/widgets"),
marko_registerWidget = marko_widgets.registerWidget,
@@ -8,23 +8,14 @@ var marko_widgets = require("marko/widgets"),
return require("./");
}),
marko_helpers = require("marko/runtime/html/helpers"),
- marko_attr = marko_helpers.a,
- marko_loadTag = marko_helpers.t,
- _widget_tag = marko_loadTag(require("marko/widgets/taglib/widget-tag"));
+ marko_attr = marko_helpers.a;
-function render(data, out) {
- _widget_tag({
- type: marko_widgetType,
- _cfg: data.widgetConfig,
- _state: data.widgetState,
- _props: data.widgetProps,
- _body: data.widgetBody,
- renderBody: function renderBody(out, widget, state) {
- out.w("");
- }
- }, out);
+function render(data, out, widget, state) {
+ out.w("");
}
-template._ = render;
+marko_template._ = marko_widgets.r(render, {
+ type: marko_widgetType
+ });
diff --git a/test/autotests/widgets-compilation/bind-widget/expected.js b/test/autotests/widgets-compilation/bind-widget/expected.js
index 16a47401d..75708b551 100644
--- a/test/autotests/widgets-compilation/bind-widget/expected.js
+++ b/test/autotests/widgets-compilation/bind-widget/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_widgets = require("marko/widgets"),
marko_registerWidget = marko_widgets.registerWidget,
@@ -8,23 +8,14 @@ var marko_widgets = require("marko/widgets"),
return require("./widget");
}),
marko_helpers = require("marko/runtime/html/helpers"),
- marko_attr = marko_helpers.a,
- marko_loadTag = marko_helpers.t,
- _widget_tag = marko_loadTag(require("marko/widgets/taglib/widget-tag"));
+ marko_attr = marko_helpers.a;
-function render(data, out) {
- _widget_tag({
- type: marko_widgetType,
- _cfg: data.widgetConfig,
- _state: data.widgetState,
- _props: data.widgetProps,
- _body: data.widgetBody,
- renderBody: function renderBody(out, widget, state) {
- out.w("");
- }
- }, out);
+function render(data, out, widget, state) {
+ out.w("");
}
-template._ = render;
+marko_template._ = marko_widgets.r(render, {
+ type: marko_widgetType
+ });
diff --git a/test/autotests/widgets-compilation/component-include-attr/expected.js b/test/autotests/widgets-compilation/component-include-attr/expected.js
index 526d03da5..7e412eafb 100644
--- a/test/autotests/widgets-compilation/component-include-attr/expected.js
+++ b/test/autotests/widgets-compilation/component-include-attr/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_widgets = require("marko/widgets"),
marko_registerWidget = marko_widgets.registerWidget,
@@ -10,33 +10,25 @@ var marko_widgets = require("marko/widgets"),
marko_helpers = require("marko/runtime/html/helpers"),
marko_loadTag = marko_helpers.t,
include_tag = marko_loadTag(require("marko/widgets/taglib/include-tag")),
- marko_attr = marko_helpers.a,
- _widget_tag = marko_loadTag(require("marko/widgets/taglib/widget-tag"));
+ marko_attr = marko_helpers.a;
-function render(data, out) {
- _widget_tag({
- type: marko_widgetType,
- body: 0,
- _cfg: data.widgetConfig,
- _state: data.widgetState,
- _props: data.widgetProps,
- _body: data.widgetBody,
- renderBody: function renderBody(out, widget, state) {
- out.w("Header
");
+function render(data, out, widget, state) {
+ out.w("
Header
");
- include_tag({
- _target: data.widgetBody,
- _widgetId: widget.elId(0),
- _arg: widget
- }, out);
-
- out.w("
");
- }
+ include_tag({
+ _target: widget.body,
+ _widgetId: widget.elId(0),
+ _arg: widget
}, out);
+
+ out.w("
");
}
-template._ = render;
+marko_template._ = marko_widgets.r(render, {
+ type: marko_widgetType,
+ body: 0
+ });
diff --git a/test/autotests/widgets-compilation/component-inline-multiple-roots/expected.js b/test/autotests/widgets-compilation/component-inline-multiple-roots/expected.js
new file mode 100644
index 000000000..0512a6b16
--- /dev/null
+++ b/test/autotests/widgets-compilation/component-inline-multiple-roots/expected.js
@@ -0,0 +1,36 @@
+var marko_template = require("marko/html").t(__filename);
+
+module.exports = marko_template;
+
+var marko_component = (function() {
+ var marko_component;
+
+ marko_component = {};
+
+ return marko_component;
+ })(),
+ marko_widgets = require("marko/widgets"),
+ marko_registerWidget = marko_widgets.registerWidget,
+ marko_widgetType = marko_registerWidget("/marko-test$1.0.0/autotests/widgets-compilation/component-inline-multiple-roots/index.marko", function() {
+ return module.exports;
+ }),
+ marko_helpers = require("marko/runtime/html/helpers"),
+ marko_attr = marko_helpers.a;
+
+function render(data, out, widget, state) {
+ out.w("A
B");
+}
+
+marko_template._ = marko_widgets.r(render, {
+ type: marko_widgetType,
+ roots: [
+ "_r0",
+ "_r1"
+ ]
+ }, marko_component);
+
+marko_template.Widget = marko_widgets.w(marko_component, marko_template._);
diff --git a/test/autotests/widgets-compilation/component-inline-multiple-roots/index.marko b/test/autotests/widgets-compilation/component-inline-multiple-roots/index.marko
new file mode 100644
index 000000000..dc659d16e
--- /dev/null
+++ b/test/autotests/widgets-compilation/component-inline-multiple-roots/index.marko
@@ -0,0 +1,10 @@
+
+
+
+ A
+
+
+ B
+
diff --git a/test/autotests/widgets-compilation/component-inline/expected.js b/test/autotests/widgets-compilation/component-inline/expected.js
index 672cae61b..ae239f1f7 100644
--- a/test/autotests/widgets-compilation/component-inline/expected.js
+++ b/test/autotests/widgets-compilation/component-inline/expected.js
@@ -1,39 +1,30 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-var component = (function() {
- var marko_component;
+module.exports = marko_template;
- marko_component = {};
+var marko_component = (function() {
+ var marko_component;
- return marko_component;
-})();
+ marko_component = {};
-var marko_widgets = require("marko/widgets");
-
-module.exports = marko_widgets.c(component, template);
-
-var marko_registerWidget = marko_widgets.registerWidget,
+ return marko_component;
+ })(),
+ marko_widgets = require("marko/widgets"),
+ marko_registerWidget = marko_widgets.registerWidget,
marko_widgetType = marko_registerWidget("/marko-test$1.0.0/autotests/widgets-compilation/component-inline/index.marko", function() {
return module.exports;
}),
marko_helpers = require("marko/runtime/html/helpers"),
- marko_attr = marko_helpers.a,
- marko_loadTag = marko_helpers.t,
- _widget_tag = marko_loadTag(require("marko/widgets/taglib/widget-tag"));
+ marko_attr = marko_helpers.a;
-function render(data, out) {
- _widget_tag({
- type: marko_widgetType,
- _cfg: data.widgetConfig,
- _state: data.widgetState,
- _props: data.widgetProps,
- _body: data.widgetBody,
- renderBody: function renderBody(out, widget, state) {
- out.w("");
- }
- }, out);
+function render(data, out, widget, state) {
+ out.w("");
}
-template._ = render;
+marko_template._ = marko_widgets.r(render, {
+ type: marko_widgetType
+ }, marko_component);
+
+marko_template.Widget = marko_widgets.w(marko_component, marko_template._);
diff --git a/test/autotests/widgets-compilation/component-template-entry-split/expected.js b/test/autotests/widgets-compilation/component-template-entry-split/expected.js
index a27dd2862..f9986b978 100644
--- a/test/autotests/widgets-compilation/component-template-entry-split/expected.js
+++ b/test/autotests/widgets-compilation/component-template-entry-split/expected.js
@@ -1,33 +1,22 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-var renderer = require("./renderer");
+module.exports = marko_template;
-var marko_widgets = require("marko/widgets");
-
-module.exports = marko_widgets.r(renderer, template);
-
-var marko_registerWidget = marko_widgets.registerWidget,
+var marko_component = require("./renderer"),
+ marko_widgets = require("marko/widgets"),
+ marko_registerWidget = marko_widgets.registerWidget,
marko_widgetType = marko_registerWidget("/marko-test$1.0.0/autotests/widgets-compilation/component-template-entry-split/widget", function() {
return require("./widget");
}),
marko_helpers = require("marko/runtime/html/helpers"),
- marko_attr = marko_helpers.a,
- marko_loadTag = marko_helpers.t,
- _widget_tag = marko_loadTag(require("marko/widgets/taglib/widget-tag"));
+ marko_attr = marko_helpers.a;
-function render(data, out) {
- _widget_tag({
- type: marko_widgetType,
- _cfg: data.widgetConfig,
- _state: data.widgetState,
- _props: data.widgetProps,
- _body: data.widgetBody,
- renderBody: function renderBody(out, widget, state) {
- out.w("");
- }
- }, out);
+function render(data, out, widget, state) {
+ out.w("");
}
-template._ = render;
+marko_template._ = marko_widgets.r(render, {
+ type: marko_widgetType
+ }, marko_component);
diff --git a/test/autotests/widgets-compilation/component-template-entry/expected.js b/test/autotests/widgets-compilation/component-template-entry/expected.js
index a51901446..e2b127640 100644
--- a/test/autotests/widgets-compilation/component-template-entry/expected.js
+++ b/test/autotests/widgets-compilation/component-template-entry/expected.js
@@ -1,33 +1,24 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-var component = require("./component");
+module.exports = marko_template;
-var marko_widgets = require("marko/widgets");
-
-module.exports = marko_widgets.c(component, template);
-
-var marko_registerWidget = marko_widgets.registerWidget,
+var marko_component = require("./component"),
+ marko_widgets = require("marko/widgets"),
+ marko_registerWidget = marko_widgets.registerWidget,
marko_widgetType = marko_registerWidget("/marko-test$1.0.0/autotests/widgets-compilation/component-template-entry/index.marko", function() {
return module.exports;
}),
marko_helpers = require("marko/runtime/html/helpers"),
- marko_attr = marko_helpers.a,
- marko_loadTag = marko_helpers.t,
- _widget_tag = marko_loadTag(require("marko/widgets/taglib/widget-tag"));
+ marko_attr = marko_helpers.a;
-function render(data, out) {
- _widget_tag({
- type: marko_widgetType,
- _cfg: data.widgetConfig,
- _state: data.widgetState,
- _props: data.widgetProps,
- _body: data.widgetBody,
- renderBody: function renderBody(out, widget, state) {
- out.w("");
- }
- }, out);
+function render(data, out, widget, state) {
+ out.w("");
}
-template._ = render;
+marko_template._ = marko_widgets.r(render, {
+ type: marko_widgetType
+ }, marko_component);
+
+marko_template.Widget = marko_widgets.w(marko_component, marko_template._);
diff --git a/test/autotests/widgets-compilation/ref/components/app-foo/index.marko b/test/autotests/widgets-compilation/ref/components/app-foo/index.marko
new file mode 100644
index 000000000..025abeca1
--- /dev/null
+++ b/test/autotests/widgets-compilation/ref/components/app-foo/index.marko
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/test/autotests/widgets-compilation/ref/expected.js b/test/autotests/widgets-compilation/ref/expected.js
new file mode 100644
index 000000000..5dfaa9fa1
--- /dev/null
+++ b/test/autotests/widgets-compilation/ref/expected.js
@@ -0,0 +1,48 @@
+var marko_template = require("marko/html").t(__filename);
+
+module.exports = marko_template;
+
+var marko_component = (function() {
+ var marko_component;
+
+ marko_component = {
+ onMount: function () {
+ }
+ };
+
+ return marko_component;
+ })(),
+ marko_widgets = require("marko/widgets"),
+ marko_registerWidget = marko_widgets.registerWidget,
+ marko_widgetType = marko_registerWidget("/marko-test$1.0.0/autotests/widgets-compilation/ref/index.marko", function() {
+ return module.exports;
+ }),
+ marko_helpers = require("marko/runtime/html/helpers"),
+ marko_loadTemplate = marko_helpers.l,
+ app_foo_template = marko_loadTemplate(require.resolve("./components/app-foo")),
+ marko_loadTag = marko_helpers.t,
+ app_foo_tag = marko_loadTag(app_foo_template),
+ marko_attr = marko_helpers.a;
+
+function render(data, out, widget, state) {
+ out.w("");
+
+ app_foo_tag({
+ $w: [
+ widget,
+ "foo"
+ ]
+ }, out);
+
+ out.w("
eBay ");
+}
+
+marko_template._ = marko_widgets.r(render, {
+ type: marko_widgetType
+ }, marko_component);
+
+marko_template.Widget = marko_widgets.w(marko_component, marko_template._);
diff --git a/test/autotests/widgets-compilation/ref/index.marko b/test/autotests/widgets-compilation/ref/index.marko
new file mode 100644
index 000000000..3784a7550
--- /dev/null
+++ b/test/autotests/widgets-compilation/ref/index.marko
@@ -0,0 +1,12 @@
+
+
+
+
+ eBay
+
\ No newline at end of file
diff --git a/test/autotests/widgets-compilation/style-in-directory/expected.js b/test/autotests/widgets-compilation/style-in-directory/expected.js
index 4ec95ed46..2acc9b2bb 100644
--- a/test/autotests/widgets-compilation/style-in-directory/expected.js
+++ b/test/autotests/widgets-compilation/style-in-directory/expected.js
@@ -1,14 +1,14 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
out.w("");
}
-template._ = render;
+marko_template._ = render;
-template.meta = {
+marko_template.meta = {
deps: [
"./style.css"
]
diff --git a/test/autotests/widgets-compilation/top-level-inline-style/expected.js b/test/autotests/widgets-compilation/top-level-inline-style/expected.js
index 26b4024da..caca27c91 100644
--- a/test/autotests/widgets-compilation/top-level-inline-style/expected.js
+++ b/test/autotests/widgets-compilation/top-level-inline-style/expected.js
@@ -1,14 +1,14 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
function render(data, out) {
out.w("");
}
-template._ = render;
+marko_template._ = render;
-template.meta = {
+marko_template.meta = {
deps: [
{
type: "css",
diff --git a/test/autotests/widgets-compilation/widget-types/expected.js b/test/autotests/widgets-compilation/widget-types/expected.js
index 7addc8565..1bc7f4e1a 100644
--- a/test/autotests/widgets-compilation/widget-types/expected.js
+++ b/test/autotests/widgets-compilation/widget-types/expected.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_widgets = require("marko/widgets"),
marko_registerWidget = marko_widgets.registerWidget,
@@ -13,25 +13,14 @@ var marko_widgets = require("marko/widgets"),
})
},
marko_helpers = require("marko/runtime/html/helpers"),
- marko_attr = marko_helpers.a,
- marko_loadTag = marko_helpers.t,
- _widget_tag = marko_loadTag(require("marko/widgets/taglib/widget-tag"));
+ marko_attr = marko_helpers.a;
-function render(data, out) {
- out.w("");
+function render(data, out, widget, state) {
+ widget.type = marko_widgetTypes[data.isMobile ? "default" : "mobile"];
- _widget_tag({
- type: marko_widgetTypes[data.isMobile ? "default" : "mobile"],
- _cfg: data.widgetConfig,
- _state: data.widgetState,
- _props: data.widgetProps,
- _body: data.widgetBody,
- renderBody: function renderBody(out, widget, state) {
- out.w("");
- }
- }, out);
+ out.w("");
}
-template._ = render;
+marko_template._ = marko_widgets.r(render, {});
diff --git a/test/browser-tests-runner/page-template.marko.js b/test/browser-tests-runner/page-template.marko.js
index ab585d93e..184e7bac7 100644
--- a/test/browser-tests-runner/page-template.marko.js
+++ b/test/browser-tests-runner/page-template.marko.js
@@ -1,6 +1,6 @@
-var template = require("marko/html").c(__filename);
+var marko_template = require("marko/html").t(__filename);
-module.exports = template;
+module.exports = marko_template;
var marko_helpers = require("marko/runtime/html/helpers"),
marko_loadTag = marko_helpers.t,
@@ -45,4 +45,4 @@ function render(data, out) {
out.w("