cjs-module-lexer
Advanced tools
Comparing version 0.3.0 to 0.3.1
@@ -1,1 +0,1 @@ | ||
"use strict";exports.parse=parse;exports.init=init;const A=new Set(["implements","interface","let","package","private","protected","public","static","yield","enum"]);let B,Q;function parse(Q,E="@"){if(!B)throw new Error("Not initialized");const g=(B.__heap_base.value||B.__heap_base)+4*Q.length-B.memory.buffer.byteLength;g>0&&B.memory.grow(Math.ceil(g/65536));const I=B.sa(Q.length);if(function(A,B){const Q=A.length;let E=0;for(;E<Q;)B[E]=A.charCodeAt(E++)}(Q,new Uint16Array(B.memory.buffer,I,Q.length+1)),!B.parseCJS(I,Q.length,0,0))throw Object.assign(new Error(`Parse error ${E}${B.e()}:${Q.slice(0,B.e()).split("\n").length}:${B.e()-Q.lastIndexOf("\n",B.e()-1)}`),{idx:B.e()});let C=new Set,S=new Set;for(;B.rre();)S.add(Q.slice(B.res(),B.ree()));for(;B.re();){let E=Q.slice(B.es(),B.ee());A.has(E)||C.add(E)}return{exports:[...C],reexports:[...S]}}function init(){return Q||(Q=(async()=>{const A=await WebAssembly.compile((Q="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IAYQOg0CQZygASAAIARBAXRqNgIAECFB2wBHDQJBnKABQZygASgCAEECajYCABAhGkGcoAEoAgAiACABIAIQOg0CQZygASAAIANBAXRqNgIAECFB3QBHDQIMAQsgAEHPAEcNAUGcoAEoAgAiAEECakHiAEHqAEHlAEHjAEH0ABAORQ0BQZygASAAQQxqNgIAECFBLkcNAUGcoAFBnKABKAIAQQJqNgIAECFB5ABHDQFBnKABKAIAIgBBAmoQM0UNAUGcoAEgAEEcajYCABAhQShHDQFBnKABQZygASgCAEECajYCABAhEDRFDQEQIUEsRw0BQZygAUGcoAEoAgBBAmo2AgAQIRpBnKABKAIAIgAgASACEDoNAUGcoAEgACADQQF0ajYCABAhQSxHDQFBnKABQZygASgCAEECajYCABAhQfsARw0BQZygAUGcoAEoAgBBAmo2AgAQIUHlAEcNAUGcoAEoAgAiAEECahA2RQ0BQZygASAAQRRqNgIAECFBOkcNAUGcoAFBnKABKAIAQQJqNgIAECFBnKABKAIAIQBB9ABHBEAgAC8BAkHyAEcNAiAALwEEQfUARw0CIAAvAQZB5QBHDQILQZygASAAQQhqNgIAECFBLEcNAUGcoAFBnKABKAIAQQJqNgIAECFB5wBHDQFBnKABKAIAIgAvAQJB5QBHDQEgAC8BBEH0AEcNAUGcoAEgAEEGajYCABAhQTpHDQFBnKABQZygASgCAEECajYCABAhQeYARw0BQZygASgCACIAQQJqQfUAQe4AQeMAQfQAQekAQe8AQe4AEBtFDQFBnKABIABBEGo2AgAQIUEoRw0BQZygAUGcoAEoAgBBAmo2AgAQIUEpRw0BQZygAUGcoAEoAgBBAmo2AgAQIUH7AEcNAUGcoAFBnKABKAIAQQJqNgIAECFB8gBHDQFBnKABKAIAIgBBAmpB5QBB9ABB9QBB8gBB7gAQDkUNAUGcoAEgAEEMajYCABAhGkGcoAEoAgAiACAHIAYQOg0BQZygASAAIARBAXRqNgIAECFB2wBHDQFBnKABQZygASgCAEECajYCABAhGkGcoAEoAgAiACABIAIQOg0BQZygASAAIANBAXRqNgIAECFB3QBHDQFBnKABQZygASgCAEECajYCABAhIgFBO0YEf0GcoAFBnKABKAIAQQJqNgIAECEFIAEL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SXJyciAAQfFeakEPSSAAQf5eakEMSXIgAEGPX2pBBEkgAEGZX2pBB0lyciAAQZ5fakEDSSAAQaJfakEDSXIgAEGqX2pBBEkgAEHAX2pBCklycnJyIABBxh9GIABB1V9qQRRJciAAQedgakEkSSAAQc5RakEDSXJyIABBrlFqQQJJIABBjlFqQQJJciAAQfVPakEDSSAAQaBQakEKSXJyciAAQd0vRiAAQcxQakEgSXIgAEGwRmpBA0kgAEGwR2pBCklyciAAQcBHakEKSSAAQdxHakEUSXIgAEGaSGpBDkkgAEHQSGpBCklycnJyciAAQd9IakENSSAAQYBJakEDSXIgAEGVSWpBCUkgAEGwSWpBCklyciAAQcxJakERSSAAQYBKakEFSXIgAEHQSmpBDkkgAEHwSmpBCklycnIgAEGBS2pBC0kgAEGgS2pBHUlyIABBq0tqQQpJIABB6UtqQQVJcnIgAEGwTGpBC0kgAEG6TWpBCklyIABB0E1qQQxJIABB4E1qQQxJcnJyciAAQakxRiAAQfBPakEKSXIgAEHARGpBOkkgAEGJRmpBA0lyciAAQe05RiAAQY5GakEDSXIgAEGsRmpBFUkgAEGFRGpBBUlycnJycg0AIABB4cEARiAAQZu+f2pBDElyIABBwb9/aiICQRVNQQBBASACdEGDgIABcRtyIABBsL5/akENSSAAQZGmf2pBA0lyIABB/9oARiAAQWBxQeDbAEZycnIgAEHWn39qQQZJIABB555/akECSXIgAEHvzAJGIABBjLN9akEKSXJyIABB4LN9akEKSXJyDQAgAEHisn1qQQJJIABBkLJ9akECSXIgAEH1r31qIgJBHE1BAEEBIAJ0QYGAgPgBcRtyDQACQCAAQf6vfWoiAkEESwRAIABBgK99akECSQ0CDAELIAJBAWsOAwAAAAELIAFBgNMCRiAAQc2sfWpBDklyIABBua19akENSSAAQdqtfWpBCElyciAAQYGufWpBC0kgAEGgrn1qQRJJciAAQcyufWpBEkkgAEGwrn1qQQpJcnJyIABB5dMCRiAAQderfWpBDklyIABBX3FBsKx9akEKSXJyDQAgAEGwq31qQQpJIABBvat9aiIBQQpNQQBBASABdEGBDHEbcg0AIABBnah9aiIBQQpNQQAgAUEIRxsNACAAQdCqfWoiAUERTUEA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i19qQQ1JciAAQcchRiAAQc0hRnJyciAAQbZbakEESSAAQbBeakErSXIgAEGEXmpBzQJJcnINACAAQc5aakEESSAAQfBaakEhSXIgAEGwW2oiA0EJSUEAQf8CIANB//8DcXZBAXEbciAAQfZaakEESSAAQaZbakEESXIgAEGgW2pBKUlycg0AIABBgFFqQTRJIABBklFqQQNJciAAQchaaiIDQQlJQQBB/wIgA0H//wNxdkEBcRtyIABBoFFqQQ1JIABBwFFqQRJJciAAQeBRakESSSAAQfJRakEESXJyciAAQYBSakENSSAAQZJSakELSXIgAEHgUmpBywBJIABB/1JqQRpJcnIgAEGRU2pBEUkgAEH/V2pB7ARJciAAQYhYakEGSSAAQeBYakHWAElycnJyDQAgAEFwcSIDQYAnRiAAQehZakHDAElyIABB7llqQQRJIABBqFpqQTlJcnIgAEG+WmpBBEkgAEG4WmpBD0lyIABB1y9GIABB3C9GcnJyIABB4E9qQdkASSAAQYBMakEXSXIgAEHQTGpBGkkgAEGATWpBLElyciAAQZBNakEFSSAAQbBNakEeSXIgAEGATmpBH0kgAEHQTmpBxgBJcnJycg0AIABBqjFGIABBgE9qQSlJciAAQbtJakEHSSAAQftJakEvSXJyIABBpzVGIABB4EtqQTVJciAAQZdGakEESSAAQcNGakEDSXJyciAAQfBGakErSSAAQYBHakEJSXIgAEGmR2pBJEkgAEGzR2pBA0lyciAAQYBIakEkSSAAQcZIakEsSXIgBEGvN0YgAEH9SGpBHklycnJyDQEgAEGSRmoiBUEJSUEAQY8DIAVB//8DcXZBAXEbDQAgAkHQPkYgAEG4QWpBBklyIABB4EFqQSZJIABB6EFqQQZJcnIgAEGARmpBwAFJIABBgERqQZYCSXJyDQEgAEGhQWpBH0kgAEGAQWpBNUlyIABBp0FqIgJBBE1BAEEBIAJ0QRVxG3INASAAQcpAaiICQQlJQQBB/wIgAkH//wNxdkEBcRsNACAAQY5AakEDSSAAQaBAakENSXIgAUHQP0YgAEGqQGpBBklyciAAQb5AakEDSSAAQbpAakEHSXIgAEHxwABGIABBikBqQQdJcnJyIABB/8AARiAAQfC+f2pBDUlyIABBgsIARiAAQYfCAEZyciAAQZXCAEYg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BQAAAAAAAABSAAAAEwAAAA0AAAAJAAAA1gAAAAYAAAADAAAACAAAABwAAAABAAAAUwAAABAAAAAQAAAACQAAAFIAAAAMAAAACQAAAAkAAABUAAAADgAAAAUAAAAJAAAA8wAAAA4AAACmAAAACQAAAEcAAAAFAAAAAgAAAAEAAAADAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAANAAAACQAAAHgAAAAGAAAAAwAAAAYAAAAEAAAAAAAAAB0AAAAJAAAAKQAAAAYAAAACAAAAAwAAAAkAAAAAAAAACgAAAAoAAAAvAAAADwAAAJYBAAAHAAAAAgAAAAcAAAARAAAACQAAADkAAAAVAAAAAgAAAA0AAAB7AAAABQAAAAQAAAAAAAAAAgAAAAEAAAACAAAABgAAAAIAAAAAAAAACQAAAAkAAAAxAAAABAAAAAIAAAABAAAAAgAAAAQAAAAJAAAACQAAAEoBAAADAAAAaksAAAkAAACHAAAABAAAADwAAAAGAAAAGgAAAAkAAAD2AwAAAAAAAAIAAAA2AAAACAAAAAMAAABSAAAAAAAAAAwAAAABAAAArEwAAAEAAADHFAAABAAAAAQAAAAFAAAACQAAAAcAAAADAAAABgAAAB8AAAADAAAAlQAAAAIAAACKBQAAMQAAAAECAAA2AAAABQAAADEAAAAJAAAAAAAAAA8AAAAAAAAAFwAAAAQAAAACAAAADgAAAFEFAAAGAAAAAgAAABAAAAADAAAABgAAAAIAAAABAAAAAgAAAAQAAAAGAQAABgAAAAoAAAAJAAAAowEAAA0AAADXBQAABgAAAG4AAAAGAAAABgAAAAkAAACXEgAACQAAAAcFDADvAEGYHwsSMIwAAAEAAAACAAAAAAQAANAf","function"==typeof atob?Uint8Array.from(atob(Q),A=>A.charCodeAt(0)):Buffer.from(Q,"base64")));var Q;const{exports:E}=await WebAssembly.instantiate(A);B=E})())} | ||
"use strict";exports.parse=parse;exports.init=init;const A=new Set(["implements","interface","let","package","private","protected","public","static","yield","enum"]);let B,Q;function parse(Q,E="@"){if(!B)throw new Error("Not initialized");const g=(B.__heap_base.value||B.__heap_base)+4*Q.length-B.memory.buffer.byteLength;g>0&&B.memory.grow(Math.ceil(g/65536));const I=B.sa(Q.length);if(function(A,B){const Q=A.length;let E=0;for(;E<Q;)B[E]=A.charCodeAt(E++)}(Q,new Uint16Array(B.memory.buffer,I,Q.length+1)),!B.parseCJS(I,Q.length,0,0))throw Object.assign(new Error(`Parse error ${E}${B.e()}:${Q.slice(0,B.e()).split("\n").length}:${B.e()-Q.lastIndexOf("\n",B.e()-1)}`),{idx:B.e()});let C=new Set,w=new Set;for(;B.rre();)w.add(Q.slice(B.res(),B.ree()));for(;B.re();){let E=Q.slice(B.es(),B.ee());A.has(E)||C.add(E)}return{exports:[...C],reexports:[...w]}}function init(){return Q||(Q=(async()=>{const A=await WebAssembly.compile((Q="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ABAiQZygASgCACICQX5qIQVBKEcNAEGcoAEgAkECajYCABAiQeYARw0AQZygASgCACIAQQJqQfUAQe4AQeMAQfQAQekAQe8AQe4AEB5FDQBBnKABIABBEGo2AgAQIkEoRw0AQZygAUGcoAEoAgBBAmo2AgAQIkGcoAEoAgAhABAoRQ0AQZygASgCACEDECJBKUcNAEGcoAFBnKABKAIAQQJqNgIAECJB+wBHDQBBnKABQZygASgCAEECajYCABAiQekARw0AQZygASgCACICLwECQeYARw0AIAIvAQRBIEcNAEGcoAEgAkEGajYCABAiQShHDQBBnKABQZygASgCAEECajYCABAiGkGcoAEoAgAiASAAIAMgAGsiAhA6DQBBnKABIAEgAkEBdSIDQQF0ajYCAAJAAkAQIiIBQSFHBEAgAUE9Rw0DQZygASgCACIBLwECQT1HDQMgAS8BBEE9Rw0DQZygASABQQZqNgIAECIiAUEnR0EAIAFBIkcbDQNBnKABKAIAIgRBAmpB5ABB5QBB5gBB4QBB9QBB7ABB9AAQHkUNA0GcoAEgBEEQajYCABAiIAFHDQNBnKABQZygASgCAEECajYCABAiQfwARw0DQZygASgCACIBLwECQfwARw0DQZygASABQQRqNgIAECIaQZygASgCACIBIAAgAhA6DQNBnKABIAEgA0EBdGo2AgAQIkE9Rw0DQZygASgCACIBLwECQT1HDQMgAS8BBEE9Rw0DQZygASABQQZqNgIAECIiAUEnR0EAIAFBIkcbDQNBnKABKAIAIgRBAmoQLEUNA0GcoAEgBEEWajYCABAiIAFHDQNBnKABQZygASgCAEECajYCABAiQSlHDQNBnKABQZygASgCAEECajYCABAiQfIARw0DQZygASgCACIBQQJqQeUAQfQAQfUAQfIAQe4AEA5FDQNBnKABIAFBDGo2AgAQIkE7Rg0BDAILQZygASgCACIBLwECQT1HDQIgAS8BBEE9Rw0CQZygASABQQZqNgIAECIiAUEnR0EAIAFBIkcbDQJBnKABKAIAIgRBAmpB5ABB5QBB5gBB4QBB9QBB7ABB9AAQHkUNAkGcoAEgBEEQajYCABAiIAFHDQJBnKABQZygASgCAEECajYCABAiQSlHDQILQZygAUGcoAEoAgBBAmo2AgALIAdrIgZBAXUhBAJA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IABBklJqQQtJciAAQeBSakHLAEkgAEH/UmpBGklyciAAQZFTakERSSAAQf9XakHsBElyIABBiFhqQQZJIABB4FhqQdYASXJycnINACAAQXBxIgNBgCdGIABB6FlqQcMASXIgAEHuWWpBBEkgAEGoWmpBOUlyciAAQb5aakEESSAAQbhaakEPSXIgAEHXL0YgAEHcL0ZycnIgAEHgT2pB2QBJIABBgExqQRdJciAAQdBMakEaSSAAQYBNakEsSXJyIABBkE1qQQVJIABBsE1qQR5JciAAQYBOakEfSSAAQdBOakHGAElycnJyDQAgAEGqMUYgAEGAT2pBKUlyIABBu0lqQQdJIABB+0lqQS9JcnIgAEGnNUYgAEHgS2pBNUlyIABBl0ZqQQRJIABBw0ZqQQNJcnJyIABB8EZqQStJIABBgEdqQQlJciAAQaZHakEkSSAAQbNHakEDSXJyIABBgEhqQSRJIABBxkhqQSxJciAEQa83RiAAQf1IakEeSXJycnINASAAQZJGaiIFQQlJQQBBjwMgBUH//wNxdkEBcRsNACACQdA+RiAAQbhBakEGSXIgAEHgQWpBJkkgAEHoQWpBBklyciAAQYBGakHAAUkgAEGARGpBlgJJcnINASAAQaFBakEfSSAAQYBBakE1SXIgAEGnQWoiAkEETUEAQQEgAnRBFXEbcg0BIABBykBqIgJBCUlBAEH/AiACQf//A3F2QQFxGw0AIABBjkBqQQNJIABBoEBqQQ1JciABQdA/RiAAQapAakEGSXJyIABBvkBqQQNJIABBukBqQQdJciAAQfHAAEYgAEGKQGpBB0lycnIgAEH/wABGIABB8L5/akENSXIgAEGCwgBGIABBh8IARnJyIABBlcIARiAAQfa9f2pBCklycnINASAAQei9f2oiAkERSUEAQb+gBSACdkEBcRsNACABQbzCAEYgAEHWvX9qQRBJcg0BIABBu71/aiICQQpJQQBBnwQgAkH//wNxdkEBcRsNACAAQaCnf2pBhQFJIABB0Kd/akEvSXIgAEGgvX9qQSlJIABBgKh/akEvSXJyDQEgAEGVpn9qIgJBCUlBAEGPAyACQf//A3F2QQFxGw0AIABBp9oARiAAQYCmf2pBJklyIABBrdoARiAAQYC2fWpBjQJJcnIgAEGwtn1qQS5JIABBgMB9akGNCUlyIABBgOR+akHwowFJIABBgJh/akG2M0lycnIgA0Hw4wBGIABB4Jx/akEbSXIgAEHPnX9qQd4ASSAAQfudf2pBK0lyciABQfzhAEYgAEHfnn9qQdoASXIgAEHlnn9qQQVJIABBv59/akHWAElycnJyIABByJ9/akEFSSAAQc+ff2pBBUlyIABB359/akEJSSAAQfuff2pBA0lyciAAQaikf2pBB0kgAEGwpH9qQQdJciAAQbikf2pBB0kgAEHApH9qQQdJcnJyIABByKR/akEHSSAAQdCkf2pBB0lyIABB2KR/akEHSSAAQeCkf2pBB0lyciAAQe/aAEYgAEGApX9qQRdJciAAQdClf2pBOEkgAEH+rn1qQTJJcnJycnIgAEHAr31qQTRJIABB9K99akEXSXIgAEH5r31qQQRJIABB/a99akEDSXJyIABBibB9akELSSAAQfWwfWpBL0lyIABB3rF9akHnAEkgAEHpsX1qQQlJcnJyIABB4LJ9akHQAEkgAEGBs31qQR9JciAEQavMAkYgAEHAs31qQS9JcnIgA0GQzAJGcnJyDQEgAEGOrn1qIgFBDUlBAEG/NCABQf//A3F2QQFxGw0AIABBoK19akEdSSAAQfatfWpBHElyIABB0K19akEXSSAAQbyrfWpBCElyciAAQcCrfWpBA0kgAEGArH1qQSlJciAAQYasfWpBBUkgAEGarH1qQQpJcnJyIABBz9MCRiAAQaCsfWpBBUlyIABB/Kx9akEvSSAAQYKrfWpBMklyciAAQfrUAkYgAEGgq31qQRdJcnJyDQEgAEHPqn1qIgFBEklBAEGxvgogAXZBAXEbDQAgAEGAinxqQQdJIABBkIt8akHqAElyIABBgI58akHuAkkgAEG10HxqQTFJcnIgAEHQ0HxqQRdJIABBgKh9akGk1wBJciAAQZCpfWpB8wBJIABBpKl9akEKSXJyciAAQdCpfWpBK0kgAEHYqX1qQQdJciAAQeCpfWpBB0kgAEHvqX1qQQZJcnIgAEF3cUH/qX1qQQZJIABBjqp9akEDSXIgAEGlqn1qQQNJIABBoKp9akELSXJycnINASAAQe2JfGoiAUELSUEAQZ8IIAFB//8DcXZBAXEbDQAgAEHhiXxqQQpJIABB1ol8akENSXINASAAQciJfGoiAUENSUEAQd82IAFB//8DcXZBAXEbDQAg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","function"==typeof atob?Uint8Array.from(atob(Q),A=>A.charCodeAt(0)):Buffer.from(Q,"base64")));var Q;const{exports:E}=await WebAssembly.instantiate(A);B=E})())} |
61
lexer.js
@@ -79,2 +79,31 @@ let source, pos, end; | ||
if (openTokenDepth === 0) { | ||
switch (ch) { | ||
case 105/*i*/: | ||
if (source.slice(pos + 1, pos + 6) === 'mport' && keywordStart(pos)) | ||
throwIfImportStatement(); | ||
lastTokenPos = pos; | ||
continue; | ||
case 114/*r*/: | ||
const startPos = pos; | ||
if (tryParseRequire(false) && keywordStart(startPos)) | ||
tryBacktrackAddStarExportBinding(startPos - 1); | ||
lastTokenPos = pos; | ||
continue; | ||
case 95/*_*/: | ||
if (source.slice(pos + 1, pos + 8) === '_export' && (keywordStart(pos) || source.charCodeAt(pos - 1) === 46/*.*/)) { | ||
pos += 8; | ||
if (source.slice(pos, pos + 4) === 'Star') | ||
pos += 4; | ||
if (source.charCodeAt(pos) === 40/*(*/) { | ||
openTokenPosStack[openTokenDepth++] = lastTokenPos; | ||
if (source.charCodeAt(++pos) === 114/*r*/) | ||
tryParseRequire(true); | ||
} | ||
} | ||
lastTokenPos = pos; | ||
continue; | ||
} | ||
} | ||
switch (ch) { | ||
@@ -89,6 +118,2 @@ case 101/*e*/: | ||
break; | ||
case 105/*i*/: | ||
if (source.slice(pos + 1, pos + 6) === 'mport' && keywordStart(pos)) | ||
throwIfImportStatement(); | ||
break; | ||
case 99/*c*/: | ||
@@ -104,22 +129,4 @@ if (keywordStart(pos) && source.slice(pos + 1, pos + 5) === 'lass' && isBrOrWs(source.charCodeAt(pos + 5))) | ||
if (source.slice(pos + 1, pos + 6) === 'bject' && keywordStart(pos)) | ||
tryParseObjectDefineOrKeys(); | ||
tryParseObjectDefineOrKeys(openTokenDepth === 0); | ||
break; | ||
case 114/*r*/: { | ||
const startPos = pos; | ||
if (openTokenDepth === 0 && tryParseRequire(false) && keywordStart(startPos)) | ||
tryBacktrackAddStarExportBinding(startPos - 1); | ||
break; | ||
} | ||
case 95/*_*/: | ||
if (openTokenDepth === 0 && source.slice(pos + 1, pos + 8) === '_export' && (keywordStart(pos) || source.charCodeAt(pos - 1) === 46/*.*/)) { | ||
pos += 8; | ||
if (source.slice(pos, pos + 4) === 'Star') | ||
pos += 4; | ||
if (source.charCodeAt(pos) === 40/*(*/) { | ||
openTokenPosStack[openTokenDepth++] = lastTokenPos; | ||
if (source.charCodeAt(++pos) === 114/*r*/) | ||
tryParseRequire(true); | ||
} | ||
} | ||
break; | ||
case 40/*(*/: | ||
@@ -246,3 +253,3 @@ openTokenPosStack[openTokenDepth++] = lastTokenPos; | ||
function tryParseObjectDefineOrKeys () { | ||
function tryParseObjectDefineOrKeys (keys) { | ||
pos += 6; | ||
@@ -279,3 +286,3 @@ let revertPos = pos - 1; | ||
} | ||
else if (ch === 107/*k*/ && source.slice(pos + 1, pos + 4) === 'eys') { | ||
else if (keys && ch === 107/*k*/ && source.slice(pos + 1, pos + 4) === 'eys') { | ||
while (true) { | ||
@@ -949,3 +956,3 @@ pos += 4; | ||
// Detects one of case, debugger, delete, do, else, in, instanceof, new, | ||
// return, throw, typeof, void, yield ,await | ||
// return, throw, typeof, void, yield, await | ||
function isExpressionKeyword (pos) { | ||
@@ -1046,3 +1053,3 @@ switch (source.charCodeAt(pos)) { | ||
// detects: | ||
// > ; ) -1 finally catch | ||
// => ; ) finally catch else | ||
// as all of these followed by a { will indicate a statement brace | ||
@@ -1049,0 +1056,0 @@ switch (source.charCodeAt(curPos)) { |
{ | ||
"name": "cjs-module-lexer", | ||
"version": "0.3.0", | ||
"version": "0.3.1", | ||
"description": "Lexes CommonJS modules, returning their named exports metadata", | ||
@@ -5,0 +5,0 @@ "main": "lexer.js", |
210
README.md
@@ -7,5 +7,5 @@ # CJS Module Lexer | ||
Outputs the list of named exports (`exports.name = ...`), whether the `__esModule` interop flag is used, and possible module reexports (`module.exports = require('...')`). | ||
Outputs the list of named exports (`exports.name = ...`) and possible module reexports (`module.exports = require('...')`), including the common transpiler variations of these cases. | ||
For an example of the performance, Angular 1 (720KiB) is fully parsed in 5ms, in comparison to the fastest JS parser, Acorn which takes over 100ms. | ||
Forked from https://github.com/guybedford/es-module-lexer. | ||
@@ -58,3 +58,3 @@ _Comprehensively handles the JS language grammar while remaining small and fast. - ~90ms per MB of JS cold and ~15ms per MB of JS warm, [see benchmarks](#benchmarks) for more info._ | ||
The Wasm build is around 1.5x faster. | ||
The Wasm build is around 1.5x faster and without a cold start. | ||
@@ -114,91 +114,122 @@ ### Grammar | ||
* The returned export names are the matched `IDENTIFIER` and `IDENTIFIER_STRING` slots for all `EXPORTS_MEMBER`, `EXPORTS_DEFINE` and `EXPORTS_LITERAL` matches. | ||
* The reexport specifiers are taken to be the `STRING_LITERAL` slots of all top-level `MODULE_EXPORTS_ASSIGN` and `EXPORT_STAR` `REQUIRE` matches as well as all `EXPORTS_ASSIGN` matches whose `IDENTIFIER` also matches the first `IDENTIFIER` in `EXPORT_STAR_LIB` | ||
* The reexport specifiers are taken to be the `STRING_LITERAL` slots of all `MODULE_EXPORTS_ASSIGN` as well as all _top-level_ `EXPORT_STAR` `REQUIRE` matches and `EXPORTS_ASSIGN` matches whose `IDENTIFIER` also matches the first `IDENTIFIER` in `EXPORT_STAR_LIB`. | ||
### Not Supported | ||
### Parsing Examples | ||
#### No scope analysis: | ||
#### Named Exports Parsing | ||
The basic matching rules for named exports are `exports.name`, `exports['name']` or `Object.defineProperty(exports, 'name', ...)`. This matching is done without scope analysis and regardless of the expression position: | ||
```js | ||
// "a" WILL be detected as an export | ||
// DETECTS EXPORTS: a, b, c | ||
(function (exports) { | ||
exports.a = 'a'; | ||
})(notExports); | ||
// "b" WONT be detected as an export | ||
(function (m) { | ||
m.a = 'a'; | ||
exports['b'] = 'b'; | ||
Object.defineProperty(exports, 'c', { value: 'c' }); | ||
})(exports); | ||
``` | ||
#### `module.exports` require assignment only handled at the base-level | ||
Because there is no scope analysis, the above detection may overclassify: | ||
```js | ||
// OK | ||
module.exports = require('./a.js'); | ||
// DETECTS EXPORTS: a, b, c | ||
(function (exports, Object) { | ||
exports.a = 'a'; | ||
exports['b'] = 'b'; | ||
if (false) | ||
Object.defineProperty(exports, 'c', { value: 'c' }); | ||
})(NOT_EXPORTS, NOT_OBJECT); | ||
``` | ||
// OK | ||
if (condition) | ||
module.exports = require('./b.js'); | ||
It will in turn underclassify in cases where the identifiers are renamed: | ||
// NOT OK -> nested top-level detections not implemented | ||
if (condition) { | ||
module.exports = require('./c.js'); | ||
} | ||
(function () { | ||
module.exports = require('./d.js'); | ||
})(); | ||
```js | ||
// DETECTS: NO EXPORTS | ||
(function (e, defineProperty) { | ||
e.a = 'a'; | ||
e['b'] = 'b'; | ||
defineProperty(e, 'c', { value: 'c' }); | ||
})(exports, defineProperty); | ||
``` | ||
#### No object expression parsing | ||
#### Exports Object Assignment | ||
A best-effort is made to detect `module.exports` object assignments, but because this is not a full parser, arbitrary expressions are not handled in the | ||
object parsing process. | ||
Simple object definitions are supported: | ||
```js | ||
// These WONT be detected as exports | ||
Object.defineProperties(exports, { | ||
a: { value: 'a' }, | ||
b: { value: 'b' } | ||
}); | ||
// DETECTS EXPORTS: a, b, c | ||
module.exports = { | ||
a, | ||
b: 'c', | ||
c: c | ||
}; | ||
``` | ||
Object properties that are not identifiers or string expressions will bail out of the object detection: | ||
```js | ||
// DETECTS EXPORTS: a, b | ||
module.exports = { | ||
// These WILL be detected as exports | ||
a: a, | ||
b: b, | ||
// This WILL be detected as an export | ||
e: require('d'), | ||
// These WONT be detected as exports | ||
// because the object parser stops on the non-identifier | ||
// expression "require('d')" | ||
f: 'f' | ||
a, | ||
b: require('c'), | ||
c: "not detected since require('c') above bails the object detection" | ||
} | ||
``` | ||
#### Only specific transpiler-style star export patterns match | ||
`Object.defineProperties` is not currently supported either. | ||
#### module.exports reexport assignment | ||
Any `module.exports = require('mod')` assignment is detected as a reexport: | ||
```js | ||
// './x' detected as star export | ||
var x = require('./x'); | ||
Object.keys(x).forEach(function (k) { | ||
if (k !== 'default') Object.defineProperty(exports, k, { | ||
enumerable: true, | ||
get: function () { | ||
return x[k]; | ||
} | ||
}); | ||
}); | ||
// DETECTS REEXPORTS: a, b, c | ||
module.exports = require('a'); | ||
(module => module.exports = require('b'))(NOT_MODULE); | ||
if (false) module.exports = require('c'); | ||
``` | ||
// './y' detected as star export | ||
let y = require('./y'); | ||
Object.keys(y).forEach(function (kk) { | ||
if (kk !== 'default') exports[kk] = y[kk]; | ||
As a result, the total list of exports would be inferred as the union of all of these reexported modules, which can lead to possible over-classification. | ||
#### Transpiler Re-exports | ||
For named exports, transpiler output works well with the rules described above. | ||
But for star re-exports, special care is taken to support common patterns of transpiler outputs from Babel and TypeScript as well as bundlers like RollupJS. | ||
These reexport and star reexport patterns are restricted to only be detected at the top-level as provided by the direct output of these tools. | ||
For example, `export * from 'external'` is output by Babel as: | ||
```js | ||
"use strict"; | ||
exports.__esModule = true; | ||
var _external = require("external"); | ||
Object.keys(_external).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
exports[key] = _external[key]; | ||
}); | ||
``` | ||
// './z' NOT detected as star export | ||
let z = require('./z'); | ||
for (const key of Object.keys(x)) { | ||
exports[key] = x[key]; | ||
Where the `var _external = require("external")` is specifically detected as well as the `Object.keys(_external)` statement, down to the exact | ||
for of that entire expression including minor variations of the output. The `_external` and `key` identifiers are carefully matched in this | ||
detection. | ||
Similarly for TypeScript, `export * from 'external'` is output as: | ||
```js | ||
"use strict"; | ||
function __export(m) { | ||
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; | ||
} | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
__export(require("external")); | ||
``` | ||
These patterns can be updated over time to match modern transpiler outputs. | ||
Where the `__export(require("external"))` statement is explicitly detected as a reexport, including variations `tslib.__export` and `__exportStar`. | ||
@@ -209,3 +240,3 @@ ### Environment Support | ||
### Grammar Support | ||
### JS Grammar Support | ||
@@ -222,2 +253,4 @@ * Token state parses all line comments, block comments, strings, template strings, blocks, parens and punctuators. | ||
JS Build: | ||
``` | ||
@@ -228,29 +261,60 @@ Module load time | ||
test/samples/*.js (3635 KiB) | ||
> 318ms | ||
> 333ms | ||
Warm Runs (average of 25 runs) | ||
test/samples/angular.js (1410 KiB) | ||
> 18.64ms | ||
> 16.48ms | ||
test/samples/angular.min.js (303 KiB) | ||
> 5.96ms | ||
> 5.36ms | ||
test/samples/d3.js (553 KiB) | ||
> 8.88ms | ||
> 8.32ms | ||
test/samples/d3.min.js (250 KiB) | ||
> 4.88ms | ||
> 4.28ms | ||
test/samples/magic-string.js (34 KiB) | ||
> 1ms | ||
test/samples/magic-string.min.js (20 KiB) | ||
> 0.32ms | ||
> 0.36ms | ||
test/samples/rollup.js (698 KiB) | ||
> 11.68ms | ||
> 10.48ms | ||
test/samples/rollup.min.js (367 KiB) | ||
> 7.84ms | ||
> 6.64ms | ||
Warm Runs, All Samples (average of 25 runs) | ||
test/samples/*.js (3635 KiB) | ||
> 54.48ms | ||
> 49.28ms | ||
``` | ||
### Wasm Build | ||
Wasm Build: | ||
``` | ||
Module load time | ||
> 11ms | ||
Cold Run, All Samples | ||
test/samples/*.js (3635 KiB) | ||
> 48ms | ||
Warm Runs (average of 25 runs) | ||
test/samples/angular.js (1410 KiB) | ||
> 12.32ms | ||
test/samples/angular.min.js (303 KiB) | ||
> 3.76ms | ||
test/samples/d3.js (553 KiB) | ||
> 6.08ms | ||
test/samples/d3.min.js (250 KiB) | ||
> 3ms | ||
test/samples/magic-string.js (34 KiB) | ||
> 0.24ms | ||
test/samples/magic-string.min.js (20 KiB) | ||
> 0ms | ||
test/samples/rollup.js (698 KiB) | ||
> 7.2ms | ||
test/samples/rollup.min.js (367 KiB) | ||
> 4.2ms | ||
Warm Runs, All Samples (average of 25 runs) | ||
test/samples/*.js (3635 KiB) | ||
> 33.6ms | ||
``` | ||
### Wasm Build Steps | ||
To build download the WASI SDK from https://github.com/CraneStation/wasi-sdk/releases. | ||
@@ -257,0 +321,0 @@ |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
99113
1010
332
0