On this page
Overview
Evaluates complete arithmetic expressions, powers, constants, and common functions without `eval`.
- Artifact
CalculatorEngine.js· esm - Classification
public first party - Availability
Cross-host - Normalization
Mutable complete canonical result/error details, source-instance operation IDs, and exact parser/evaluation error codes.
Import and lifecycle
import * as module from '/arcane/modules/CalculatorEngine.js';
evaluateExpression is pure; calculate additionally dispatches one result or error event.
Application-facing behavior: CALCULATORENGINEERRORCODES; default CalculatorEngine with calculate() and dispose()/destroy(); evaluateExpression().
Protocol and host implementation
arcane-event-source/1 on the per-realm globalThis.arcaneEvents authority This detail does not widen the application-facing API or grant authority.
Exports, signatures, parameters, and results
| Binding | Form | Declaration or signature | Parameter syntax |
|---|---|---|---|
CALCULATOR_ENGINE_ERROR_CODES | variable · value | variable CALCULATOR_ENGINE_ERROR_CODES | — |
evaluateExpression | function | function evaluateExpression(input) | input |
default | default · class | class CalculatorEngine | — |
| Callable | Kind | Exact public signature | Parameter syntax |
|---|---|---|---|
evaluateExpression | exported-function | function evaluateExpression(input) | input |
CalculatorEngine.calculate | public-member | calculate(expression) | expression |
| Member | Kind | Exact public declaration | Parameter syntax |
|---|---|---|---|
CalculatorEngine.constructor | constructor | constructor() | — |
CalculatorEngine.calculate | method | calculate(expression) | expression |
CalculatorEngine.dispose | method | dispose() | — |
CalculatorEngine.destroy | method | destroy() | — |
Parameter meanings and results
evaluateExpression(input) parses any nonblank arithmetic expression with powers, parentheses, pi, e, and common functions. calculate(expression) returns a Calculation entity.
Events, side effects, and errors
Source-literal CustomEvent dispatches
No source-literal CustomEvent dispatch is part of this artifact.
Lifecycle and event flow
- calculator-result
- calculator-error
Direct coded failures
This artifact directly assigns no stable coded failure.
Exported Error subclasses
This artifact exports no Error subclass.
Documented failure behavior
- TypeError for empty input
- SyntaxError for invalid grammar
- RangeError for division by zero or non-finite output
Availability and capabilities
Cross-host. Mutable complete canonical result/error details, source-instance operation IDs, and exact parser/evaluation error codes.
Cross-host deterministic computation without eval and with no Core dependency.
Contract example
import CalculatorEngine from '/arcane/modules/CalculatorEngine.js';
const engine=new CalculatorEngine();
console.log(engine.calculate('sqrt(81) + 2^3').result);
Related reference
No direct Core call is claimed for this artifact. Any injected provider or consuming module retains its own documented authority.