aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-01-23 10:06:07 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-01-23 10:06:07 -0800
commitb40afadb4f35bb1df98fb8098c6b4edfe17dc6bd (patch)
tree4c073d638bc89b4d5fb93fc372e16a7d3928e79e
parent0eadc1bad8baecfdedbc60c600ee802489a58a9d (diff)
optimize isFuncType further
-rw-r--r--src/parseTools.js5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/parseTools.js b/src/parseTools.js
index f5eba4c4..a5939994 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -205,15 +205,16 @@ function isFunctionDef(token, out) {
function isPossiblyFunctionType(type) {
// A quick but unreliable way to see if something is a function type. Yes is just 'maybe', no is definite.
var len = type.length;
- return type[len-2] == ')' && type[len-1] == '*' && type.indexOf('(') > 0;
+ return type[len-2] == ')' && type[len-1] == '*';
}
function isFunctionType(type, out) {
if (!isPossiblyFunctionType(type)) return false;
type = type.substr(0, type.length-1); // remove final '*'
+ var firstOpen = type.indexOf('(');
+ if (firstOpen <= 0) return false;
type = type.replace(/"[^"]+"/g, '".."');
var lastOpen = type.lastIndexOf('(');
- var firstOpen = type.indexOf('(');
var returnType;
if (firstOpen == lastOpen) {
returnType = type.substr(0, type.indexOf(' '));