author | Alan Dipert
<alan@dipert.org> 2019-08-14 22:49:49 UTC |
committer | Alan Dipert
<alan@dipert.org> 2019-08-14 22:49:49 UTC |
parent | dae2a8d4fbffccad8930d36b29ec54dd7dd0be5c |
jacl.js | +7 | -3 |
diff --git a/jacl.js b/jacl.js index 8a80e12..3bf804c 100644 --- a/jacl.js +++ b/jacl.js @@ -125,6 +125,10 @@ class Package { if (this.name === 'KEYWORD') this.exports.set(name, sym); return sym; } + static intern(packageName, name) { + const pkg = Package.get(packageName, true); + return pkg.intern(name); + } static get(packageName, throwNotFound = false) { const pkg = PACKAGES.get(packageName); if (!pkg && throwNotFound) { @@ -144,7 +148,7 @@ Package.makePackage('COMMON-LISP', 'CL'); Package.makePackage('COMMON-LISP-USER'); Package.makePackage('KEYWORD'); -const PACKAGE = Package.get('CL').intern('*PACKAGE*'); +const PACKAGE = Package.intern('CL', '*PACKAGE*'); PACKAGE.value = Package.get('CL'); class BufferedStream { @@ -211,7 +215,7 @@ class ReadTable { } } -const READTABLE = Package.get('CL').intern('*READTABLE*'); +const READTABLE = Package.intern('CL', '*READTABLE*'); class Token extends String { interpret() { @@ -276,7 +280,7 @@ READTABLE.value = new ReadTable() .setMacro('(', true, readList) .setMacro("'", true, async stream => { return new Values(Cons.listOf( - Package.get('CL').intern('QUOTE'), + Package.intern('CL', 'QUOTE'), await Reader.of(Tokenizer.of(stream)).read() )); });