function/abstract module
requires
-
Function() class
global
static methods
code
if (typeof define !== "function") {
var define = require("amdefine")(module);
}
define(function (require) {
"use strict";
require("../class/singleton");
var Invocation = require("../function/invocation"),
ImplementationNotFound = require("../error/implementation-not-found"),
signatures = require("./signatures");
Function.Abstract = function (functionName) {
return function () {
var invocation = Invocation.singleton(),
errorDetails = {
functionName: functionName
};
if (invocation) {
errorDetails.signature = invocation.signature;
errorDetails.nonMatchingSignatures = invocation.nonMatchingSignatures;
invocation.reset();
}
if (!errorDetails.signature) {
errorDetails.signature = signatures.getInvocationSignature(arguments);
}
throw new ImplementationNotFound(errorDetails);
};
};
});