tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

export-entries.js (3720B)


      1 // Test localExportEntries property
      2 
      3 function testObjectContents(actual, expected) {
      4    for (var property in expected) {
      5        if(actual[property] instanceof Object) {
      6            testObjectContents(actual[property], expected[property]);
      7        }
      8        else {
      9            assertEq(actual[property], expected[property]);
     10        }
     11    }
     12 }
     13 
     14 function testArrayContents(actual, expected) {
     15    assertEq(actual.length, expected.length);
     16    for (var i = 0; i < actual.length; i++) {
     17        testObjectContents(actual[i], expected[i]);
     18    }
     19 }
     20 
     21 function testLocalExportEntries(source, expected) {
     22    var module = parseModule(source);
     23    testArrayContents(module.localExportEntries, expected);
     24 }
     25 
     26 testLocalExportEntries(
     27    'export var v;',
     28    [{exportName: 'v', moduleRequest: null, importName: null, localName: 'v'}]);
     29 
     30 testLocalExportEntries(
     31    'export var v = 0;',
     32    [{exportName: 'v', moduleRequest: null, importName: null, localName: 'v'}]);
     33 
     34 testLocalExportEntries(
     35    'export let x = 1;',
     36    [{exportName: 'x', moduleRequest: null, importName: null, localName: 'x'}]);
     37 
     38 testLocalExportEntries(
     39    'export const x = 1;',
     40    [{exportName: 'x', moduleRequest: null, importName: null, localName: 'x'}]);
     41 
     42 testLocalExportEntries(
     43    'export class foo { constructor() {} };',
     44    [{exportName: 'foo', moduleRequest: null, importName: null, localName: 'foo'}]);
     45 
     46 testLocalExportEntries(
     47    'export default function f() {};',
     48    [{exportName: 'default', moduleRequest: null, importName: null, localName: 'f'}]);
     49 
     50 testLocalExportEntries(
     51    'export default function() {};',
     52    [{exportName: 'default', moduleRequest: null, importName: null, localName: 'default'}]);
     53 
     54 testLocalExportEntries(
     55    'export default 42;',
     56    [{exportName: 'default', moduleRequest: null, importName: null, localName: 'default'}]);
     57 
     58 testLocalExportEntries(
     59    'let x = 1; export {x};',
     60    [{exportName: 'x', moduleRequest: null, importName: null, localName: 'x'}]);
     61 
     62 testLocalExportEntries(
     63    'let v = 1; export {v as x};',
     64    [{exportName: 'x', moduleRequest: null, importName: null, localName: 'v'}]);
     65 
     66 testLocalExportEntries(
     67    'export {x} from "mod";',
     68    []);
     69 
     70 testLocalExportEntries(
     71    'export {v as x} from "mod";',
     72    []);
     73 
     74 testLocalExportEntries(
     75    'export * from "mod";',
     76    []);
     77 
     78 // Test indirectExportEntries property
     79 
     80 function testIndirectExportEntries(source, expected) {
     81    var module = parseModule(source);
     82    testArrayContents(module.indirectExportEntries, expected);
     83 }
     84 
     85 testIndirectExportEntries(
     86    'export default function f() {};',
     87    []);
     88 
     89 testIndirectExportEntries(
     90    'let x = 1; export {x};',
     91    []);
     92 
     93 testIndirectExportEntries(
     94    'export {x} from "mod";',
     95    [{exportName: 'x', moduleRequest: {specifier:'mod'}, importName: 'x', localName: null}]);
     96 
     97 testIndirectExportEntries(
     98    'export {v as x} from "mod";',
     99    [{exportName: 'x', moduleRequest: {specifier:'mod'}, importName: 'v', localName: null}]);
    100 
    101 testIndirectExportEntries(
    102    'export * from "mod";',
    103    []);
    104 
    105 testIndirectExportEntries(
    106    'import {v as x} from "mod"; export {x as y};',
    107    [{exportName: 'y', moduleRequest: {specifier:'mod'}, importName: 'v', localName: null}]);
    108 
    109 // Test starExportEntries property
    110 
    111 function testStarExportEntries(source, expected) {
    112    var module = parseModule(source);
    113    testArrayContents(module.starExportEntries, expected);
    114 }
    115 
    116 testStarExportEntries(
    117    'export default function f() {};',
    118    []);
    119 
    120 testStarExportEntries(
    121    'let x = 1; export {x};',
    122    []);
    123 
    124 testStarExportEntries(
    125    'export {x} from "mod";',
    126    []);
    127 
    128 testStarExportEntries(
    129    'export * from "mod";',
    130    [{exportName: null, moduleRequest: {specifier:'mod'}, importName: null, localName: null}]);