title: Moment Timezone returning Uncaught TypeError on load
body: <p>I am working on implementing Moment Timezone into a Django application in order to correct for users accessing it from different time zones, and I am running into an error when importing the files through Require.js. moment.js, moment-timezone.js, and moment-timezone-data.js are all loading, but when my script runs and tries to initiate them, moment-timezone.js and moment-timezone-data.js throw Uncaught TypeErrors.</p>
  
  <p>My moment-timezone-data.js file is copy-pasted from the <a href="http://momentjs.com/timezone/data/" rel="noreferrer">Moment.js timezone data generator</a> and looks like this (albeit with more time zones):</p>
  
  <pre><code>moment.tz.add({
      "zones": {
          "America/New_York": [
              "-4:56:2 - LMT 1883_10_18_12_3_58 -4:56:2",
              "-5 US E%sT 1920 -5",
              "-5 NYC E%sT 1942 -5",
              "-5 US E%sT 1946 -5",
              "-5 NYC E%sT 1967 -5",
              "-5 US E%sT"
          ]
      },
      "rules": {
          "US": [
              "1918 1919 2 0 8 2 0 1 D",
              "1918 1919 9 0 8 2 0 0 S",
              "1942 1942 1 9 7 2 0 1 W",
              "1945 1945 7 14 7 23 1 1 P",
              "1945 1945 8 30 7 2 0 0 S",
              "1967 2006 9 0 8 2 0 0 S",
              "1967 1973 3 0 8 2 0 1 D",
              "1974 1974 0 6 7 2 0 1 D",
              "1975 1975 1 23 7 2 0 1 D",
              "1976 1986 3 0 8 2 0 1 D",
              "1987 2006 3 1 0 2 0 1 D",
              "2007 9999 2 8 0 2 0 1 D",
              "2007 9999 10 1 0 2 0 0 S"
          ],
          "NYC": [
              "1920 1920 2 0 8 2 0 1 D",
              "1920 1920 9 0 8 2 0 0 S",
              "1921 1966 3 0 8 2 0 1 D",
              "1921 1954 8 0 8 2 0 0 S",
              "1955 1966 9 0 8 2 0 0 S"
          ]
      },
      "links": {}
  });
  </code></pre>
  
  <p>The requireConfig file is set up like so:</p>
  
  <pre><code>require = {
      paths: {
          "moment": ServerInfo.generateStaticPathFor("js/ext/moment/moment-with-langs"),
          "moment-timezone": ServerInfo.generateStaticPathFor("js/ext/moment/moment-timezone"),
          "moment-timezone-data": ServerInfo.generateStaticPathFor("js/ext/moment/moment-timezone-data")
      },
      shim: {
          "moment-timezone-data": {
              "deps": ["moment-timezone"]
          }
      }
  };
  </code></pre>
  
  <p>I then try to initiate Moment Timezone like so:</p>
  
  <pre><code>define(["moment", "moment-timezone", "moment-timezone-data"], function(moment) {
      var thisMoment = moment().tz('America/New_York').startOf('day');
  });
  </code></pre>
  
  <p>moment-timezone-data.js throws an Uncaught TypeError of "Cannot call method 'add' of undefined" on line 1:</p>
  
  <pre><code>moment.tz.add({ ... });
  </code></pre>
  
  <p>moment-timezone.js throws an Uncaught TypeError of "Cannot call method 'rule' of undefined" on line 308:</p>
  
  <pre><code>return [zone, zone.rule(mom, lastZone)];
  </code></pre>