Reflect.formalParameters
This commit is contained in:
parent
e0b476cc0a
commit
0b361137a2
|
@ -4,6 +4,7 @@ module.exports.DOM = require("./dom-driver.js");
|
||||||
module.exports.JQuery = require("./jquery-driver.js");
|
module.exports.JQuery = require("./jquery-driver.js");
|
||||||
module.exports.RoutingTableWidget = require("./routing-table-widget.js");
|
module.exports.RoutingTableWidget = require("./routing-table-widget.js");
|
||||||
module.exports.WebSocket = require("./websocket-driver.js");
|
module.exports.WebSocket = require("./websocket-driver.js");
|
||||||
|
module.exports.Reflect = require("./reflect.js");
|
||||||
|
|
||||||
module.exports.Spy = require("./spy.js").Spy;
|
module.exports.Spy = require("./spy.js").Spy;
|
||||||
module.exports.WakeDetector = require("./wake-detector.js").WakeDetector;
|
module.exports.WakeDetector = require("./wake-detector.js").WakeDetector;
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
// Reflection on function formal parameter lists.
|
||||||
|
// This module is based on Angular's "injector" code,
|
||||||
|
// https://github.com/angular/angular.js/blob/master/src/auto/injector.js,
|
||||||
|
// MIT licensed, and hence:
|
||||||
|
// Copyright (c) 2010-2014 Google, Inc. http://angularjs.org
|
||||||
|
// Copyright (c) 2014 Tony Garnock-Jones
|
||||||
|
|
||||||
|
var FN_ARGS = /^function\s*[^\(]*\(\s*([^\)]*)\)/m;
|
||||||
|
var FN_ARG_SPLIT = /,/;
|
||||||
|
var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
|
||||||
|
|
||||||
|
function formalParameters(fn) {
|
||||||
|
var result = [];
|
||||||
|
|
||||||
|
var fnText = fn.toString().replace(STRIP_COMMENTS, '');
|
||||||
|
var argDecl = fnText.match(FN_ARGS);
|
||||||
|
var args = argDecl[1].split(FN_ARG_SPLIT);
|
||||||
|
for (var i = 0; i < args.length; i++) {
|
||||||
|
result.push(args[i].trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports.formalParameters = formalParameters;
|
Loading…
Reference in New Issue