refactor(benchamrks_external): Ts'ify benchmarks_external
Translates benchmarks_external to TypeScript.
This commit is contained in:
@ -1,96 +0,0 @@
|
||||
// compiler benchmark in AngularJS 1.x
|
||||
import {getIntParameter, bindAction} from 'angular2/src/test_lib/benchmark_util';
|
||||
|
||||
export function main() {
|
||||
var ngEl = document.createElement('div');
|
||||
angular.bootstrap(ngEl, ['app']);
|
||||
}
|
||||
|
||||
function loadTemplate(templateId, repeatCount) {
|
||||
var template = document.querySelectorAll(`#${templateId}`)[0];
|
||||
var content = template.innerHTML;
|
||||
var result = '';
|
||||
for (var i=0; i<repeatCount; i++) {
|
||||
result += content;
|
||||
}
|
||||
// replace [] binding syntax
|
||||
result = result.replace(/[\[\]]/g, '');
|
||||
|
||||
// Use a DIV as container as Angular 1.3 does not know <template> elements...
|
||||
var div = document.createElement('div');
|
||||
div.innerHTML = result;
|
||||
return div;
|
||||
}
|
||||
|
||||
angular.module('app', [])
|
||||
.directive('dir0', ['$parse', function($parse) {
|
||||
return {
|
||||
compile: function($element, $attrs) {
|
||||
var expr = $parse($attrs.attr0);
|
||||
return function($scope) {
|
||||
$scope.$watch(expr, angular.noop);
|
||||
}
|
||||
}
|
||||
};
|
||||
}])
|
||||
.directive('dir1', ['$parse', function($parse) {
|
||||
return {
|
||||
compile: function($element, $attrs) {
|
||||
var expr = $parse($attrs.attr1);
|
||||
return function($scope) {
|
||||
$scope.$watch(expr, angular.noop);
|
||||
}
|
||||
}
|
||||
};
|
||||
}])
|
||||
.directive('dir2', ['$parse', function($parse) {
|
||||
return {
|
||||
compile: function($element, $attrs) {
|
||||
var expr = $parse($attrs.attr2);
|
||||
return function($scope) {
|
||||
$scope.$watch(expr, angular.noop);
|
||||
}
|
||||
}
|
||||
};
|
||||
}])
|
||||
.directive('dir3', ['$parse', function($parse) {
|
||||
return {
|
||||
compile: function($element, $attrs) {
|
||||
var expr = $parse($attrs.attr3);
|
||||
return function($scope) {
|
||||
$scope.$watch(expr, angular.noop);
|
||||
}
|
||||
}
|
||||
};
|
||||
}])
|
||||
.directive('dir4', ['$parse', function($parse) {
|
||||
return {
|
||||
compile: function($element, $attrs) {
|
||||
var expr = $parse($attrs.attr4);
|
||||
return function($scope) {
|
||||
$scope.$watch(expr, angular.noop);
|
||||
}
|
||||
}
|
||||
};
|
||||
}])
|
||||
.run(['$compile', function($compile) {
|
||||
var count = getIntParameter('elements');
|
||||
var templateNoBindings = loadTemplate('templateNoBindings', count);
|
||||
var templateWithBindings = loadTemplate('templateWithBindings', count);
|
||||
|
||||
bindAction('#compileWithBindings', compileWithBindings);
|
||||
bindAction('#compileNoBindings', compileNoBindings);
|
||||
|
||||
function compileNoBindings() {
|
||||
// Need to clone every time as the compiler might modify the template!
|
||||
var cloned = templateNoBindings.cloneNode(true);
|
||||
$compile(cloned);
|
||||
}
|
||||
|
||||
function compileWithBindings() {
|
||||
// Need to clone every time as the compiler might modify the template!
|
||||
var cloned = templateWithBindings.cloneNode(true);
|
||||
$compile(cloned);
|
||||
}
|
||||
}]);
|
||||
|
104
modules/benchmarks_external/src/compiler/compiler_benchmark.ts
Normal file
104
modules/benchmarks_external/src/compiler/compiler_benchmark.ts
Normal file
@ -0,0 +1,104 @@
|
||||
// compiler benchmark in AngularJS 1.x
|
||||
import {getIntParameter, bindAction} from 'angular2/src/test_lib/benchmark_util';
|
||||
import angular = require("angular");
|
||||
|
||||
export function main() {
|
||||
var ngEl = document.createElement('div');
|
||||
angular.bootstrap(ngEl, ['app']);
|
||||
}
|
||||
|
||||
function loadTemplate(templateId, repeatCount) {
|
||||
var template = document.querySelectorAll(`#${templateId}`)[0];
|
||||
var content = template.innerHTML;
|
||||
var result = '';
|
||||
for (var i = 0; i < repeatCount; i++) {
|
||||
result += content;
|
||||
}
|
||||
// replace [] binding syntax
|
||||
result = result.replace(/[\[\]]/g, '');
|
||||
|
||||
// Use a DIV as container as Angular 1.3 does not know <template> elements...
|
||||
var div = document.createElement('div');
|
||||
div.innerHTML = result;
|
||||
return div;
|
||||
}
|
||||
|
||||
angular.module('app', [])
|
||||
.directive('dir0', [
|
||||
'$parse',
|
||||
function($parse) {
|
||||
return {
|
||||
compile: function($element, $attrs) {
|
||||
var expr = $parse($attrs.attr0);
|
||||
return function($scope) { $scope.$watch(expr, angular.noop); }
|
||||
}
|
||||
};
|
||||
}
|
||||
])
|
||||
.directive('dir1', [
|
||||
'$parse',
|
||||
function($parse) {
|
||||
return {
|
||||
compile: function($element, $attrs) {
|
||||
var expr = $parse($attrs.attr1);
|
||||
return function($scope) { $scope.$watch(expr, angular.noop); }
|
||||
}
|
||||
};
|
||||
}
|
||||
])
|
||||
.directive('dir2', [
|
||||
'$parse',
|
||||
function($parse) {
|
||||
return {
|
||||
compile: function($element, $attrs) {
|
||||
var expr = $parse($attrs.attr2);
|
||||
return function($scope) { $scope.$watch(expr, angular.noop); }
|
||||
}
|
||||
};
|
||||
}
|
||||
])
|
||||
.directive('dir3', [
|
||||
'$parse',
|
||||
function($parse) {
|
||||
return {
|
||||
compile: function($element, $attrs) {
|
||||
var expr = $parse($attrs.attr3);
|
||||
return function($scope) { $scope.$watch(expr, angular.noop); }
|
||||
}
|
||||
};
|
||||
}
|
||||
])
|
||||
.directive('dir4', [
|
||||
'$parse',
|
||||
function($parse) {
|
||||
return {
|
||||
compile: function($element, $attrs) {
|
||||
var expr = $parse($attrs.attr4);
|
||||
return function($scope) { $scope.$watch(expr, angular.noop); }
|
||||
}
|
||||
};
|
||||
}
|
||||
])
|
||||
.run([
|
||||
'$compile',
|
||||
function($compile) {
|
||||
var count = getIntParameter('elements');
|
||||
var templateNoBindings = loadTemplate('templateNoBindings', count);
|
||||
var templateWithBindings = loadTemplate('templateWithBindings', count);
|
||||
|
||||
bindAction('#compileWithBindings', compileWithBindings);
|
||||
bindAction('#compileNoBindings', compileNoBindings);
|
||||
|
||||
function compileNoBindings() {
|
||||
// Need to clone every time as the compiler might modify the template!
|
||||
var cloned = templateNoBindings.cloneNode(true);
|
||||
$compile(cloned);
|
||||
}
|
||||
|
||||
function compileWithBindings() {
|
||||
// Need to clone every time as the compiler might modify the template!
|
||||
var cloned = templateWithBindings.cloneNode(true);
|
||||
$compile(cloned);
|
||||
}
|
||||
}
|
||||
]);
|
Reference in New Issue
Block a user