Commit 9cabaf1e by Valera Rozuvan Committed by Alexander Kryklia

Added automatic insertion of missing "return" statement into simple function…

Added automatic insertion of missing "return" statement into simple function strings. Added an option to turn this feature off.
parent 3fec482f
......@@ -512,12 +512,13 @@ define('Graph', ['logme'], function (logme) {
obj['@label'],
obj['@point_size'],
obj['@fill_area'],
obj['@bar']
obj['@bar'],
obj['@disable_auto_return']
);
}
function addFunction(funcString, color, line, dot, label,
pointSize, fillArea, bar) {
pointSize, fillArea, bar, disableAutoReturn) {
var newFunctionObject, func, paramNames;
// The main requirement is function string. Without it we can't
......@@ -532,6 +533,30 @@ define('Graph', ['logme'], function (logme) {
// will break.
funcString = $('<div>').html(funcString).text();
// If the user did not specifically turn off this feature,
// check if the function string contains a 'return', and
// prepend a 'return ' to the string if one, or more, is not
// found.
if (
(disableAutoReturn === undefined) ||
(
(typeof disableAutoReturn === 'string') &&
(disableAutoReturn.toLowerCase() !== 'true')
)
) {
if (funcString.search(/return/i) === -1) {
funcString = 'return ' + funcString;
}
} else {
if (funcString.search(/return/i) === -1) {
logme(
'ERROR: You have specified a JavaScript ' +
'function without a "return" statemnt. Your ' +
'function will return "undefined" by default.'
);
}
}
// Some defaults. If no options are set for the graph, we will
// make sure that at least a line is drawn for a function.
newFunctionObject = {
......
......@@ -266,6 +266,12 @@ Optional parameters::
with id set in 'el_id' attribute.
el_id: Id of html element, defined in 'render' section. Value of
function will be rendered to content of this element.
disable_auto_return: By default, if JavaScript function string is written
without a "return" statement, one will be prepended
to it. Set to "true" to disable this functionality.
This is done so that simple functions can be defined
in an easy fashion (for example, "a", which will be
translated into "return a").
With ``output`` and ``el_id`` set together you can update html elements with
function value, also function will not be plotted.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment