es-module-lexer
Advanced tools
Comparing version 0.3.5 to 0.3.6
@@ -0,1 +1,4 @@ | ||
0.3.6 | ||
* Fix case where methods named import would be incorrectly reported as dynamic imports (https://github.com/guybedford/es-module-lexer/pull/19) | ||
0.3.5 | ||
@@ -2,0 +5,0 @@ * Fix Node.js 10 memory grow support for globals without a value getter (https://github.com/guybedford/es-module-lexer/issues/14) |
@@ -1,2 +0,2 @@ | ||
/* es-module-lexer 0.3.5 */ | ||
export function parse(A){if(!B)return init.then(()=>parse(A));const Q=2*A.length-(B.memory.buffer.byteLength-(B.__heap_base.value||B.__heap_base));Q>0&&B.memory.grow(Math.ceil(Q/1024/64));const C=new Uint16Array(B.memory.buffer,B.salloc(A.length),A.length+1);if(function(A,Q){const B=A.length;for(let C=0;C<B;C++)Q[C]=A.charCodeAt(C)}(A,C),!B.parse()){const A=B.e(),Q=new Error(`Parse error at ${A}.`);throw Q.loc=A,Q}const E=[],I=[];for(;B.ri();)E.push({s:B.is(),e:B.ie(),d:B.id()});for(;B.re();)I.push(A.slice(B.es(),B.ee()));return[E,I]}const A="AGFzbQEAAAABXQ1gAABgAX8Bf2AFf39/f38AYAJ/fwBgAAF/YAN/f38Bf2ACf38Bf2AIf39/f39/f38Bf2AHf39/f39/fwF/YAZ/f39/f38Bf2AFf39/f38Bf2AEf39/fwF/YAF/AAMsKwABAgMEBAQEBAQEBAEAAAAAAAAAAQEBAQAABQYHCAkKCwQMCAEBAQEECQcEBQFwAQEBBQMBAAEGFQN/AUHgyAALfwBB4MgAC38AQdQICwddDQZtZW1vcnkCAAtfX2hlYXBfYmFzZQMBCl9fZGF0YV9lbmQDAgZzYWxsb2MAAQFlAAQCaXMABQJpZQAGAmlkAAcCZXMACAJlZQAJAnJpAAoCcmUACwVwYXJzZQAMCqArKwIAC18BAX9BACAANgKsCEEAQQAoAogIIgEgAEEBdGpBAmoiADYCsAhBACAANgK0CEEAQQA2AowIQQBBADYCnAhBAEEANgKUCEEAQQA2ApAIQQBBADYCpAhBAEEANgKYCCABC2UBAn9BACgCnAgiBUEUakGMCCAFG0EAKAK0CCIGNgIAQQAgBjYCnAhBACAFNgKgCCAGIAM2AgwgBiABNgIEIAYgADYCAEEAIAZBGGo2ArQIIAZBADYCFCAGIAQ2AhAgBiACNgIIC0gBAX9BACgCpAgiAkEIakGQCCACG0EAKAK0CCICNgIAQQAgAjYCpAggAiABNgIEIAIgADYCAEEAIAJBDGo2ArQIIAJBADYCCAsIAEEAKAK4CAsLAEEAKAKUCCgCAAsLAEEAKAKUCCgCBAsLAEEAKAKUCCgCDAsLAEEAKAKYCCgCAAsLAEEAKAKYCCgCBAslAQF/QQBBACgClAgiAEEUakGMCCAAGygCACIANgKUCCAAQQBHCyUBAX9BAEEAKAKYCCIAQQhqQZAIIAAbKAIAIgA2ApgIIABBAEcLoQcBBn8jAEGAKGsiASQAQQBB/wE6AL4IQQBBACgChAgiAjYCwAhBACACNgLECEEAQQAoAogIQX5qIgI2AtAIQQBBADoAvQhBAEEAOgC8CEEAQQA6AL8IQQBBADYCuAhBAEEAOgCoCEEAIAFBgCBqNgLICEEAIAE2AswIIAJBACgCrAhBAXRqIQMDf0EAIAJBAmoiBDYC0AgCQAJAAkACQAJAAkAgAiADTw0AIAQvAQAiBUEgRg0FAkACQCAFQekARg0AIAVB5QBHDQECQEEALQC/CA0AEA1BACgC0AghBAtBACAENgLACAwHCxAOQQBBACgC0Ag2AsAIDAYLIAVBd2pB//8DcUEFSQ0FAkACQAJAAkACQAJAIAVBWWoiBkEITQ0AIAVBIkYNAQJAIAVB4ABGDQAgBUH7AEYNAyAFQf0ARw0LQQBBAC0AvwgiAkF/aiIFOgC/CCACQQAsAL4IIgRB/wFxRw0EQQBBAC0AvAhBf2oiAjoAvAhBAEEAKALICCACQRh0QRh1ai0AADoAvggLEA8MCgsCQAJAAkACQCAGDgkAAQINDQ0NDQMACxAQDAwLQQBBACwAvQgiAkEBajoAvQhBACgCzAggAkECdGpBACgCwAg2AgAMCwtBAC0AvQgiAkUNB0EAIAJBf2oiAjoAvQhBAEEAKALMCCACQRh0QRh1QQJ0aigCACIFNgLECEEAKAKcCCICRQ0KIAIoAhAgBUcNCiACIAQ2AgggAiAEQQAoAogIa0EBdTYCBAwKCyACLwEEIgJBKkYNAyACQS9HDQQQEQwKCxASDAgLAkBBACgCnAgiAkUNACACKAIIQQAoAsAIRw0AQQBBACgCoAgiAjYCnAggAkEANgIUC0EAQQAtAL8IQQFqOgC/CEEAQQAsAL0IIgJBAWo6AL0IQQAoAswIIAJBAnRqQQAoAsAINgIADAcLIAVBGHRBGHUgBEgNA0EALQC9CCICRQ0DQQAgAkF/aiICOgC9CEEAQQAoAswIIAJBGHRBGHVBAnRqKAIANgLECAwGCxATDAYLQQAoAsAIIgIvAQAiBUUNAyACEBQNAyAFEBUNAwJAIAVB/QBGDQAgBUEpRw0FQQAoAsQIEBYNBAwFC0EAKALECBAXDQMMBAtBAC0AvghB/wFGQQAtAKgIQQAtAL0IckVxIQIMAQsQGEEAIQILIAFBgChqJAAgAg8LEBkLQQBBACgC0Ag2AsAIC0EAKALQCCECDAALC/cGAQV/AkBBACgC0AgiAEEKakHlAEH4AEHwAEHvAEHyAEH0ABAdRQ0AQQAgAEEMaiIBNgLQCBAhIQACQEEAKALQCCICIAFHDQAgABAlRQ0BCwJAAkACQAJAAkACQAJAIABBn39qIgFBC0sNAAJAAkAgAQ4MAAkDBAkBCQkJCQkGAAtBACACQQpqNgLQCBAhGkEAKALQCCECC0EAIAJBEGo2AtAIAkAQISIAQSpHDQBBAEEAKALQCEECajYC0AgQISEAC0EAKAKICCECQQAoAtAIIQEgABAmGiABIAJrQQF1QQAoAtAIQQAoAogIa0EBdRADQQBBACgC0AhBfmo2AtAIDwsgAEEqRg0FIABB9gBGDQMgAEH7AEcNBkEAIAJBAmo2AtAIECEhAANAQQAoAogIIQJBACgC0AghASAAQf//A3EQJhpBACgCiAghA0EAKALQCCEEAkACQBAhIgBB4QBHDQBBAEEAKALQCEEEajYC0AgQISEAQQAoAogIIQJBACgC0AghASAAECYaIAEgAmshAkEAKALQCEEAKAKICGshARAhIQAMAQsgASACayECIAQgA2shAQsgAkEBdSECIAFBAXUhAQJAIABBLEcNAEEAQQAoAtAIQQJqNgLQCBAhIQALIAIgARADIABB/QBGDQUgAA0ACxAYDwsgAi8BAkHsAEcNASACLwEEQeEARw0BIAIvAQZB8wBHDQEgAi8BCEHzAEcNASACLwEKECdFDQFBACACQQpqNgLQCBAhIQBBACgCiAghAkEAKALQCCEBIAAQJhogASACa0EBdUEAKALQCEEAKAKICGtBAXUQA0EAQQAoAtAIQX5qNgLQCA8LIAJBACgCiAhrQQF1IgAgAEEHahADDwtBACACQQRqIgI2AtAIC0EAIAJBBmo2AtAIAkADQBAhIQBBACgCiAghAkEAKALQCCEBIAAQJiIAQSByQfsARg0BQQAoAtAIQQAoAogIa0EBdSIDIAEgAmtBAXUiAkYNBCACIAMQA0EAQQAoAtAIQQJqNgLQCCAAQSxGDQAMBAsLQQBBACgC0AhBfmo2AtAIDwtBACgC0AghAgtBACACQQJqNgLQCBAhQeYARw0AQQAoAtAIIgAvAQJB8gBHDQAgAC8BBEHvAEcNACAALwEGQe0ARw0AQQAgAEEIajYC0AgQIRAiCwuaAwEFfwJAQQAoAtAIIgBBCmpB6QBB7QBB8ABB7wBB8gBB9AAQHUUNAEEAIABBDGoiATYC0AhBACgCiAghAgJAAkACQAJAAkAQISIDQVlqIgRBB0sNACAAIAJrQQF1IQICQCAEDggDAAIDAgICBAMLQQAoAswIQQAsAL0IIgRBAnRqIAA2AgBBACAEQQFqOgC9CEEAKALACC8BAEEuRg0FQQAoAtAIQQAoAogIa0EBdUEBakEAQQAgAiAAEAIPCyADQSJGDQEgA0H7AEYNAQtBACgC0AggAUYNAwtBACgC0AghAAJAQQAtAL0IRQ0AQQAgAEF+ajYC0AgPCwNAIAAvAQAiAkUNAgJAIAJBJ0YNACACQSJGDQBBACAAQQJqIgA2AtAIDAELCyACECIPC0EAQQAoAtAIQQJqNgLQCBAhQe0ARw0BQQAoAtAIIgAvAQJB5QBHDQEgAC8BBEH0AEcNASAALwEGQeEARw0BQQAoAsAILwEAQS5GDQEgAiAAQQAoAogIa0EBdUEEaiAAQQhqQX5BABACDwsQGAsLxgEBA39BACgC0AghAAJAAkACQANAAkACQCAALwECIgJBJEcNACAAQQRqIQEgAC8BBCICQfsARg0EIAEhAAwBCyAAQQJqIQAgAkUNAgsCQCACQdwARg0AIAJB4ABHDQEMBAsgAEECaiEADAALC0EAIAA2AtAIEBgPC0EAIAE2AtAIQQBBACwAvAgiAEEBajoAvAggAEEAKALICGpBAC0Avgg6AABBAEEALQC/CEEBaiIAOgC+CEEAIAA6AL8IDwtBACAANgLQCAtfAQJ/QQAoAtAIIQACQANAAkAgAC8BAiIBQdwARw0AIABBBGohAAwBCyAAQQJqIQAgAUUNASABQQpGDQEgAUENRg0BIAFBJ0cNAAtBACAANgLQCA8LQQAgADYC0AgQGAs5AQJ/QQAoAtAIIQADQCAALwECIQEgAEECaiEAIAFBDUsNAEEBIAF0QYHIAHFFDQALQQAgADYC0AgLXwECf0EAKALQCCEAAkADQAJAIAAvAQIiAUHcAEcNACAAQQRqIQAMAQsgAEECaiEAIAFFDQEgAUEKRg0BIAFBDUYNASABQSJHDQALQQAgADYC0AgPC0EAIAA2AtAIEBgLVAECf0EAQQAoAtAIIgBBBGo2AtAIIABBBmohAAJAA0AgAEF+ai8BACIBRQ0BQQAgADYC0AgCQCABQSpHDQAgAC8BAEEvRg0CCyAAQQJqIQAMAAsLC+EDAQJ/QQAhAQJAAkACQAJAIAAvAQBBnH9qIgJBE0sNAAJAAkACQAJAAkACQAJAAkACQAJAIAIOFAABAwoKCgoKCgoEBQoKAgoGCgoHAAsgAEF+ai8BACICQewARg0KIAJB6QBHDQkgAEF8akH2AEHvABAaDwsgAEF+ai8BACICQfQARg0GIAJB8wBHDQggAEF8ai8BACICQeEARg0KIAJB7ABHDQggAEF6akHlABAbDwsgAEF+akHkAEHlAEHiAEH1AEHnAEHnAEHlABAcDwsgAEF+ai8BAEHvAEcNBiAAQXxqLwEAQeUARw0GIABBemovAQAiAkHwAEYNCSACQeMARw0GIABBeGpB6QBB7gBB8wBB9ABB4QBB7gAQHQ8LQQEhASAAQX5qIgBB6QAQGw0FIABB8gBB5QBB9ABB9QBB8gAQHg8LIABBfmpB5AAQGw8LIABBfmpB4QBB9wBB4QBB6QAQHw8LIABBfmovAQAiAkHvAEYNASACQeUARw0CIABBfGpB7gAQGw8LIABBfGpB5ABB5QBB7ABB5QAQHw8LIABBfGpB9ABB6ABB8gAQICEBCyABDwsgAEF8akH5AEHpAEHlABAgDwsgAEF6akHjABAbDwsgAEF4akH0AEH5ABAaC2wBAX8CQAJAIABBX2oiAUEFSw0AQQEgAXRBMXENAQsgAEFGakH//wNxQQZJDQAgAEFYakH//wNxQQdJIABBKUdxDQAgAEHbAEYNACAAQd4ARg0AIABB/QBHIABBhX9qQf//A3FBBElxDwtBAQs9AQF/QQEhAQJAIABB9wBB6ABB6QBB7ABB5QAQHg0AIABB5gBB7wBB8gAQIA0AIABB6QBB5gAQGiEBCyABC0kBAn9BASEBAkAgAC8BACICQSlGDQAgAkE7Rg0AAkAgAkH5AEcNACAAQX5qQeYAQekAQe4AQeEAQewAQewAEB0PC0EAIQELIAELNwECf0EAQQE6AKgIQQAoAtAIIQBBAEEAKAKICCIBQQAoAqwIajYC0AhBACAAIAFrQQF1NgK4CAtsAQJ/AkADQEEAQQAoAtAIIgFBAmo2AtAIAkAgAS8BAiIAQdsARw0AECgaDAELAkAgAEHcAEcNAEEAIAFBBGo2AtAIDAELAkACQCAAQQ1LDQBBASAAdEGByABxDQELIABBL0cNAQwCCwsQGAsLTAEDf0EAIQMCQAJAIABBfmoiBEEAKAKICCIFSQ0AIAQvAQAgAUcNACAALwEAIAJHDQAgBCAFRg0BIABBfGovAQAQJCEDCyADDwtBAQs9AQJ/QQAhAgJAAkBBACgCiAgiAyAASw0AIAAvAQAgAUcNACADIABGDQEgAEF+ai8BABAkIQILIAIPC0EBC00BA39BACEIAkACQCAAQXRqIglBACgCiAgiCkkNACAJIAEgAiADIAQgBSAGIAcQKkUNACAJIApGDQEgAEFyai8BABAkIQgLIAgPC0EBC0sBA39BACEHAkACQCAAQXZqIghBACgCiAgiCUkNACAIIAEgAiADIAQgBSAGECNFDQAgCCAJRg0BIABBdGovAQAQJCEHCyAHDwtBAQtJAQN/QQAhBgJAAkAgAEF4aiIHQQAoAogIIghJDQAgByABIAIgAyAEIAUQKUUNACAHIAhGDQEgAEF2ai8BABAkIQYLIAYPC0EBC2YBA39BACEFAkACQCAAQXpqIgZBACgCiAgiB0kNACAGLwEAIAFHDQAgAEF8ai8BACACRw0AIABBfmovAQAgA0cNACAALwEAIARHDQAgBiAHRg0BIABBeGovAQAQJCEFCyAFDwtBAQtZAQN/QQAhBAJAAkAgAEF8aiIFQQAoAogIIgZJDQAgBS8BACABRw0AIABBfmovAQAgAkcNACAALwEAIANHDQAgBSAGRg0BIABBemovAQAQJCEECyAEDwtBAQtmAQJ/QQAoAtAIIQADfwJAIAAvAQAiAUF3akEFSQ0AIAFBIEYNAAJAIAFBL0cNAAJAIAAvAQIiAEEqRg0AIABBL0cNARARDAILEBMMAQsgAQ8LQQBBACgC0AhBAmoiADYC0AgMAAsLnAEBAX8CQAJAIABBIkYNACAAQSdHDQFBAEEAKALQCCIAQQJqNgLQCEEAKAKICCEBEBAgACABa0EBdUEBakEAKALQCCIAQQAoAogIa0EBdSAAQX9BABACDwtBAEEAKALQCCIAQQJqNgLQCEEAKAKICCEBEBIgACABa0EBdUEBakEAKALQCCIAQQAoAogIa0EBdSAAQX9BABACDwsQGAtJAQF/QQAhBwJAIAAvAQAgAUcNACAALwECIAJHDQAgAC8BBCADRw0AIAAvAQYgBEcNACAALwEIIAVHDQAgAC8BCiAGRiEHCyAHCzUBAX8CQAJAIABBd2pB//8DcSIBQRhPDQBBn4CABCABdkEBcQ0BCyAAQS5HIAAQJXEPC0EBC2MBAX8CQAJAIABBX2oiAUEFSw0AQQEgAXRBMXENAQsgAEH4/wNxQShGDQAgAEFGakH//wNxQQZJDQACQCAAQaV/aiIBQQNLDQAgAUEBRw0BCyAAQYV/akH//wNxQQRJDwtBAQtlAQJ/AkACQANAAkAgAEH//wNxIgFBd2oiAkEXSw0AQQEgAnRBn4CABHENAgsgACECIAEQJQ0CQQAhAkEAQQAoAtAIIgBBAmo2AtAIIAAvAQIiAA0ADAILCyAAIQILIAJB//8DcQsvAQF/AkACQCAAQXdqQf//A3EiAUEYTw0AQZ+AgAQgAXZBAXENAQsgABAlDwtBAQtsAQJ/QQAoAtAIIQACQANAAkAgAC8BAiIBQdwARw0AIABBBGohAAwBCyAAQQJqIQACQAJAIAFBDUsNAEEBIAF0QYHIAHENAQsgAUHdAEcNAQwCCwtBACAANgLQCBAYIAEPC0EAIAA2AtAIIAELPwEBf0EAIQYCQCAALwEAIAFHDQAgAC8BAiACRw0AIAAvAQQgA0cNACAALwEGIARHDQAgAC8BCCAFRiEGCyAGC1MBAX9BACEIAkAgAC8BACABRw0AIAAvAQIgAkcNACAALwEEIANHDQAgAC8BBiAERw0AIAAvAQggBUcNACAALwEKIAZHDQAgAC8BDCAHRiEICyAICwtlAwBBgAgLAgAAAEGECAsIAAQAAGAkAAAAQYwIC0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";let Q,B;if("undefined"!=typeof Buffer)Q=Buffer.from(A,"base64");else{const B=atob(A),C=B.length;Q=new Uint8Array(C);for(let A=0;A<C;A++)Q[A]=B.charCodeAt(A)}export const init=WebAssembly.compile(Q).then(WebAssembly.instantiate).then(({exports:A})=>{B=A}); | ||
/* es-module-lexer 0.3.6 */ | ||
export function parse(A){if(!B)return init.then(()=>parse(A));const Q=2*A.length-(B.memory.buffer.byteLength-(B.__heap_base.value||B.__heap_base));Q>0&&B.memory.grow(Math.ceil(Q/1024/64));const C=new Uint16Array(B.memory.buffer,B.salloc(A.length),A.length+1);if(function(A,Q){const B=A.length;for(let C=0;C<B;C++)Q[C]=A.charCodeAt(C)}(A,C),!B.parse()){const A=B.e(),Q=new Error(`Parse error at ${A}.`);throw Q.loc=A,Q}const E=[],I=[];for(;B.ri();)E.push({s:B.is(),e:B.ie(),d:B.id()});for(;B.re();)I.push(A.slice(B.es(),B.ee()));return[E,I]}const A="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";let Q,B;if("undefined"!=typeof Buffer)Q=Buffer.from(A,"base64");else{const B=atob(A),C=B.length;Q=new Uint8Array(C);for(let A=0;A<C;A++)Q[A]=B.charCodeAt(A)}export const init=WebAssembly.compile(Q).then(WebAssembly.instantiate).then(({exports:A})=>{B=A}); |
{ | ||
"name": "es-module-lexer", | ||
"version": "0.3.5", | ||
"version": "0.3.6", | ||
"description": "Lexes ES modules returning their import/export metadata", | ||
@@ -5,0 +5,0 @@ "main": "dist/lexer.cjs", |
@@ -5,11 +5,9 @@ # ES Module Lexer | ||
A very small single JS file (4KiB gzipped) that includes inlined Web Assembly for [very fast source analysis](#benchmarks) of ECMAScript syntax only. | ||
Outputs the list of exports and locations of import specifiers, including dynamic import and import meta handling. | ||
_Comprehensively handles the JS language grammar while remaining small and fast - can parse 2MB of JavaScript in ~22ms from a completely cold start, and in ~14ms after a few runs, [see benchmarks](#benchmarks) for more info._ | ||
A very small single JS file (4KiB gzipped) that includes inlined Web Assembly for very fast source analysis of ECMAScript module syntax only. | ||
### Environment Support | ||
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. | ||
Node.js 10+, and [all browsers with Web Assembly support](https://caniuse.com/#search=web%20assembly). | ||
_Comprehensively handles the JS language grammar while remaining small and fast - ~10ms per MB of JS cold and ~5ms per MB of JS warm, [see benchmarks](#benchmarks) for more info._ | ||
@@ -83,2 +81,27 @@ ### Usage | ||
### Environment Support | ||
Node.js 10+, and [all browsers with Web Assembly support](https://caniuse.com/#search=web%20assembly). | ||
### Grammar Support | ||
* Token state parses all line comments, block comments, strings, template strings, blocks, parens and punctuators. | ||
* Division operator / regex token ambiguity is handled via backtracking checks against punctuator prefixes, including closing brace or paren backtracking. | ||
### Limitations | ||
The lexing approach is designed to deal with the full language grammar including RegEx / division operator ambiguity through backtracking and paren / brace tracking. | ||
The only limitation to the reduced parser is that the "exports" list may not correctly gather all export identifiers in the following edge cases: | ||
```js | ||
// Only "a" is detected as an export, "q" isn't | ||
export var a = 'asdf', q = z; | ||
// "b" is not detected as an export | ||
export var { a: b } = asdf; | ||
``` | ||
The above cases are handled gracefully in that the lexer will keep going fine, it will just not properly detect the export names above. | ||
### Benchmarks | ||
@@ -91,11 +114,13 @@ | ||
``` | ||
Module load time | ||
> 6ms | ||
Cold Run, All Samples | ||
test/samples/*.js (2150 KiB) | ||
> 22ms | ||
test/samples/*.js (3057 KiB) | ||
> 26ms | ||
Warm Runs (average of 25 runs) | ||
test/samples/angular.js (719 KiB) | ||
> 5.32ms | ||
test/samples/angular.min.js (188 KiB) | ||
> 3.4ms | ||
test/samples/d3.js (491 KiB) | ||
> 4.2ms | ||
> 4.48ms | ||
test/samples/d3.min.js (274 KiB) | ||
@@ -106,5 +131,5 @@ > 2.16ms | ||
test/samples/magic-string.min.js (20 KiB) | ||
> 0ms | ||
> 0.04ms | ||
test/samples/rollup.js (902 KiB) | ||
> 6.2ms | ||
> 6.04ms | ||
test/samples/rollup.min.js (429 KiB) | ||
@@ -114,4 +139,4 @@ > 3.2ms | ||
Warm Runs, All Samples (average of 25 runs) | ||
test/samples/*.js (2150 KiB) | ||
> 14.08ms | ||
test/samples/*.js (3057 KiB) | ||
> 18.92ms | ||
``` | ||
@@ -131,20 +156,4 @@ | ||
### Limitations | ||
The lexing approach is designed to deal with the full language grammar including RegEx / division operator ambiguity through backtracking and paren / brace tracking. | ||
The only limitation to the reduced parser is that the "exports" list may not correctly gather all export identifiers in the following edge cases: | ||
```js | ||
// Only "a" is detected as an export, "q" isn't | ||
export var a = 'asdf', q = z; | ||
// "b" is not detected as an export | ||
export var { a: b } = asdf; | ||
``` | ||
The above cases are handled gracefully in that the lexer will keep going fine, it will just not properly detect the export names above. | ||
### License | ||
MIT |
Sorry, the diff of this file is not supported yet
25400
154