author | Alan Dipert
<alan@dipert.org> 2019-08-21 21:12:45 UTC |
committer | Alan Dipert
<alan@dipert.org> 2019-08-21 21:12:45 UTC |
parent | b87c55be01d848f288f07372327bed02c0b15ac2 |
jacl.js | +10 | -9 |
diff --git a/jacl.js b/jacl.js index c2f815c..c9ba5e8 100644 --- a/jacl.js +++ b/jacl.js @@ -125,6 +125,15 @@ class Values extends Array { } const PACKAGES = new Map(); +class Token extends String { + interpret() { + return readInteger(this) || LispSymbol.fromString(this); + } + static is(x, y) { + return (x instanceof Token) && x.valueOf() === y; + } +} + class Package { constructor(name) { this.name = name; @@ -133,6 +142,7 @@ class Package { this.use = []; } intern(name) { + if (name instanceof Token) name = name.valueOf(); let sym = this.symbols.get(name) if (!sym) { sym = new LispSymbol(name, this.name); @@ -248,15 +258,6 @@ class ReadTable { const READTABLE = Package.intern('CL', '*READTABLE*'); -class Token extends String { - interpret() { - return readInteger(this) || LispSymbol.fromString(this); - } - static is(x, y) { - return (x instanceof Token) && x.valueOf() === y; - } -} - const LIST_CLOSE_PAREN = new Object(); const readList = async stream => {