In the context of xUML all parameters and objects are undeletable and always present. This means, as opposed to standard JavaScript where unprovided input parameters are undefined, all parameters are available in the JavaScript operation but NULL in all cases.
Example
Assume you have the following class in the Designer that defines the type of an input parameter to a JavaScript operation:
Assume further, you have a JavaScript operation taking to parameters person1 and person2 as input parameters. The following values are provided:
person1
Not provided.
person2
{
"firstName" : "John"
}
In this scenario, the following statements in the JavaScript operation are true:
-
person === null -
person2.firstName === "John" -
person2.lastName === null -
(person2.lastName || "Snow") === "Snow" -
person2.gender === undefined -
person3 === undefined
If an unprovided parameter is used, a JavaScript TypeError will be thrown.