'use strict' const compiler = require('../../dist/compiler.js') const self = (global || root) self.performance = { now: function () { var hrtime = process.hrtime() return ((hrtime[0] * 1000000 + hrtime[1] / 1000) / 1000) } } function generateGrid (rowCount, columnCount) { var grid = [] for (var r = 0; r < rowCount; r++) { var row = { id: r, items: [] } for (var c = 0; c < columnCount; c++) { row.items.push({ id: (r + '-' + c) }) } grid.push(row) } return grid } const gridData = generateGrid(1000, 10) var gridComponent = { template: '

{{ Math.random() }}

', components: { myTable: { data: function () { return { grid: gridData } }, // template: '
123{{ item.id }}
', template: '
', components: { row: { props: ['row'], template: '{{ Math.random() }}', components: { column: { template: '' + // 25 plain elements for each cell '' + '' } } } } } } } function createCompiledOptions (options) { const res = compiler.compileToFunctions(options.template, { preserveWhitespace: false }) Object.assign(options, res) delete options.template if (options.components) { const keys = Object.keys(options.components) let total = keys.length while (total) { const name = keys[total - 1] options.components[name] = createCompiledOptions(options.components[name]) total-- } } return options } module.exports = createCompiledOptions(gridComponent)