Capability first · transport second

CalculatorEngine.js

Evaluates complete arithmetic expressions, powers, constants, and common functions without eval.

SDK 0.5.18Runtime 0.8.12Protocol arcane/1
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

JavaScript
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

BindingFormDeclaration or signatureParameter syntax
CALCULATOR_ENGINE_ERROR_CODESvariable · valuevariable CALCULATOR_ENGINE_ERROR_CODES
evaluateExpressionfunctionfunction evaluateExpression(input)input
defaultdefault · classclass CalculatorEngine
CallableKindExact public signatureParameter syntax
evaluateExpressionexported-functionfunction evaluateExpression(input)input
CalculatorEngine.calculatepublic-membercalculate(expression)expression
MemberKindExact public declarationParameter syntax
CalculatorEngine.constructorconstructorconstructor()
CalculatorEngine.calculatemethodcalculate(expression)expression
CalculatorEngine.disposemethoddispose()
CalculatorEngine.destroymethoddestroy()

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

JavaScript
import CalculatorEngine from '/arcane/modules/CalculatorEngine.js';

const engine=new CalculatorEngine();
console.log(engine.calculate('sqrt(81) + 2^3').result);

No direct Core call is claimed for this artifact. Any injected provider or consuming module retains its own documented authority.