From fb814a097668940a5216b2b149667ce7f897d9d5 Mon Sep 17 00:00:00 2001 From: Itay Maman <94941+imaman@users.noreply.github.com> Date: Wed, 13 Nov 2024 14:46:03 +0200 Subject: [PATCH] green --- modules/septima-lang/src/runtime.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/septima-lang/src/runtime.ts b/modules/septima-lang/src/runtime.ts index a76a5515..359ba9ef 100644 --- a/modules/septima-lang/src/runtime.ts +++ b/modules/septima-lang/src/runtime.ts @@ -1,3 +1,5 @@ +import crypto from 'crypto' + import { AstNode, show, Unit, UnitId } from './ast-node' import { extractMessage } from './extract-message' import { failMe } from './fail-me' @@ -97,6 +99,7 @@ export class Runtime { }) const parse = Value.foreign(o => JSON.parse(o.toString())) + const hash = Value.foreign(o => crypto.createHash('sha224').update(JSON.stringify(o.unwrap())).digest('hex')) let lib = new SymbolFrame('Object', { destination: Value.obj({ keys, entries, fromEntries }) }, empty, 'INTERNAL') lib = new SymbolFrame('String', { destination: Value.foreign(o => Value.str(o.toString())) }, lib, 'INTERNAL') @@ -105,6 +108,7 @@ export class Runtime { lib = new SymbolFrame('Array', { destination: Value.obj({ isArray }) }, lib, 'INTERNAL') lib = new SymbolFrame('console', { destination: Value.obj({ log }) }, lib, 'INTERNAL') lib = new SymbolFrame('JSON', { destination: Value.obj({ parse }) }, lib, 'INTERNAL') + lib = new SymbolFrame('crypto', { destination: Value.obj({ hash }) }, lib, 'INTERNAL') if (generateTheArgsObject) { lib = new SymbolFrame('args', { destination: Value.from(this.args) }, lib, 'INTERNAL')