git » jacl.git » commit 465be05

Add Package.intern helper

author Alan Dipert
2019-08-14 22:49:49 UTC
committer Alan Dipert
2019-08-14 22:49:49 UTC
parent dae2a8d4fbffccad8930d36b29ec54dd7dd0be5c

Add Package.intern helper

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()
     ));
   });