[Pkg-javascript-commits] [uglifyjs] 02/491: drop `angular` (#1812)
Jonas Smedegaard
dr at jones.dk
Wed Feb 14 19:51:16 UTC 2018
This is an automated email from the git hooks/post-receive script.
js pushed a commit to annotated tag debian/3.3.10-1
in repository uglifyjs.
commit 32deb365d500f22f3215fe0edb094b38dba5b61a
Author: Alex Lam S.L <alexlamsl at gmail.com>
Date: Sat Apr 15 05:52:29 2017 +0800
drop `angular` (#1812)
Remove support for `@ngInject` as there are proper alternatives anyway.
---
lib/compress.js | 78 -----------------------------------------
test/compress/angular-inject.js | 67 -----------------------------------
2 files changed, 145 deletions(-)
diff --git a/lib/compress.js b/lib/compress.js
index 8c25457..5128abb 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -48,7 +48,6 @@ function Compressor(options, false_by_default) {
return new Compressor(options, false_by_default);
TreeTransformer.call(this, this.before, this.after);
this.options = defaults(options, {
- angular : false,
booleans : !false_by_default,
cascade : !false_by_default,
collapse_vars : !false_by_default,
@@ -536,9 +535,6 @@ merge(Compressor.prototype, {
var CHANGED, max_iter = 10;
do {
CHANGED = false;
- if (compressor.option("angular")) {
- statements = process_for_angular(statements);
- }
statements = eliminate_spurious_blocks(statements);
if (compressor.option("dead_code")) {
statements = eliminate_dead_code(statements, compressor);
@@ -731,80 +727,6 @@ merge(Compressor.prototype, {
}
}
- function process_for_angular(statements) {
- function has_inject(comment) {
- return /@ngInject/.test(comment.value);
- }
- function make_arguments_names_list(func) {
- return func.argnames.map(function(sym){
- return make_node(AST_String, sym, { value: sym.name });
- });
- }
- function make_array(orig, elements) {
- return make_node(AST_Array, orig, { elements: elements });
- }
- function make_injector(func, name) {
- return make_node(AST_SimpleStatement, func, {
- body: make_node(AST_Assign, func, {
- operator: "=",
- left: make_node(AST_Dot, name, {
- expression: make_node(AST_SymbolRef, name, name),
- property: "$inject"
- }),
- right: make_array(func, make_arguments_names_list(func))
- })
- });
- }
- function check_expression(body) {
- if (body && body.args) {
- // if this is a function call check all of arguments passed
- body.args.forEach(function(argument, index, array) {
- var comments = argument.start.comments_before;
- // if the argument is function preceded by @ngInject
- if (argument instanceof AST_Lambda && comments.length && has_inject(comments[0])) {
- // replace the function with an array of names of its parameters and function at the end
- array[index] = make_array(argument, make_arguments_names_list(argument).concat(argument));
- }
- });
- // if this is chained call check previous one recursively
- if (body.expression && body.expression.expression) {
- check_expression(body.expression.expression);
- }
- }
- }
- return statements.reduce(function(a, stat){
- a.push(stat);
-
- if (stat.body && stat.body.args) {
- check_expression(stat.body);
- } else {
- var token = stat.start;
- var comments = token.comments_before;
- if (comments && comments.length > 0) {
- var last = comments.pop();
- if (has_inject(last)) {
- // case 1: defun
- if (stat instanceof AST_Defun) {
- a.push(make_injector(stat, stat.name));
- }
- else if (stat instanceof AST_Definitions) {
- stat.definitions.forEach(function(def) {
- if (def.value && def.value instanceof AST_Lambda) {
- a.push(make_injector(def.value, def.name));
- }
- });
- }
- else {
- compressor.warn("Unknown statement marked with @ngInject [{file}:{line},{col}]", token);
- }
- }
- }
- }
-
- return a;
- }, []);
- }
-
function eliminate_spurious_blocks(statements) {
var seen_dirs = [];
return statements.reduce(function(a, stat){
diff --git a/test/compress/angular-inject.js b/test/compress/angular-inject.js
deleted file mode 100644
index 8b24c84..0000000
--- a/test/compress/angular-inject.js
+++ /dev/null
@@ -1,67 +0,0 @@
-ng_inject_defun: {
- options = {
- angular: true
- };
- input: {
- /*@ngInject*/
- function Controller(dependency) {
- return dependency;
- }
- }
- expect: {
- function Controller(dependency) {
- return dependency;
- }
- Controller.$inject=['dependency']
- }
-}
-
-ng_inject_assignment: {
- options = {
- angular: true
- };
- input: {
- /*@ngInject*/
- var Controller = function(dependency) {
- return dependency;
- }
- }
- expect: {
- var Controller = function(dependency) {
- return dependency;
- }
- Controller.$inject=['dependency']
- }
-}
-
-ng_inject_inline: {
- options = {
- angular: true
- };
- input: {
- angular.module('a').
- factory('b',
- /*@ngInject*/
- function(dependency) {
- return dependency;
- }).
- directive('c',
- /*@ngInject*/
- function(anotherDependency) {
- return anotherDependency;
- })
- }
- expect: {
- angular.module('a').
- factory('b',[
- 'dependency',
- function(dependency) {
- return dependency;
- }]).
- directive('c',[
- 'anotherDependency',
- function(anotherDependency) {
- return anotherDependency;
- }])
- }
-}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/uglifyjs.git
More information about the Pkg-javascript-commits
mailing list