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