js.evalURI: Difference between revisions
Jump to navigation
Jump to search
(Created page with "{{Experimental}} {{MacroFunction |name=js.evalURI |version=1.10.0 |description= Looks up a resource by identifier and evaluates it as a javascript expression. Supports ECMA 2...") |
No edit summary |
||
Line 32: | Line 32: | ||
|also= | |also= | ||
[[js:MapTool|JS: MapTool]]<br/> | [[js:MapTool|JS: MapTool]]<br/> | ||
[[js:MTScript|JS: MTScript]] | [[js:MTScript|JS: MTScript]]<br/> | ||
{{func|js.eval}}<br/> | |||
{{func|js.evalNS}}<br/> | |||
{{func|js.createNS}}<br/> | |||
{{func|js.removeNS}} | |||
}} | }} | ||
[[Category:Javascript Function]] | [[Category:Javascript Function]] |
Revision as of 18:45, 17 September 2021
This article describes a feature or macro function that is experimental and may be subject to change.
js.evalURI() Function
• Introduced in version 1.10.0
Looks up a resource by identifier and evaluates it as a javascript expression. Supports ECMA 2021 standard. For security, access to native types and external resources are limited. Similarly, all arrays passed in to the javascript environment are shallow copied, so changes to the array do not directly change MapTool's state.
Like js.evalNS(), js.evalURI() does not wrap the fragment in an anonymous function. The statement in tail position (usually the last statement) is the return value for js.evalURI().
Usage
js.eval(namespace, URI, arg1, arg2...)
Parameters
namespace
- The namespace to run the fragment in. It will be created if it does not yet exist.URI
- A URI identifying a valid Javascript fragment.arg1, arg2...
- Any. Will be converted to the equivalent javascript type as needed. Arguments are accessible via theargs
variable.return
- Any primitive type; Complex types are converted to (JSON) strings.
Example
Using
js.eval
on an expression
.
[r: js.evalNS("demo", "lib://myToken/macro/myMacro", 5)]