moduleExport1.js 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. function foo() { }
  6. class bar { }
  7. function* baz() { }
  8. function foobar() { }
  9. // Export function expressions
  10. export function fn1 () { };
  11. export function fn2 () { }
  12. // Export generator expressions
  13. export function* gn1 () { };
  14. export function* gn2 () { }
  15. // Export class expressions
  16. export class cl1 { };
  17. export class cl2 { }
  18. // Export let decls
  19. export let let1;
  20. export let let2 = 2;
  21. export let let3, let4, let5;
  22. export let let6 = { }
  23. export let let7 = [ ]
  24. // Export const decls
  25. export const const2 = 'str';
  26. export const const3 = 3, const4 = 4;
  27. export const const5 = { }
  28. export const const6 = [ ]
  29. // Export with export clauses
  30. export {};
  31. export { foo };
  32. export { bar, };
  33. export { foo as foo2, baz }
  34. export { foo as foo3, baz as baz2, }
  35. export { foo as foo4, bar as bar2, foobar }
  36. // Export var decls
  37. export var var1 = 'string';
  38. export var var2;
  39. export var var3 = 5, var4
  40. export var var5, var6, var7
  41. export default 'default';
  42. export function changeContext()
  43. {
  44. foo = 20;
  45. var1 = 'new string';
  46. var2 = 'changed';
  47. var tmp = fn1;
  48. fn1 = fn2;
  49. fn2 = fn1;
  50. }
  51. export function verifyNamespace(ns)
  52. {
  53. var unused = 1;
  54. assert.areEqual(ns.var7, var7, "var7 is the same");
  55. assert.areEqual(ns.var6, var6, "var6 is the same");
  56. assert.areEqual(ns.var5, var5, "var5 is the same");
  57. assert.areEqual(ns.var4, var4, "var4 is the same");
  58. assert.areEqual(ns.var3, var3, "var3 is the same");
  59. assert.areEqual(ns.var2, var2, "var2 is the same");
  60. assert.areEqual(ns.var1, var1, "var1 is the same");
  61. assert.areEqual(ns.foobar, foobar, "foobar is the same");
  62. assert.areEqual(ns.foo4, foo, "foo4 is the same");
  63. assert.areEqual(ns.baz2, baz, "baz2 is the same");
  64. assert.areEqual(ns.foo3, foo, "foo3 is the same");
  65. assert.areEqual(ns.bar2, bar, "bar2 is the same");
  66. assert.areEqual(ns.baz, baz, "baz is the same");
  67. assert.areEqual(ns.foo2, foo, "foo2 is the same");
  68. assert.areEqual(ns.foo, foo, "foo is the same");
  69. assert.areEqual(ns.bar, bar, "bar is the same");
  70. assert.areEqual(ns.const6, const6, "const6 is the same");
  71. assert.areEqual(ns.const5, const5, "const5 is the same");
  72. assert.areEqual(ns.const4, const4, "const4 is the same");
  73. assert.areEqual(ns.const3, const3, "const3 is the same");
  74. assert.areEqual(ns.const2, const2, "const2 is the same");
  75. assert.areEqual(ns.let7, let7, "let7 is the same");
  76. assert.areEqual(ns.let6, let6, "let6 is the same");
  77. assert.areEqual(ns.let5, let5, "let5 is the same");
  78. assert.areEqual(ns.let4, let4, "let4 is the same");
  79. assert.areEqual(ns.let3, let3, "let3 is the same");
  80. assert.areEqual(ns.let2, let2, "let2 is the same");
  81. assert.areEqual(ns.let1, let1, "let1 is the same");
  82. assert.areEqual(ns.cl2, cl2, "cl2 is the same");
  83. assert.areEqual(ns.cl1, cl1, "cl1 is the same");
  84. assert.areEqual(ns.gn2, gn2, "gn2 is the same");
  85. assert.areEqual(ns.gn1, gn1, "gn1 is the same");
  86. assert.areEqual(ns.fn2, fn2, "fn2 is the same");
  87. assert.areEqual(ns.fn1, fn1, "fn1 is the same");
  88. }