UglifyJS/test/feature_extraction/fnames.js

282 lines
4.0 KiB
JavaScript
Raw Normal View History

func_decl_params: {
options = {
features : "FNAMES"
};
input: {
function chunkData(e, t) { }
}
expect: {
'{
"query":[
{"a": 0, "b": 1, "f2": "FNPAR"},
{"a": 0, "b": 2, "f2": "FNPAR"}
],
"assign":[
{"v": 0, "giv": "chunkData"},
{"v": 1, "inf": "e"},
{"v": 2, "inf": "t"}
]
}'
}
}
func_simple_call: {
options = {
features : "FNAMES"
};
input: {
function chunkData() {
foo();
}
}
expect: {
'{
"query":[
],
"assign":[
]
}
'
}
}
func_args: {
options = {
features : "FNAMES"
};
input: {
function chunkData(x) {
var n1 = "hello";
x.foo(b, n1, 42, n1, 42);
}
}
expect: {
'{
"query":[
{"a": 0, "b": 1, "f2": "FNPAR"},
{"a": 0, "b": 2, "f2": "FNDECL"}
],
"assign":[
{"v": 0, "giv": "chunkData"},
{"v": 1, "inf": "x"},
{"v": 2, "inf": "n1"}
]
}
'
}
}
inner_lambda_assign_local: {
options = {
features : "FNAMES"
};
input: {
function chunkData(x) {
var local = function () {
console.log("hello");
};
}
}
expect: {
'{
"query":[
{"a": 0, "b": 1, "f2": "FNPAR"},
{"a": 0, "b": 2, "f2": "FNDECL"},
{"a": 2, "b": 3, "f2": "FNCALL"},
{"a": 2, "b": 4, "f2": "FNSTRING"}
],
"assign":[
{"v": 0, "giv": "chunkData"},
{"v": 1, "inf": "x"},
{"v": 2, "inf": "local"},
{"v": 3, "giv": "log"},
2015-01-26 16:10:36 +00:00
{"v": 4, "giv": "!String!hello"}
]
}'
}
}
inner_lambda_assign_global: {
options = {
features : "FNAMES"
};
input: {
function chunkData() {
global = function (a) {
console.log("hello");
};
}
}
expect: {
'{
"query":[
{"a": 0, "b": 1, "f2": "FNPAR"}
],
"assign":[
{"v": 0, "giv": "global"},
{"v": 1, "inf": "a"}
]
}'
}
}
inner_lambda_assign_sub: {
options = {
features : "FNAMES"
};
input: {
function chunkData() {
global[42] = function (a) {
console.log("hello");
};
}
}
expect: {
'{
"query":[
{"a": 0, "b": 1, "f2": "FNPAR"}
],
"assign":[
{"v": 0, "giv": "global%5B%5D"},
{"v": 1, "inf": "a"}
]
}'
}
}
inner_lambda_prop: {
options = {
features : "FNAMES"
};
input: {
function chunkData(x) {
n17.substring( {
"awesome_key" : function(a) {
console.log("hello");
}
});
}
}
expect: {
'{
"query":[
{"a": 0, "b": 1, "f2": "FNPAR"},
{"a": 2, "b": 3, "f2": "FNPAR"}
],
"assign":[
{"v": 0, "giv": "chunkData"},
{"v": 1, "inf": "x"},
{"v": 2, "giv": "awesome_key"},
{"v": 3, "inf": "a"}
]
}'
}
}
inner_lambda_arg: {
options = {
features : "FNAMES"
};
input: {
function chunkData() {
foo.substring(a, function(x) {
console.log("hello");
});
}
}
expect: {
'{
"query":[
{"a": 0, "b": 1, "f2": "FNPAR"}
],
"assign":[
{"v": 0, "giv": "substring(2)"},
{"v": 1, "inf": "x"}
]
}'
}
}
inner_lambda_arg2: {
options = {
features : "FNAMES"
};
input: {
function chunkData() {
substring(a, function(b) {
console.log("hello");
});
}
}
expect: {
'{
"query":[
{"a": 0, "b": 1, "f2": "FNPAR"}
],
"assign":[
{"v": 0, "giv": "substring(2)"},
{"v": 1, "inf": "b"}
]
}'
}
}
func_return: {
options = {
features : "FNAMES"
};
input: {
function chunkData() {
var a = "foo";
return a;
}
}
expect: {
'{
"query":[
{"a": 0, "b": 1, "f2": "FNDECL"},
{"a": 0, "b": 1, "f2": "FNRETURN"}
],
"assign":[
{"v": 0, "giv": "chunkData"},
{"v": 1, "inf": "a"}
]
}'
}
2015-01-24 23:11:19 +00:00
}
func_scopes: {
options = {
features : "FNAMES, FSCOPE"
};
input: {
function foo(x,b){
var a = x + y + 1;
(function(r) {
return r + x;
})(2);
}
}
expect: {
'{
"query":[
{"a": 0, "b": 1, "f2": "FNPAR"},
{"a": 0, "b": 2, "f2": "FNPAR"},
{"a": 0, "b": 3, "f2": "FNDECL"},
{"cn":"!=", "n":[0,4]},
{"cn":"!=", "n":[0,1,2,3,4]},
{"cn":"!=", "n":[1,4,5]}
],
"assign":[
{"v": 0, "giv": "foo"},
{"v": 1, "inf": "x"},
{"v": 2, "inf": "b"},
{"v": 3, "inf": "a"},
{"v": 4, "giv": "y"},
{"v": 5, "inf": "r"}
]
}'
}
}