From fdb12c2ea39c3926a1919a7dd9f31bbd7880c8cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Wed, 16 Oct 2013 11:48:41 -0700 Subject: [PATCH] v0.5.0 --- blog/2013/06/02/jsfiddle-integration.html | 4 +- blog/2013/06/05/why-react.html | 4 +- blog/2013/06/12/community-roundup.html | 4 +- blog/2013/06/19/community-roundup-2.html | 4 +- blog/2013/06/21/react-v0-3-3.html | 4 +- blog/2013/06/27/community-roundup-3.html | 4 +- .../07/02/react-v0-4-autobind-by-default.html | 4 +- blog/2013/07/03/community-roundup-4.html | 4 +- ...-4-prop-validation-and-default-values.html | 4 +- blog/2013/07/17/react-v0-4-0.html | 4 +- blog/2013/07/23/community-roundup-5.html | 4 +- blog/2013/07/26/react-v0-4-1.html | 4 +- .../use-react-and-jsx-in-ruby-on-rails.html | 4 +- blog/2013/08/05/community-roundup-6.html | 4 +- ...-react-and-jsx-in-python-applications.html | 4 +- blog/2013/08/26/community-roundup-7.html | 4 +- blog/2013/09/24/community-roundup-8.html | 4 +- blog/2013/10/03/community-roundup-9.html | 4 +- blog/2013/10/16/react-v0.5.0.html | 168 + blog/all.html | 2 + blog/index.html | 127 +- blog/page2/index.html | 128 +- blog/page3/index.html | 129 +- blog/page4/index.html | 78 +- docs/OUTLINE.html | 7 + docs/addons.html | 439 ++ docs/component-api.html | 7 + docs/component-specs.html | 7 + docs/displaying-data.html | 11 +- docs/dom-differences.html | 7 + docs/events.html | 7 + docs/examples.html | 11 +- docs/forms.html | 7 + docs/getting-started.html | 11 +- docs/interactivity-and-dynamic-uis.html | 7 + docs/jsx-gotchas.html | 13 + docs/jsx-in-depth.html | 7 + docs/more-about-refs.html | 7 + docs/multiple-components.html | 7 + docs/reusable-components.html | 7 + docs/tags-and-attributes.html | 27 +- docs/tooling-integration.html | 9 +- docs/top-level-api.html | 7 + docs/tutorial.html | 15 +- docs/why-react.html | 7 + docs/working-with-the-browser.html | 7 + downloads.html | 16 +- downloads/react-0.5.0.zip | Bin 0 -> 627024 bytes feed.xml | 99 +- index.html | 4 +- js/JSXTransformer.js | 6318 ++++++++++++----- js/live_editor.js | 14 +- js/react.min.js | 8 +- 53 files changed, 5864 insertions(+), 1933 deletions(-) create mode 100644 blog/2013/10/16/react-v0.5.0.html create mode 100644 docs/addons.html create mode 100644 downloads/react-0.5.0.zip diff --git a/blog/2013/06/02/jsfiddle-integration.html b/blog/2013/06/02/jsfiddle-integration.html index 65a49dc0a6..851195626e 100644 --- a/blog/2013/06/02/jsfiddle-integration.html +++ b/blog/2013/06/02/jsfiddle-integration.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/06/05/why-react.html b/blog/2013/06/05/why-react.html index e86c3a5151..cf244dfb71 100644 --- a/blog/2013/06/05/why-react.html +++ b/blog/2013/06/05/why-react.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/06/12/community-roundup.html b/blog/2013/06/12/community-roundup.html index 79bd304ebd..7618fd983b 100644 --- a/blog/2013/06/12/community-roundup.html +++ b/blog/2013/06/12/community-roundup.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/06/19/community-roundup-2.html b/blog/2013/06/19/community-roundup-2.html index c3ca2f7da5..a64463fc28 100644 --- a/blog/2013/06/19/community-roundup-2.html +++ b/blog/2013/06/19/community-roundup-2.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/06/21/react-v0-3-3.html b/blog/2013/06/21/react-v0-3-3.html index 625010a0e6..f93f049527 100644 --- a/blog/2013/06/21/react-v0-3-3.html +++ b/blog/2013/06/21/react-v0-3-3.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/06/27/community-roundup-3.html b/blog/2013/06/27/community-roundup-3.html index bb5885fd8f..c5d354cf2b 100644 --- a/blog/2013/06/27/community-roundup-3.html +++ b/blog/2013/06/27/community-roundup-3.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/07/02/react-v0-4-autobind-by-default.html b/blog/2013/07/02/react-v0-4-autobind-by-default.html index d3146f4df5..fc2677e186 100644 --- a/blog/2013/07/02/react-v0-4-autobind-by-default.html +++ b/blog/2013/07/02/react-v0-4-autobind-by-default.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/07/03/community-roundup-4.html b/blog/2013/07/03/community-roundup-4.html index f33dfa6861..596d1737fa 100644 --- a/blog/2013/07/03/community-roundup-4.html +++ b/blog/2013/07/03/community-roundup-4.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html b/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html index d942b85eaf..994b4e2684 100644 --- a/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html +++ b/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/07/17/react-v0-4-0.html b/blog/2013/07/17/react-v0-4-0.html index 4b861b0974..ce71547eaa 100644 --- a/blog/2013/07/17/react-v0-4-0.html +++ b/blog/2013/07/17/react-v0-4-0.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/07/23/community-roundup-5.html b/blog/2013/07/23/community-roundup-5.html index 2645d449da..0b60555797 100644 --- a/blog/2013/07/23/community-roundup-5.html +++ b/blog/2013/07/23/community-roundup-5.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/07/26/react-v0-4-1.html b/blog/2013/07/26/react-v0-4-1.html index f13f458ed6..1e6a99426f 100644 --- a/blog/2013/07/26/react-v0-4-1.html +++ b/blog/2013/07/26/react-v0-4-1.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/07/30/use-react-and-jsx-in-ruby-on-rails.html b/blog/2013/07/30/use-react-and-jsx-in-ruby-on-rails.html index b5e927f194..46d66c2069 100644 --- a/blog/2013/07/30/use-react-and-jsx-in-ruby-on-rails.html +++ b/blog/2013/07/30/use-react-and-jsx-in-ruby-on-rails.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/08/05/community-roundup-6.html b/blog/2013/08/05/community-roundup-6.html index 862c7d90a0..4103f9a11a 100644 --- a/blog/2013/08/05/community-roundup-6.html +++ b/blog/2013/08/05/community-roundup-6.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/08/19/use-react-and-jsx-in-python-applications.html b/blog/2013/08/19/use-react-and-jsx-in-python-applications.html index 003830ea99..7ef75b8ee4 100644 --- a/blog/2013/08/19/use-react-and-jsx-in-python-applications.html +++ b/blog/2013/08/19/use-react-and-jsx-in-python-applications.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/08/26/community-roundup-7.html b/blog/2013/08/26/community-roundup-7.html index d9869432c0..7a016d3c2a 100644 --- a/blog/2013/08/26/community-roundup-7.html +++ b/blog/2013/08/26/community-roundup-7.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/09/24/community-roundup-8.html b/blog/2013/09/24/community-roundup-8.html index d3409a670b..823ae88f8f 100644 --- a/blog/2013/09/24/community-roundup-8.html +++ b/blog/2013/09/24/community-roundup-8.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/10/03/community-roundup-9.html b/blog/2013/10/03/community-roundup-9.html index 8d3b4eb899..1ffe5e36cc 100644 --- a/blog/2013/10/03/community-roundup-9.html +++ b/blog/2013/10/03/community-roundup-9.html @@ -58,6 +58,8 @@

Recent posts

diff --git a/blog/2013/10/16/react-v0.5.0.html b/blog/2013/10/16/react-v0.5.0.html new file mode 100644 index 0000000000..8587be9f7e --- /dev/null +++ b/blog/2013/10/16/react-v0.5.0.html @@ -0,0 +1,168 @@ + + + + + + React | React v0.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + +
+

React v0.5

+

October 16, 2013 by Paul O'Shannessy

+ +
+ +
+

This release is the result of several months of hard work from members of the team and the community. While there are no groundbreaking changes in core, we've worked hard to improve performance and memory usage. We've also worked hard to make sure we are being consistent in our usage of DOM properties.

+ +

The biggest change you'll notice as a developer is that we no longer support class in JSX as a way to provide CSS classes. Since this prop was being converted to className at the transform step, it caused some confusion when trying to access it in composite components. As a result we decided to make our DOM properties mirror their counterparts in the JS DOM API. There are a few exceptions where we deviate slightly in an attempt to be consistent internally.

+ +

The other major change in v0.5 is that we've added an additional build - react-with-addons - which adds support for some extras that we've been working on including animations and two-way binding. Read more about these addons in the docs.

+

Thanks to Our Community

+

We added 22 new people to the list of authors since we launched React v0.4.1 nearly 3 months ago. With a total of 48 names in our AUTHORS file, that means we've nearly doubled the number of contributors in that time period. We've seen the number of people contributing to discussion on IRC, mailing lists, Stack Overflow, and GitHub continue rising. We've also had people tell us about talks they've given in their local community about React.

+ +

It's been awesome to see the things that people are building with React, and we can't wait to see what you come up with next!

+

Changelog

React

+
    +
  • Memory usage improvements - reduced allocations in core which will help with GC pauses
  • +
  • Performance improvements - in addition to speeding things up, we made some tweaks to stay out of slow path code in V8 and Nitro.
  • +
  • Standardized prop -> DOM attribute process. This previously resulting in additional type checking and overhead as well as confusing cases for users. Now we will always convert your value to a string before inserting it into the DOM.
  • +
  • Support for Selection events.
  • +
  • Support for Composition events.
  • +
  • Support for additional DOM properties (charSet, content, form, httpEquiv, rowSpan, autoCapitalize).
  • +
  • Support for additional SVG properties (rx, ry).
  • +
  • Support for using getInitialState and getDefaultProps in mixins.
  • +
  • Support mounting into iframes.
  • +
  • Bug fixes for controlled form components.
  • +
  • Bug fixes for SVG element creation.
  • +
  • Added React.version.
  • +
  • Added React.isValidClass - Used to determine if a value is a valid component constructor.
  • +
  • Removed React.autoBind - This was deprecated in v0.4 and now properly removed.
  • +
  • Renamed React.unmountAndReleaseReactRootNode to React.unmountComponentAtNode.
  • +
  • Began laying down work for refined performance analysis.
  • +
  • Better support for server-side rendering - react-page has helped improve the stability for server-side rendering.
  • +
  • Made it possible to use React in environments enforcing a strict Content Security Policy. This also makes it possible to use React to build Chrome extensions.
  • +
+

React with Addons (New!)

+
    +
  • Introduced a separate build with several "addons" which we think can help improve the React experience. We plan to deprecate this in the long-term, instead shipping each as standalone pieces. Read more in the docs.
  • +
+

JSX

+
    +
  • No longer transform class to className as part of the transform! This is a breaking change - if you were using class, you must change this to className or your components will be visually broken.
  • +
  • Added warnings to the in-browser transformer to make it clear it is not intended for production use.
  • +
  • Improved compatibility for Windows
  • +
  • Improved support for maintaining line numbers when transforming.
  • +
+ +
+ +
+
+
+
+ + +
+
A Facebook & Instagram collaboration.
+
© 2013 Facebook Inc.
+
+
+
+ + + diff --git a/blog/all.html b/blog/all.html index 9d70184f2d..6ec5937502 100644 --- a/blog/all.html +++ b/blog/all.html @@ -56,6 +56,8 @@

All Posts

+

React v0.5 on October 16, 2013 by Paul O'Shannessy

+

Community Round-up #9 on October 3, 2013 by Vjeux

Community Round-up #8 on September 24, 2013 by Vjeux

diff --git a/blog/index.html b/blog/index.html index 0e2116e042..7003626e4d 100644 --- a/blog/index.html +++ b/blog/index.html @@ -58,6 +58,8 @@

Recent posts

@@ -85,6 +85,56 @@
+
+

React v0.5

+

October 16, 2013 by Paul O'Shannessy

+
+
+

This release is the result of several months of hard work from members of the team and the community. While there are no groundbreaking changes in core, we've worked hard to improve performance and memory usage. We've also worked hard to make sure we are being consistent in our usage of DOM properties.

+ +

The biggest change you'll notice as a developer is that we no longer support class in JSX as a way to provide CSS classes. Since this prop was being converted to className at the transform step, it caused some confusion when trying to access it in composite components. As a result we decided to make our DOM properties mirror their counterparts in the JS DOM API. There are a few exceptions where we deviate slightly in an attempt to be consistent internally.

+ +

The other major change in v0.5 is that we've added an additional build - react-with-addons - which adds support for some extras that we've been working on including animations and two-way binding. Read more about these addons in the docs.

+

Thanks to Our Community

+

We added 22 new people to the list of authors since we launched React v0.4.1 nearly 3 months ago. With a total of 48 names in our AUTHORS file, that means we've nearly doubled the number of contributors in that time period. We've seen the number of people contributing to discussion on IRC, mailing lists, Stack Overflow, and GitHub continue rising. We've also had people tell us about talks they've given in their local community about React.

+ +

It's been awesome to see the things that people are building with React, and we can't wait to see what you come up with next!

+

Changelog

React

+
    +
  • Memory usage improvements - reduced allocations in core which will help with GC pauses
  • +
  • Performance improvements - in addition to speeding things up, we made some tweaks to stay out of slow path code in V8 and Nitro.
  • +
  • Standardized prop -> DOM attribute process. This previously resulting in additional type checking and overhead as well as confusing cases for users. Now we will always convert your value to a string before inserting it into the DOM.
  • +
  • Support for Selection events.
  • +
  • Support for Composition events.
  • +
  • Support for additional DOM properties (charSet, content, form, httpEquiv, rowSpan, autoCapitalize).
  • +
  • Support for additional SVG properties (rx, ry).
  • +
  • Support for using getInitialState and getDefaultProps in mixins.
  • +
  • Support mounting into iframes.
  • +
  • Bug fixes for controlled form components.
  • +
  • Bug fixes for SVG element creation.
  • +
  • Added React.version.
  • +
  • Added React.isValidClass - Used to determine if a value is a valid component constructor.
  • +
  • Removed React.autoBind - This was deprecated in v0.4 and now properly removed.
  • +
  • Renamed React.unmountAndReleaseReactRootNode to React.unmountComponentAtNode.
  • +
  • Began laying down work for refined performance analysis.
  • +
  • Better support for server-side rendering - react-page has helped improve the stability for server-side rendering.
  • +
  • Made it possible to use React in environments enforcing a strict Content Security Policy. This also makes it possible to use React to build Chrome extensions.
  • +
+

React with Addons (New!)

+
    +
  • Introduced a separate build with several "addons" which we think can help improve the React experience. We plan to deprecate this in the long-term, instead shipping each as standalone pieces. Read more in the docs.
  • +
+

JSX

+
    +
  • No longer transform class to className as part of the transform! This is a breaking change - if you were using class, you must change this to className or your components will be visually broken.
  • +
  • Added warnings to the in-browser transformer to make it clear it is not intended for production use.
  • +
  • Improved compatibility for Windows
  • +
  • Improved support for maintaining line numbers when transforming.
  • +
+ +
+
+

Community Round-up #9

October 3, 2013 by Vjeux

@@ -357,79 +407,6 @@
-
-

Community Round-up #6

-

August 5, 2013 by Vjeux

-
-
-

This is the first Community Round-up where none of the items are from Facebook/Instagram employees. It's great to see the adoption of React growing.

-

React Game Tutorial

-

Caleb Cassel wrote a step-by-step tutorial about making a small game. It covers JSX, State and Events, Embedded Components and Integration with Backbone. -

-

Reactify

-

Andrey Popp created a Browserify helper to compile JSX files.

- -
-

Browserify v2 transform for text/jsx. Basic usage is:

-
% browserify -t reactify main.jsx
-
-

reactify transform activates for files with either .jsx extension or /** @jsx React.DOM */ pragma as a first line for any .js file.

- -

Check it out on Github...

-
-

React Integration with Este

-

Daniel Steigerwald is now using React within Este, which is a development stack for web apps in CoffeeScript that are statically typed using the Closure Library.

-
este.demos.react.todoApp = este.react.create (`/** @lends {React.ReactComponent.prototype} */`)
-  render: ->
-    @div [
-      este.demos.react.todoList 'items': @state['items']
-      if @state['items'].length
-        @p "#{@state['items'].length} items."
-      @form 'onSubmit': @onFormSubmit, [
-        @input
-          'onChange': @onChange
-          'value': @state['text']
-          'autoFocus': true
-          'ref': 'textInput'
-        @button "Add ##{@state['items'].length + 1}"
-      ]
-    ]
-
-

Check it out on Github...

-

React Stylus Boilerplate

-

Zaim Bakar shared his boilerplate to get started with Stylus CSS processor.

- -
-

This is my boilerplate React project using Grunt as the build tool, and Stylus as my CSS preprocessor.

- -
    -
  • Very minimal HTML boilerplate
  • -
  • Uses Stylus, with nib included
  • -
  • Uses two build targets: - -
      -
    • grunt build to compile JSX and Stylus into a development build
    • -
    • grunt dist to minify and optimize the development build for production
    • -
  • -
- -

Check it out on Github...

-
-

WebFUI

-

Conrad Barski, author of the popular book Land of Lisp, wants to use React for his ClojureScript library called WebFUI.

- -
-

I'm the author of "Land of Lisp" and I love your framework. I built a somewhat similar framework a year ago WebFUI aimed at ClojureScript. My framework also uses global event delegates, a global "render" function, DOM reconciliation, etc just like react.js. (Of course these ideas all have been floating around the ether for ages, always great to see more people building on them.)

- -

Your implementation is more robust, and so I think the next point release of webfui will simply delegate all the "hard work" to react.js and will only focus on the areas where it adds value (enabling purely functional UI programming in clojurescript, and some other stuff related to streamlining event handling) -

- -

Read the full post...

-
- -
-
- @@ -85,6 +85,79 @@
+
+

Community Round-up #6

+

August 5, 2013 by Vjeux

+
+
+

This is the first Community Round-up where none of the items are from Facebook/Instagram employees. It's great to see the adoption of React growing.

+

React Game Tutorial

+

Caleb Cassel wrote a step-by-step tutorial about making a small game. It covers JSX, State and Events, Embedded Components and Integration with Backbone. +

+

Reactify

+

Andrey Popp created a Browserify helper to compile JSX files.

+ +
+

Browserify v2 transform for text/jsx. Basic usage is:

+
% browserify -t reactify main.jsx
+
+

reactify transform activates for files with either .jsx extension or /** @jsx React.DOM */ pragma as a first line for any .js file.

+ +

Check it out on Github...

+
+

React Integration with Este

+

Daniel Steigerwald is now using React within Este, which is a development stack for web apps in CoffeeScript that are statically typed using the Closure Library.

+
este.demos.react.todoApp = este.react.create (`/** @lends {React.ReactComponent.prototype} */`)
+  render: ->
+    @div [
+      este.demos.react.todoList 'items': @state['items']
+      if @state['items'].length
+        @p "#{@state['items'].length} items."
+      @form 'onSubmit': @onFormSubmit, [
+        @input
+          'onChange': @onChange
+          'value': @state['text']
+          'autoFocus': true
+          'ref': 'textInput'
+        @button "Add ##{@state['items'].length + 1}"
+      ]
+    ]
+
+

Check it out on Github...

+

React Stylus Boilerplate

+

Zaim Bakar shared his boilerplate to get started with Stylus CSS processor.

+ +
+

This is my boilerplate React project using Grunt as the build tool, and Stylus as my CSS preprocessor.

+ +
    +
  • Very minimal HTML boilerplate
  • +
  • Uses Stylus, with nib included
  • +
  • Uses two build targets: + +
      +
    • grunt build to compile JSX and Stylus into a development build
    • +
    • grunt dist to minify and optimize the development build for production
    • +
  • +
+ +

Check it out on Github...

+
+

WebFUI

+

Conrad Barski, author of the popular book Land of Lisp, wants to use React for his ClojureScript library called WebFUI.

+ +
+

I'm the author of "Land of Lisp" and I love your framework. I built a somewhat similar framework a year ago WebFUI aimed at ClojureScript. My framework also uses global event delegates, a global "render" function, DOM reconciliation, etc just like react.js. (Of course these ideas all have been floating around the ether for ages, always great to see more people building on them.)

+ +

Your implementation is more robust, and so I think the next point release of webfui will simply delegate all the "hard work" to react.js and will only focus on the areas where it adds value (enabling purely functional UI programming in clojurescript, and some other stuff related to streamlining event handling) +

+ +

Read the full post...

+
+ +
+
+

Use React and JSX in Ruby on Rails

July 30, 2013 by Paul O'Shannessy

@@ -285,57 +358,6 @@ If you were using React without JSX previously, your code should still work.
-
-

New in React v0.4: Prop Validation and Default Values

-

July 11, 2013 by Paul O'Shannessy

-
-
-

Many of the questions we got following the public launch of React revolved around props, specifically that people wanted to do validation and to make sure their components had sensible defaults.

-

Validation

-

Oftentimes you want to validate your props before you use them. Perhaps you want to ensure they are a specific type. Or maybe you want to restrict your prop to specific values. Or maybe you want to make a specific prop required. This was always possible — you could have written validations in your render or componentWillReceiveProps functions, but that gets clunky fast.

- -

React v0.4 will provide a nice easy way for you to use built-in validators, or to even write your own.

-
React.createClass({
-  propTypes: {
-    // An optional string prop named "description".
-    description: React.PropTypes.string,
-
-    // A required enum prop named "category".
-    category: React.PropTypes.oneOf(['News','Photos']).isRequired,
-
-    // A prop named "dialog" that requires an instance of Dialog.
-    dialog: React.PropTypes.instanceOf(Dialog).isRequired
-  },
-  ...
-});
-

Default Values

-

One common pattern we've seen with our React code is to do something like this:

-
React.createClass({
-  render: function() {
-    var value = this.props.value || 'default value';
-    return <div>{value}</div>;
-  }
-});
-
-

Do this for a few props across a few components and now you have a lot of redundant code. Starting with React v0.4, you can provide default values in a declarative way:

-
React.createClass({
-  getDefaultProps: function() {
-    return {
-      value: 'default value'
-    };
-  }
-  ...
-});
-
-

We will use the cached result of this function before each render. We also perform all validations before each render to ensure that you have all of the data you need in the right form before you try to use it.

- -
- -

Both of these features are entirely optional. We've found them to be increasingly valuable at Facebook as our applications grow and evolve, and we hope others find them useful as well.

- -
-
- @@ -85,6 +85,57 @@
+
+

New in React v0.4: Prop Validation and Default Values

+

July 11, 2013 by Paul O'Shannessy

+
+
+

Many of the questions we got following the public launch of React revolved around props, specifically that people wanted to do validation and to make sure their components had sensible defaults.

+

Validation

+

Oftentimes you want to validate your props before you use them. Perhaps you want to ensure they are a specific type. Or maybe you want to restrict your prop to specific values. Or maybe you want to make a specific prop required. This was always possible — you could have written validations in your render or componentWillReceiveProps functions, but that gets clunky fast.

+ +

React v0.4 will provide a nice easy way for you to use built-in validators, or to even write your own.

+
React.createClass({
+  propTypes: {
+    // An optional string prop named "description".
+    description: React.PropTypes.string,
+
+    // A required enum prop named "category".
+    category: React.PropTypes.oneOf(['News','Photos']).isRequired,
+
+    // A prop named "dialog" that requires an instance of Dialog.
+    dialog: React.PropTypes.instanceOf(Dialog).isRequired
+  },
+  ...
+});
+

Default Values

+

One common pattern we've seen with our React code is to do something like this:

+
React.createClass({
+  render: function() {
+    var value = this.props.value || 'default value';
+    return <div>{value}</div>;
+  }
+});
+
+

Do this for a few props across a few components and now you have a lot of redundant code. Starting with React v0.4, you can provide default values in a declarative way:

+
React.createClass({
+  getDefaultProps: function() {
+    return {
+      value: 'default value'
+    };
+  }
+  ...
+});
+
+

We will use the cached result of this function before each render. We also perform all validations before each render to ensure that you have all of the data you need in the right form before you try to use it.

+ +
+ +

Both of these features are entirely optional. We've found them to be increasingly valuable at Facebook as our applications grow and evolve, and we hope others find them useful as well.

+ +
+
+

Community Round-up #4

July 3, 2013 by Vjeux

@@ -301,80 +352,6 @@
-
-

Community Round-up #2

-

June 19, 2013 by Vjeux

-
-
-

Since the launch we have received a lot of feedback and are actively working on React 0.4. In the meantime, here are the highlights of this week.

-

Some quick thoughts on React

-

Andrew Greig made a blog post that gives a high level description of what React is.

- -
-

I have been using Facebooks recently released Javascript framework called React.js for the last few days and have managed to obtain a rather high level understanding of how it works and formed a good perspective on how it fits in to the entire javascript framework ecosystem.

- -

Basically, React is not an MVC framework. It is not a replacement for Backbone or Knockout or Angular, instead it is designed to work with existing frameworks and help extend their functionality.

- -

It is designed for building big UIs. The type where you have lots of reusable components that are handling events and presenting and changing some backend data. In a traditional MVC app, React fulfils the role of the View. So you would still need to handle the Model and Controller on your own.

- -

I found the best way to utilise React was to pair it with Backbone, with React replacing the Backbone View, or to write your own Model/Data object and have React communicate with that.

- -

Read the full post...

-
-

React and Socket.IO Chat Application

-

Danial Khosravi made a real-time chat application that interacts with the back-end using Socket.IO.

- -
-

A week ago I was playing with AngularJS and this little chat application which uses socket.io and nodejs for realtime communication. Yesterday I saw a post about ReactJS in EchoJS and started playing with this UI library. After playing a bit with React, I decided to write and chat application using React and I used Bran Ford's Backend for server side of this little app. -

- -

Read the full post...

-
-

React and Other Frameworks

-

Pete Hunt wrote an answer on Quora comparing React and Angular directives. At the end, he explains how you can make an Angular directive that is in fact being rendered with React.

- -
-

To set the record straight: React components are far more powerful than Angular templates; they should be compared with Angular's directives instead. So I took the first Google hit for "AngularJS directive tutorial" (AngularJS Directives Tutorial - Fundoo Solutions), rewrote it in React and compared them. [...]

- -

We've designed React from the beginning to work well with other libraries. Angular is no exception. Let's take the original Angular example and use React to implement the fundoo-rating directive.

- -

Read the full post...

-
- -

In the same vein, Markov Twain re-implemented the examples on the front-page with Ember and Vlad Yazhbin re-implemented the tutorial with Angular.

-

Web Components: React & x-tags

-

Mozilla and Google are actively working on Web Components. Vjeux wrote a proof of concept that shows how to implement them using React.

- -
-

Using x-tags from Mozilla, we can write custom tags within the DOM. This is a great opportunity to be able to write reusable components without being tied to a particular library. I wrote x-react to have them being rendered in React. -

- -

Read the full post...

-
-

React TodoMVC Example

-

TodoMVC.com is a website that collects various implementations of the same basic Todo app. Pete Hunt wrote an idiomatic React version.

- -
-

Developers these days are spoiled with choice when it comes to selecting an MV* framework for structuring and organizing their JavaScript web apps.

- -

To help solve this problem, we created TodoMVC - a project which offers the same Todo application implemented using MV* concepts in most of the popular JavaScript MV* frameworks of today. -

- -

Read the source code...

-
-

JSX is not HTML

-

Many of you pointed out differences between JSX and HTML. In order to clear up some confusion, we have added some documentation that covers the four main differences:

- - - -
-
- @@ -85,6 +85,80 @@
+
+

Community Round-up #2

+

June 19, 2013 by Vjeux

+
+
+

Since the launch we have received a lot of feedback and are actively working on React 0.4. In the meantime, here are the highlights of this week.

+

Some quick thoughts on React

+

Andrew Greig made a blog post that gives a high level description of what React is.

+ +
+

I have been using Facebooks recently released Javascript framework called React.js for the last few days and have managed to obtain a rather high level understanding of how it works and formed a good perspective on how it fits in to the entire javascript framework ecosystem.

+ +

Basically, React is not an MVC framework. It is not a replacement for Backbone or Knockout or Angular, instead it is designed to work with existing frameworks and help extend their functionality.

+ +

It is designed for building big UIs. The type where you have lots of reusable components that are handling events and presenting and changing some backend data. In a traditional MVC app, React fulfils the role of the View. So you would still need to handle the Model and Controller on your own.

+ +

I found the best way to utilise React was to pair it with Backbone, with React replacing the Backbone View, or to write your own Model/Data object and have React communicate with that.

+ +

Read the full post...

+
+

React and Socket.IO Chat Application

+

Danial Khosravi made a real-time chat application that interacts with the back-end using Socket.IO.

+ +
+

A week ago I was playing with AngularJS and this little chat application which uses socket.io and nodejs for realtime communication. Yesterday I saw a post about ReactJS in EchoJS and started playing with this UI library. After playing a bit with React, I decided to write and chat application using React and I used Bran Ford's Backend for server side of this little app. +

+ +

Read the full post...

+
+

React and Other Frameworks

+

Pete Hunt wrote an answer on Quora comparing React and Angular directives. At the end, he explains how you can make an Angular directive that is in fact being rendered with React.

+ +
+

To set the record straight: React components are far more powerful than Angular templates; they should be compared with Angular's directives instead. So I took the first Google hit for "AngularJS directive tutorial" (AngularJS Directives Tutorial - Fundoo Solutions), rewrote it in React and compared them. [...]

+ +

We've designed React from the beginning to work well with other libraries. Angular is no exception. Let's take the original Angular example and use React to implement the fundoo-rating directive.

+ +

Read the full post...

+
+ +

In the same vein, Markov Twain re-implemented the examples on the front-page with Ember and Vlad Yazhbin re-implemented the tutorial with Angular.

+

Web Components: React & x-tags

+

Mozilla and Google are actively working on Web Components. Vjeux wrote a proof of concept that shows how to implement them using React.

+ +
+

Using x-tags from Mozilla, we can write custom tags within the DOM. This is a great opportunity to be able to write reusable components without being tied to a particular library. I wrote x-react to have them being rendered in React. +

+ +

Read the full post...

+
+

React TodoMVC Example

+

TodoMVC.com is a website that collects various implementations of the same basic Todo app. Pete Hunt wrote an idiomatic React version.

+ +
+

Developers these days are spoiled with choice when it comes to selecting an MV* framework for structuring and organizing their JavaScript web apps.

+ +

To help solve this problem, we created TodoMVC - a project which offers the same Todo application implemented using MV* concepts in most of the popular JavaScript MV* frameworks of today. +

+ +

Read the source code...

+
+

JSX is not HTML

+

Many of you pointed out differences between JSX and HTML. In order to clear up some confusion, we have added some documentation that covers the four main differences:

+ + + +
+
+

Community Round-up #1

June 12, 2013 by Vjeux

diff --git a/docs/OUTLINE.html b/docs/OUTLINE.html index 0d35e617ff..15979f6699 100644 --- a/docs/OUTLINE.html +++ b/docs/OUTLINE.html @@ -162,6 +162,13 @@ +
  • + + Add-ons + + +
  • +
  • Examples diff --git a/docs/addons.html b/docs/addons.html new file mode 100644 index 0000000000..5259e72076 --- /dev/null +++ b/docs/addons.html @@ -0,0 +1,439 @@ + + + + + + React | Add-ons + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + +
    + + + +
    +

    Add-ons

    +
    +

    React.addons is where we park some useful utilities for building React apps. These should be considered experimental but will eventually be rolled into core or a blessed utilities library.

    +

    CSS Animation and Transitions

    +

    ReactTransitions is an easy way to perform CSS transitions and animations when a React component enters or leaves the DOM. ReactTransitions is inspired by the excellent ng-animate library.

    +

    Getting Started

    +

    ReactTransitionGroup is the interface to ReactTransitions. This is a simple element that wraps all of the components you are interested in animating. Here's an example where we fade list items in and out.

    +
    /** @jsx React.DOM */
    +
    +var ReactTransitionGroup = React.addons.TransitionGroup;
    +
    +var TodoList = React.createClass({
    +  getInitialState: function() {
    +    return {items: ['hello', 'world', 'click', 'me']};
    +  },
    +  handleAdd: function() {
    +    var newItems =
    +      this.state.items.concat([prompt('Enter some text')]);
    +    this.setState({items: newItems});
    +  },
    +  handleRemove: function(i) {
    +    var newItems = this.state.items;
    +    newItems.splice(i, 0)
    +    this.setState({items: newItems});
    +  },
    +  render: function() {
    +    var items = this.state.items.map(function(item, i) {
    +      return (
    +        <div key={i} onClick={this.handleRemove.bind(this, i)}>
    +          {item}}
    +        </div>
    +      );
    +    }.bind(this));
    +    return (
    +      <div>
    +        <div><button onClick={this.handleAdd} /></div>
    +        <ReactTransitionGroup transitionName="example">
    +          {items}
    +        </ReactTransitionGroup>
    +      </div>
    +    );
    +  }
    +});
    +
    +

    In this component, when a new item is added ReactTransitionGroup it will get the example-enter CSS class and the example-enter-active CSS class added in the next tick. This is a convention based on the transitionName prop.

    + +

    You can use these classes to trigger a CSS animation or transition. For example, try adding this CSS and adding a new list item:

    +
    .example-enter {
    +  opacity: 0.01;
    +  transition: opacity .5s ease-in;
    +}
    +
    +.example-enter.example-enter-active {
    +  opacity: 0.99;
    +}
    +
    +

    You'll notice that when you try to remove an item ReactTransitionGroup keeps it in the DOM. If you're using an unminified build of React you'll see a warning that React was expecting an animation or transition to occur. That's because ReactTransitionGroup keeps your DOM elements on the page until the animation completes. Try adding this CSS:

    +
    .example-leave {
    +  opacity: 0.99;
    +  transition: opacity .5s ease-in;
    +}
    +
    +.example-leave.example-leave-active {
    +  opacity: 0.01;
    +}
    +

    Disabling Animations

    +

    You can disable animating enter or leave animations if you want. For example, sometimes you may want an enter animation and no leave animation, but ReactTransitionGroup waits for an animation to complete before removing your DOM node. You can add transitionEnter={false} or transitionLeave={false} props to ReactTransitionGroup to disable these animations.

    +

    Rendering a Different Component

    +

    By default ReactTransitionGroup renders as a span. You can change this behavior by providing a component prop. For example, here's how you would render a <ul>:

    +
    <ReactTransitionGroup
    +  transitionName="example"
    +  component={React.DOM.ul}>
    +  ...
    +</ReactTransitionGroup>
    +
    +

    component does not need to be a DOM component. It can be any component you want; even one you've written yourself!

    + +

    ReactLink is an easy way to express two-way binding with React.

    + +

    In React, data flows one way: from owner to child. This is because data only flows one direction in the Von Neumann model of computing. You can think of it as "one-way data binding."

    + +

    However, there are lots of applications that require you to read some data and flow it back into your program. For example, when developing forms, you'll often want to update some React state when you receive user input. Or perhaps you want to perform layout in JavaScript and react to changes in some DOM element size.

    + +

    In React, you would implement this by listening to a "change" event, read from your data source (usually the DOM) and call setState() on one of your components. "Closing the data flow loop" explicitly leads to more understandable and easier-to-maintain programs. See our forms documentation for more information.

    + +

    Two-way binding -- implicitly enforcing that some value in the DOM is always consistent with some React state -- is concise and supports a wide variety of applications. We've provided ReactLink: syntactic sugar for setting up the common data flow loop pattern described above, or "linking" some data source to React state.

    + +
    +

    Note:

    + +

    ReactLink is just a thin wrapper and convention around the onChange/setState() pattern. It doesn't fundamentally change how data flows in your React application.

    +
    + +

    Here's a simple form example without using ReactLink:

    +
    /** @jsx React.DOM */
    +
    +var NoLink = React.createClass({
    +  getInitialState: function() {
    +    return {value: 'Hello!'};
    +  },
    +  handleChange: function(event) {
    +    this.setState({value: event.target.value});
    +  },
    +  render: function() {
    +    var value = this.state.value;
    +    return <input type="text" value={value} onChange={this.handleChange} />;
    +  }
    +});
    +
    +

    This works really well and it's very clear how data is flowing, however with a lot of form fields it could get a bit verbose. Let's use ReactLink to save us some typing:

    +
    /** @jsx React.DOM */
    +
    +var WithLink = React.createClass({
    +  mixins: [React.addons.LinkedStateMixin],
    +  getInitialState: function() {
    +    return {value: 'Hello!'};
    +  },
    +  render: function() {
    +    return <input type="text" valueLink={this.linkState('value')} />;
    +  }
    +});
    +
    +

    LinkedStateMixin adds a method ot your React component called linkState(). linkState() returns a ReactLink object which contains the current value of the React state and a callback to change it.

    + +

    ReactLink objects can be passed up and down the tree as props, so it's easy (and explicit) to set up two-way binding between a component deep in the hierarchy and state that lives higher in the hierarchy.

    +

    Under the Hood

    +

    There are two sides to ReactLink: the place where you create the ReactLink instance and the place where you use it. To prove how simple ReactLink is, let's rewrite each side separately to be more explicit.

    +
    /** @jsx React.DOM */
    +
    +var WithoutMixin = React.createClass({
    +  getInitialState: function() {
    +    return {value: 'Hello!'};
    +  },
    +  handleChange: function(newValue) {
    +    this.setState({value: newValue});
    +  },
    +  render: function() {
    +    var valueLink = {
    +      value: this.state.value,
    +      requestChange: this.handleChange
    +    };
    +    return <input type="text" valueLink={valueLink} />;
    +  }
    +});
    +
    +

    As you can see, ReactLink objects are very simple objects that just have a value and requestChange prop. And LinkedStateMixin is similarly simple: it just populates those fields with a value from this.state and a callback that calls this.setState().

    +
    /** @jsx React.DOM */
    +
    +var WithoutLink = React.createClass({
    +  mixins: [React.addons.LinkedStateMixin],
    +  getInitialState: function() {
    +    return {value: 'Hello!'};
    +  },
    +  render: function() {
    +    var valueLink = this.linkState('value');
    +    var handleChange = function(e) {
    +      valueLink.requestChange(e.target.value);
    +    };
    +    return <input type="text" value={valueLink.value} onChange={handleChange} />;
    +  }
    +});
    +
    +

    The valueLink prop is also quite simple. It simply handles the onChange event and calls this.props.valueLink.requestChange() and also uses this.props.valueLink.value instead of this.props.value. That's it!

    + + +
    + + ← Prev + + + Next → + +
    + +
    +
    +
    + + +
    +
    A Facebook & Instagram collaboration.
    +
    © 2013 Facebook Inc.
    +
    +
    +
    + + + diff --git a/docs/component-api.html b/docs/component-api.html index ccf6ec7a40..0445a3e894 100644 --- a/docs/component-api.html +++ b/docs/component-api.html @@ -162,6 +162,13 @@
  • +
  • + + Add-ons + + +
  • +
  • Examples diff --git a/docs/component-specs.html b/docs/component-specs.html index 058763e7d1..e688ee1484 100644 --- a/docs/component-specs.html +++ b/docs/component-specs.html @@ -162,6 +162,13 @@
  • +
  • + + Add-ons + + +
  • +
  • Examples diff --git a/docs/displaying-data.html b/docs/displaying-data.html index 08aebeb8e3..a8fcaa4065 100644 --- a/docs/displaying-data.html +++ b/docs/displaying-data.html @@ -162,6 +162,13 @@
  • +
  • + + Add-ons + + +
  • +
  • Examples @@ -234,8 +241,8 @@ <html> <head> <title>Hello React</title> - <script src="http://fb.me/react-0.4.1.min.js"></script> - <script src="http://fb.me/JSXTransformer-0.4.1.js"></script> + <script src="http://fb.me/react-0.5.0.min.js"></script> + <script src="http://fb.me/JSXTransformer-0.5.0.js"></script> </head> <body> <div id="example"></div> diff --git a/docs/dom-differences.html b/docs/dom-differences.html index 7dccf0f7b7..e15a2d8fb4 100644 --- a/docs/dom-differences.html +++ b/docs/dom-differences.html @@ -162,6 +162,13 @@
  • +
  • + + Add-ons + + +
  • +
  • Examples diff --git a/docs/events.html b/docs/events.html index 1ae1717dea..94d9eb5492 100644 --- a/docs/events.html +++ b/docs/events.html @@ -162,6 +162,13 @@
  • +
  • + + Add-ons + + +
  • +
  • Examples diff --git a/docs/examples.html b/docs/examples.html index 5a0e1e6dd1..6596dd26b5 100644 --- a/docs/examples.html +++ b/docs/examples.html @@ -162,6 +162,13 @@
  • +
  • + + Add-ons + + +
  • +
  • Examples @@ -231,7 +238,7 @@

    Sample Code

  • diff --git a/docs/top-level-api.html b/docs/top-level-api.html index 8acc8e0d2b..eb7932f5d2 100644 --- a/docs/top-level-api.html +++ b/docs/top-level-api.html @@ -162,6 +162,13 @@ +
  • + + Add-ons + + +
  • +
  • Examples diff --git a/docs/tutorial.html b/docs/tutorial.html index 97c8309554..d7349b7b5b 100644 --- a/docs/tutorial.html +++ b/docs/tutorial.html @@ -162,6 +162,13 @@
  • +
  • + + Add-ons + + +
  • +
  • Examples @@ -252,8 +259,8 @@ <html> <head> <title>Hello React</title> - <script src="http://fb.me/react-0.4.1.js"></script> - <script src="http://fb.me/JSXTransformer-0.4.1.js"></script> + <script src="http://fb.me/react-0.5.0.js"></script> + <script src="http://fb.me/JSXTransformer-0.5.0.js"></script> </head> <body> <div id="content"></div> @@ -393,8 +400,8 @@
    <!-- template.html -->
     <head>
       <title>Hello React</title>
    -  <script src="http://fb.me/react-0.4.1.js"></script>
    -  <script src="http://fb.me/JSXTransformer-0.4.1.js"></script>
    +  <script src="http://fb.me/react-0.5.0.js"></script>
    +  <script src="http://fb.me/JSXTransformer-0.5.0.js"></script>
       <script src="http://cdnjs.cloudflare.com/ajax/libs/showdown/0.3.1/showdown.min.js"></script>
     </head>
     
    diff --git a/docs/why-react.html b/docs/why-react.html index b6932ad3ba..45388f5171 100644 --- a/docs/why-react.html +++ b/docs/why-react.html @@ -162,6 +162,13 @@
  • +
  • + + Add-ons + + +
  • +
  • Examples diff --git a/docs/working-with-the-browser.html b/docs/working-with-the-browser.html index 9e962b42a3..0351aa5272 100644 --- a/docs/working-with-the-browser.html +++ b/docs/working-with-the-browser.html @@ -162,6 +162,13 @@
  • +
  • + + Add-ons + + +
  • +
  • Examples diff --git a/downloads.html b/downloads.html index c163cb4a74..886981e87e 100644 --- a/downloads.html +++ b/downloads.html @@ -60,19 +60,19 @@ get started with React.

    -

    Individual Downloads

    React Core 0.4.1 (production)

    +

    Individual Downloads

    React Core 0.5.0 (production)

    The compressed, production version of React core

    -
    <script src="http://fb.me/react-0.4.1.min.js"></script>
    -

    React Core 0.4.1 (development)

    +
    <script src="http://fb.me/react-0.5.0.min.js"></script>
    +

    React Core 0.5.0 (development)

    The uncompressed, development version of React core with inline documentation.

    -
    <script src="http://fb.me/react-0.4.1.js"></script>
    -

    JSX Transform

    +
    <script src="http://fb.me/react-0.5.0.js"></script>
    +

    JSX Transform

    The JSX transformer used to support XML syntax in JavaScript.

    -
    <script src="http://fb.me/JSXTransformer-0.4.1.js"></script>
    +
    <script src="http://fb.me/JSXTransformer-0.5.0.js"></script>
     

    All scripts are also available via CDNJS.

    Bower

    $ bower install --save react
    diff --git a/downloads/react-0.5.0.zip b/downloads/react-0.5.0.zip
    new file mode 100644
    index 0000000000000000000000000000000000000000..09859382f255b16701f45a10c5f7fdf739b544b2
    GIT binary patch
    literal 627024
    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�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

    Fsa-qwoDi?&JgtNk2*`#S6 z&7K!w@z(9#ZED>32ooJW74xWF9H6CoA4|cQo+T0@-f8x8+`J|rXy(%09$=Hh!0@KZc=s^!cg)^`e zB8Y~DI)%ovui{EoB46qhr_O28wDq;)^PL;aXN`jJBFg-FTxuL^LAGBO&G3A7Mr10E za@8c&B^;N6DH`j&WV-13a6fj{iw{*$phK>;J4+K~pG+5aC!7H`;9_e2RXio^Q3?2Q z=E+_V8jY^BXf@+Lan1B83sWR_7z5xbw}$9K5wa{qX6-^%E%rGYE}>E+yd9`Tmi)3d zGQ{?~j^bn+UPrYv!|fB*8VZH2zmJVV?u^D%JR|`NuRDT&0lMOi*|h-heZ5{R&gfHd z3xNv?GJz)8owlbl#f%xIxWb5^9x);wcx;y6L|f)#0l_3*+eI1D^bP<6<{vJomIUH8 ze-$9b7(P>e8;{m^B3_D5<`ac-^4J5`5@E}_&}r?yYmo;P{pCWbiG`vG1wH(3K{+$u zhdDXk84_>T@vu#L%e<(DH5eun*TcN@8Qhw2C8k#GSg(0^z#;$>TP*}O=s28P!Q@6< z9sSbWo6xmBAOTq62T^uxx(_X5Otsb9Byw`{Cm_JouG8pUtV$^m44KTv z5bN(26J#itNJxn3jk`V`k1td2%&ZQ~)B+w`3L>llviqaIk?F^F;~5bA`B|f|1MrEA zDy&6E)29D03FiTuH^*7h?!KAs%PkV8dhPir-jDgP@3 zV2V{T*SJIrRtZn9w_NTFG9)ICI%?jTv_!_4OksK@|42JkyS`SYE6R{-jXL(6z|O4g zq7g-=iYap56lPqG*`3OxTQkje8r!79Jg~Tz{^!I)^*hLrA2~T0y4RIS(3W zkZPlkWzo?6#I_qAgj=ZUJ%v$HsY9n)*DYbQ;_#lwJF#V0r=|KPXgzdeljDxG*`FPHaFj43*DEYR*@@Lt-yoNV;@ z!3Qf(z$ywrvZT%QO_p0`vhGO@MHtr7u1dM&JcK!qM*;Crl(9X-d9ex%U{#m_rl3>b@cbM#p(2sY=VepQt9T=Vs>@3_jGc8_H6H({^gFZ z#lnA8&7QrkJ}9=SRfqb@*6eIwRb|tF)04@$+p0|1%q{DzBJvdrE$Z;We~QExvS13r z&#m$m0!9YD`P{#vM1iZgI=-&}cBAA1Gg8V?aebAdn@)x{Pj|yY^pA^>7J1l+1>*

    _ZJ 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

    h<4JpFV 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 t=KIH3;jh3y?l6DWd3e9S0sQk0UqJ>6http://facebook.github.io/react + + React v0.5 + <p>This release is the result of several months of hard work from members of the team and the community. While there are no groundbreaking changes in core, we&#39;ve worked hard to improve performance and memory usage. We&#39;ve also worked hard to make sure we are being consistent in our usage of DOM properties.</p> + +<p>The biggest change you&#39;ll notice as a developer is that we no longer support <code>class</code> in JSX as a way to provide CSS classes. Since this prop was being converted to <code>className</code> at the transform step, it caused some confusion when trying to access it in composite components. As a result we decided to make our DOM properties mirror their counterparts in the JS DOM API. There are <a href="https://github.com/facebook/react/blob/master/src/dom/DefaultDOMPropertyConfig.js#L156">a few exceptions</a> where we deviate slightly in an attempt to be consistent internally.</p> + +<p>The other major change in v0.5 is that we&#39;ve added an additional build - <code>react-with-addons</code> - which adds support for some extras that we&#39;ve been working on including animations and two-way binding. <a href="/react/docs/addons.html">Read more about these addons in the docs</a>.</p> +<h2 id="thanks-to-our-community">Thanks to Our Community</h2> +<p>We added <em>22 new people</em> to the list of authors since we launched React v0.4.1 nearly 3 months ago. With a total of 48 names in our <code>AUTHORS</code> file, that means we&#39;ve nearly doubled the number of contributors in that time period. We&#39;ve seen the number of people contributing to discussion on IRC, mailing lists, Stack Overflow, and GitHub continue rising. We&#39;ve also had people tell us about talks they&#39;ve given in their local community about React.</p> + +<p>It&#39;s been awesome to see the things that people are building with React, and we can&#39;t wait to see what you come up with next!</p> +<h2 id="changelog">Changelog</h2><h3 id="react">React</h3> +<ul> +<li>Memory usage improvements - reduced allocations in core which will help with GC pauses</li> +<li>Performance improvements - in addition to speeding things up, we made some tweaks to stay out of slow path code in V8 and Nitro.</li> +<li>Standardized prop -&gt; DOM attribute process. This previously resulting in additional type checking and overhead as well as confusing cases for users. Now we will always convert your value to a string before inserting it into the DOM.</li> +<li>Support for Selection events.</li> +<li>Support for <a href="https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent">Composition events</a>.</li> +<li>Support for additional DOM properties (<code>charSet</code>, <code>content</code>, <code>form</code>, <code>httpEquiv</code>, <code>rowSpan</code>, <code>autoCapitalize</code>).</li> +<li>Support for additional SVG properties (<code>rx</code>, <code>ry</code>).</li> +<li>Support for using <code>getInitialState</code> and <code>getDefaultProps</code> in mixins.</li> +<li>Support mounting into iframes.</li> +<li>Bug fixes for controlled form components.</li> +<li>Bug fixes for SVG element creation.</li> +<li>Added <code>React.version</code>.</li> +<li>Added <code>React.isValidClass</code> - Used to determine if a value is a valid component constructor.</li> +<li>Removed <code>React.autoBind</code> - This was deprecated in v0.4 and now properly removed.</li> +<li>Renamed <code>React.unmountAndReleaseReactRootNode</code> to <code>React.unmountComponentAtNode</code>.</li> +<li>Began laying down work for refined performance analysis.</li> +<li>Better support for server-side rendering - <a href="https://github.com/facebook/react-page">react-page</a> has helped improve the stability for server-side rendering.</li> +<li>Made it possible to use React in environments enforcing a strict <a href="https://developer.mozilla.org/en-US/docs/Security/CSP/Introducing_Content_Security_Policy">Content Security Policy</a>. This also makes it possible to use React to build Chrome extensions.</li> +</ul> +<h3 id="react-with-addons-new">React with Addons (New!)</h3> +<ul> +<li>Introduced a separate build with several &quot;addons&quot; which we think can help improve the React experience. We plan to deprecate this in the long-term, instead shipping each as standalone pieces. <a href="/react/docs/addons.html">Read more in the docs</a>.</li> +</ul> +<h3 id="jsx">JSX</h3> +<ul> +<li>No longer transform <code>class</code> to <code>className</code> as part of the transform! This is a breaking change - if you were using <code>class</code>, you <em>must</em> change this to <code>className</code> or your components will be visually broken.</li> +<li>Added warnings to the in-browser transformer to make it clear it is not intended for production use.</li> +<li>Improved compatibility for Windows</li> +<li>Improved support for maintaining line numbers when transforming.</li> +</ul> + + 2013-10-16T00:00:00-07:00 + http://facebook.github.io/react/blog/2013/10/16/react-v0.5.0.html + http://facebook.github.io/react/blog/2013/10/16/react-v0.5.0.html + + Community Round-up #9 <p>We organized a React hackathon last week-end in the Facebook Seattle office. 50 people, grouped into 15 teams, came to hack for a day on React. It was a lot of fun and we&#39;ll probably organize more in the future.</p> @@ -542,55 +591,5 @@ If you were using React without JSX previously, your code should still work.< http://facebook.github.io/react/blog/2013/07/17/react-v0-4-0.html - - New in React v0.4: Prop Validation and Default Values - <p>Many of the questions we got following the public launch of React revolved around <code>props</code>, specifically that people wanted to do validation and to make sure their components had sensible defaults.</p> -<h2 id="validation">Validation</h2> -<p>Oftentimes you want to validate your <code>props</code> before you use them. Perhaps you want to ensure they are a specific type. Or maybe you want to restrict your prop to specific values. Or maybe you want to make a specific prop required. This was always possible — you could have written validations in your <code>render</code> or <code>componentWillReceiveProps</code> functions, but that gets clunky fast.</p> - -<p>React v0.4 will provide a nice easy way for you to use built-in validators, or to even write your own.</p> -<div class="highlight"><pre><code class="js language-js" data-lang="js"><span class="nx">React</span><span class="p">.</span><span class="nx">createClass</span><span class="p">({</span> - <span class="nx">propTypes</span><span class="o">:</span> <span class="p">{</span> - <span class="c1">// An optional string prop named &quot;description&quot;.</span> - <span class="nx">description</span><span class="o">:</span> <span class="nx">React</span><span class="p">.</span><span class="nx">PropTypes</span><span class="p">.</span><span class="nx">string</span><span class="p">,</span> - - <span class="c1">// A required enum prop named &quot;category&quot;.</span> - <span class="nx">category</span><span class="o">:</span> <span class="nx">React</span><span class="p">.</span><span class="nx">PropTypes</span><span class="p">.</span><span class="nx">oneOf</span><span class="p">([</span><span class="s1">&#39;News&#39;</span><span class="p">,</span><span class="s1">&#39;Photos&#39;</span><span class="p">]).</span><span class="nx">isRequired</span><span class="p">,</span> - - <span class="c1">// A prop named &quot;dialog&quot; that requires an instance of Dialog.</span> - <span class="nx">dialog</span><span class="o">:</span> <span class="nx">React</span><span class="p">.</span><span class="nx">PropTypes</span><span class="p">.</span><span class="nx">instanceOf</span><span class="p">(</span><span class="nx">Dialog</span><span class="p">).</span><span class="nx">isRequired</span> - <span class="p">},</span> - <span class="p">...</span> -<span class="p">});</span> -</code></pre></div><h2 id="default-values">Default Values</h2> -<p>One common pattern we&#39;ve seen with our React code is to do something like this:</p> -<div class="highlight"><pre><code class="js language-js" data-lang="js"><span class="nx">React</span><span class="p">.</span><span class="nx">createClass</span><span class="p">({</span> - <span class="nx">render</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">value</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">props</span><span class="p">.</span><span class="nx">value</span> <span class="o">||</span> <span class="s1">&#39;default value&#39;</span><span class="p">;</span> - <span class="k">return</span> <span class="o">&lt;</span><span class="nx">div</span><span class="o">&gt;</span><span class="p">{</span><span class="nx">value</span><span class="p">}</span><span class="o">&lt;</span><span class="err">/div&gt;;</span> - <span class="p">}</span> -<span class="p">});</span> -</code></pre></div> -<p>Do this for a few <code>props</code> across a few components and now you have a lot of redundant code. Starting with React v0.4, you can provide default values in a declarative way:</p> -<div class="highlight"><pre><code class="js language-js" data-lang="js"><span class="nx">React</span><span class="p">.</span><span class="nx">createClass</span><span class="p">({</span> - <span class="nx">getDefaultProps</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> - <span class="k">return</span> <span class="p">{</span> - <span class="nx">value</span><span class="o">:</span> <span class="s1">&#39;default value&#39;</span> - <span class="p">};</span> - <span class="p">}</span> - <span class="p">...</span> -<span class="p">});</span> -</code></pre></div> -<p>We will use the cached result of this function before each <code>render</code>. We also perform all validations before each <code>render</code> to ensure that you have all of the data you need in the right form before you try to use it.</p> - -<hr> - -<p>Both of these features are entirely optional. We&#39;ve found them to be increasingly valuable at Facebook as our applications grow and evolve, and we hope others find them useful as well.</p> - - 2013-07-11T00:00:00-07:00 - http://facebook.github.io/react/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html - http://facebook.github.io/react/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html - - diff --git a/index.html b/index.html index 14b6c78438..a3fa695116 100644 --- a/index.html +++ b/index.html @@ -60,7 +60,7 @@

    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

    @@ -146,7 +146,7 @@

    diff --git a/js/JSXTransformer.js b/js/JSXTransformer.js index c02587f8ec..fdb470c851 100644 --- a/js/JSXTransformer.js +++ b/js/JSXTransformer.js @@ -1,43 +1,249 @@ /** - * JSXTransformer v0.4.1 + * JSXTransformer v0.5.0 */ -(function(e){if("function"==typeof bootstrap)bootstrap("jsxtransformer",e);else if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else if("undefined"!=typeof ses){if(!ses.ok())return;ses.makeJSXTransformer=e}else"undefined"!=typeof window?window.JSXTransformer=e():global.JSXTransformer=e()})(function(){var define,ses,bootstrap,module,exports; -return (function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s 0) { - s = this.chars[i % 62] + s - i = Math.floor(i/62) - } - return s - }; - my.decode = function(a,b,c,d){ - for ( - b = c = ( - a === (/\W|_|^$/.test(a += "") || a) - ) - 1; - d = a.charCodeAt(c++); - ) - b = b * 62 + d - [, 48, 29, 87][d >> 5]; - return b - }; - return my; -}({})); +// +// The shims in this file are not fully implemented shims for the ES5 +// features, but do work for the particular usecases there is in +// the other modules. +// -module.exports = Base62 -},{}],2:[function(require,module,exports){ -(function(process){function filter (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - if (fn(xs[i], i, xs)) res.push(xs[i]); - } - return res; +var toString = Object.prototype.toString; +var hasOwnProperty = Object.prototype.hasOwnProperty; + +// Array.isArray is supported in IE9 +function isArray(xs) { + return toString.call(xs) === '[object Array]'; } +exports.isArray = typeof Array.isArray === 'function' ? Array.isArray : isArray; + +// Array.prototype.indexOf is supported in IE9 +exports.indexOf = function indexOf(xs, x) { + if (xs.indexOf) return xs.indexOf(x); + for (var i = 0; i < xs.length; i++) { + if (x === xs[i]) return i; + } + return -1; +}; + +// Array.prototype.filter is supported in IE9 +exports.filter = function filter(xs, fn) { + if (xs.filter) return xs.filter(fn); + var res = []; + for (var i = 0; i < xs.length; i++) { + if (fn(xs[i], i, xs)) res.push(xs[i]); + } + return res; +}; + +// Array.prototype.forEach is supported in IE9 +exports.forEach = function forEach(xs, fn, self) { + if (xs.forEach) return xs.forEach(fn, self); + for (var i = 0; i < xs.length; i++) { + fn.call(self, xs[i], i, xs); + } +}; + +// Array.prototype.map is supported in IE9 +exports.map = function map(xs, fn) { + if (xs.map) return xs.map(fn); + var out = new Array(xs.length); + for (var i = 0; i < xs.length; i++) { + out[i] = fn(xs[i], i, xs); + } + return out; +}; + +// Array.prototype.reduce is supported in IE9 +exports.reduce = function reduce(array, callback, opt_initialValue) { + if (array.reduce) return array.reduce(callback, opt_initialValue); + var value, isValueSet = false; + + if (2 < arguments.length) { + value = opt_initialValue; + isValueSet = true; + } + for (var i = 0, l = array.length; l > i; ++i) { + if (array.hasOwnProperty(i)) { + if (isValueSet) { + value = callback(value, array[i], i, array); + } + else { + value = array[i]; + isValueSet = true; + } + } + } + + return value; +}; + +// String.prototype.substr - negative index don't work in IE8 +if ('ab'.substr(-1) !== 'b') { + exports.substr = function (str, start, length) { + // did we get a negative start, calculate how much it is from the beginning of the string + if (start < 0) start = str.length + start; + + // call the original function + return str.substr(start, length); + }; +} else { + exports.substr = function (str, start, length) { + return str.substr(start, length); + }; +} + +// String.prototype.trim is supported in IE9 +exports.trim = function (str) { + if (str.trim) return str.trim(); + return str.replace(/^\s+|\s+$/g, ''); +}; + +// Function.prototype.bind is supported in IE9 +exports.bind = function () { + var args = Array.prototype.slice.call(arguments); + var fn = args.shift(); + if (fn.bind) return fn.bind.apply(fn, args); + var self = args.shift(); + return function () { + fn.apply(self, args.concat([Array.prototype.slice.call(arguments)])); + }; +}; + +// Object.create is supported in IE9 +function create(prototype, properties) { + var object; + if (prototype === null) { + object = { '__proto__' : null }; + } + else { + if (typeof prototype !== 'object') { + throw new TypeError( + 'typeof prototype[' + (typeof prototype) + '] != \'object\'' + ); + } + var Type = function () {}; + Type.prototype = prototype; + object = new Type(); + object.__proto__ = prototype; + } + if (typeof properties !== 'undefined' && Object.defineProperties) { + Object.defineProperties(object, properties); + } + return object; +} +exports.create = typeof Object.create === 'function' ? Object.create : create; + +// Object.keys and Object.getOwnPropertyNames is supported in IE9 however +// they do show a description and number property on Error objects +function notObject(object) { + return ((typeof object != "object" && typeof object != "function") || object === null); +} + +function keysShim(object) { + if (notObject(object)) { + throw new TypeError("Object.keys called on a non-object"); + } + + var result = []; + for (var name in object) { + if (hasOwnProperty.call(object, name)) { + result.push(name); + } + } + return result; +} + +// getOwnPropertyNames is almost the same as Object.keys one key feature +// is that it returns hidden properties, since that can't be implemented, +// this feature gets reduced so it just shows the length property on arrays +function propertyShim(object) { + if (notObject(object)) { + throw new TypeError("Object.getOwnPropertyNames called on a non-object"); + } + + var result = keysShim(object); + if (exports.isArray(object) && exports.indexOf(object, 'length') === -1) { + result.push('length'); + } + return result; +} + +var keys = typeof Object.keys === 'function' ? Object.keys : keysShim; +var getOwnPropertyNames = typeof Object.getOwnPropertyNames === 'function' ? + Object.getOwnPropertyNames : propertyShim; + +if (new Error().hasOwnProperty('description')) { + var ERROR_PROPERTY_FILTER = function (obj, array) { + if (toString.call(obj) === '[object Error]') { + array = exports.filter(array, function (name) { + return name !== 'description' && name !== 'number' && name !== 'message'; + }); + } + return array; + }; + + exports.keys = function (object) { + return ERROR_PROPERTY_FILTER(object, keys(object)); + }; + exports.getOwnPropertyNames = function (object) { + return ERROR_PROPERTY_FILTER(object, getOwnPropertyNames(object)); + }; +} else { + exports.keys = keys; + exports.getOwnPropertyNames = getOwnPropertyNames; +} + +// Object.getOwnPropertyDescriptor - supported in IE8 but only on dom elements +function valueObject(value, key) { + return { value: value[key] }; +} + +if (typeof Object.getOwnPropertyDescriptor === 'function') { + try { + Object.getOwnPropertyDescriptor({'a': 1}, 'a'); + exports.getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + } catch (e) { + // IE8 dom element issue - use a try catch and default to valueObject + exports.getOwnPropertyDescriptor = function (value, key) { + try { + return Object.getOwnPropertyDescriptor(value, key); + } catch (e) { + return valueObject(value, key); + } + }; + } +} else { + exports.getOwnPropertyDescriptor = valueObject; +} + +},{}],2:[function(require,module,exports){ +var process=require("__browserify_process");// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var util = require('util'); +var shims = require('_shims'); // resolves . and .. elements in a path array with directory names there // must be no slashes, empty elements, or device names (c:\) in the array @@ -46,9 +252,9 @@ module.exports = Base62 function normalizeArray(parts, allowAboveRoot) { // if the path tries to go above the root, `up` ends up > 0 var up = 0; - for (var i = parts.length; i >= 0; i--) { + for (var i = parts.length - 1; i >= 0; i--) { var last = parts[i]; - if (last == '.') { + if (last === '.') { parts.splice(i, 1); } else if (last === '..') { parts.splice(i, 1); @@ -69,35 +275,39 @@ function normalizeArray(parts, allowAboveRoot) { return parts; } -// Regex to split a filename into [*, dir, basename, ext] -// posix version -var splitPathRe = /^(.+\/(?!$)|\/)?((?:.+?)?(\.[^.]*)?)$/; +// Split a filename into [root, dir, basename, ext], unix version +// 'root' is just a slash, or nothing. +var splitPathRe = + /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; +var splitPath = function(filename) { + return splitPathRe.exec(filename).slice(1); +}; // path.resolve([from ...], to) // posix version exports.resolve = function() { -var resolvedPath = '', - resolvedAbsolute = false; + var resolvedPath = '', + resolvedAbsolute = false; -for (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) - ? arguments[i] - : process.cwd(); + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : process.cwd(); - // Skip empty and invalid entries - if (typeof path !== 'string' || !path) { - continue; + // Skip empty and invalid entries + if (!util.isString(path)) { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + continue; + } + + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; } - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charAt(0) === '/'; -} + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) -// At this point the path should be resolved to a full absolute path, but -// handle relative paths to be safe (might happen when process.cwd() fails) - -// Normalize the path -resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { + // Normalize the path + resolvedPath = normalizeArray(shims.filter(resolvedPath.split('/'), function(p) { return !!p; }), !resolvedAbsolute).join('/'); @@ -107,11 +317,11 @@ resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { // path.normalize(path) // posix version exports.normalize = function(path) { -var isAbsolute = path.charAt(0) === '/', - trailingSlash = path.slice(-1) === '/'; + var isAbsolute = exports.isAbsolute(path), + trailingSlash = shims.substr(path, -1) === '/'; -// Normalize the path -path = normalizeArray(filter(path.split('/'), function(p) { + // Normalize the path + path = normalizeArray(shims.filter(path.split('/'), function(p) { return !!p; }), !isAbsolute).join('/'); @@ -121,51 +331,29 @@ path = normalizeArray(filter(path.split('/'), function(p) { if (path && trailingSlash) { path += '/'; } - + return (isAbsolute ? '/' : '') + path; }; +// posix version +exports.isAbsolute = function(path) { + return path.charAt(0) === '/'; +}; // posix version exports.join = function() { var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - return p && typeof p === 'string'; + return exports.normalize(shims.filter(paths, function(p, index) { + if (!util.isString(p)) { + throw new TypeError('Arguments to path.join must be strings'); + } + return p; }).join('/')); }; -exports.dirname = function(path) { - var dir = splitPathRe.exec(path)[1] || ''; - var isWindows = false; - if (!dir) { - // No dirname - return '.'; - } else if (dir.length === 1 || - (isWindows && dir.length <= 3 && dir.charAt(1) === ':')) { - // It is just a slash or a drive letter with a slash - return dir; - } else { - // It is a full dirname, strip trailing slash - return dir.substring(0, dir.length - 1); - } -}; - - -exports.basename = function(path, ext) { - var f = splitPathRe.exec(path)[2] || ''; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - - -exports.extname = function(path) { - return splitPathRe.exec(path)[3] || ''; -}; - +// path.relative(from, to) +// posix version exports.relative = function(from, to) { from = exports.resolve(from).substr(1); to = exports.resolve(to).substr(1); @@ -207,8 +395,2964 @@ exports.relative = function(from, to) { return outputParts.join('/'); }; -})(require("__browserify_process")) -},{"__browserify_process":3}],3:[function(require,module,exports){ +exports.sep = '/'; +exports.delimiter = ':'; + +exports.dirname = function(path) { + var result = splitPath(path), + root = result[0], + dir = result[1]; + + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + + return root + dir; +}; + + +exports.basename = function(path, ext) { + var f = splitPath(path)[2]; + // TODO: make this comparison case-insensitive on windows? + if (ext && f.substr(-1 * ext.length) === ext) { + f = f.substr(0, f.length - ext.length); + } + return f; +}; + + +exports.extname = function(path) { + return splitPath(path)[3]; +}; + +},{"__browserify_process":5,"_shims":1,"util":3}],3:[function(require,module,exports){ +var Buffer=require("__browserify_Buffer").Buffer;// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var shims = require('_shims'); + +var formatRegExp = /%[sdj%]/g; +exports.format = function(f) { + if (!isString(f)) { + var objects = []; + for (var i = 0; i < arguments.length; i++) { + objects.push(inspect(arguments[i])); + } + return objects.join(' '); + } + + var i = 1; + var args = arguments; + var len = args.length; + var str = String(f).replace(formatRegExp, function(x) { + if (x === '%%') return '%'; + if (i >= len) return x; + switch (x) { + case '%s': return String(args[i++]); + case '%d': return Number(args[i++]); + case '%j': + try { + return JSON.stringify(args[i++]); + } catch (_) { + return '[Circular]'; + } + default: + return x; + } + }); + for (var x = args[i]; i < len; x = args[++i]) { + if (isNull(x) || !isObject(x)) { + str += ' ' + x; + } else { + str += ' ' + inspect(x); + } + } + return str; +}; + +/** + * Echos the value of a value. Trys to print the value out + * in the best way possible given the different types. + * + * @param {Object} obj The object to print out. + * @param {Object} opts Optional options object that alters the output. + */ +/* legacy: obj, showHidden, depth, colors*/ +function inspect(obj, opts) { + // default options + var ctx = { + seen: [], + stylize: stylizeNoColor + }; + // legacy... + if (arguments.length >= 3) ctx.depth = arguments[2]; + if (arguments.length >= 4) ctx.colors = arguments[3]; + if (isBoolean(opts)) { + // legacy... + ctx.showHidden = opts; + } else if (opts) { + // got an "options" object + exports._extend(ctx, opts); + } + // set default options + if (isUndefined(ctx.showHidden)) ctx.showHidden = false; + if (isUndefined(ctx.depth)) ctx.depth = 2; + if (isUndefined(ctx.colors)) ctx.colors = false; + if (isUndefined(ctx.customInspect)) ctx.customInspect = true; + if (ctx.colors) ctx.stylize = stylizeWithColor; + return formatValue(ctx, obj, ctx.depth); +} +exports.inspect = inspect; + + +// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics +inspect.colors = { + 'bold' : [1, 22], + 'italic' : [3, 23], + 'underline' : [4, 24], + 'inverse' : [7, 27], + 'white' : [37, 39], + 'grey' : [90, 39], + 'black' : [30, 39], + 'blue' : [34, 39], + 'cyan' : [36, 39], + 'green' : [32, 39], + 'magenta' : [35, 39], + 'red' : [31, 39], + 'yellow' : [33, 39] +}; + +// Don't use 'blue' not visible on cmd.exe +inspect.styles = { + 'special': 'cyan', + 'number': 'yellow', + 'boolean': 'yellow', + 'undefined': 'grey', + 'null': 'bold', + 'string': 'green', + 'date': 'magenta', + // "name": intentionally not styling + 'regexp': 'red' +}; + + +function stylizeWithColor(str, styleType) { + var style = inspect.styles[styleType]; + + if (style) { + return '\u001b[' + inspect.colors[style][0] + 'm' + str + + '\u001b[' + inspect.colors[style][1] + 'm'; + } else { + return str; + } +} + + +function stylizeNoColor(str, styleType) { + return str; +} + + +function arrayToHash(array) { + var hash = {}; + + shims.forEach(array, function(val, idx) { + hash[val] = true; + }); + + return hash; +} + + +function formatValue(ctx, value, recurseTimes) { + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it + if (ctx.customInspect && + value && + isFunction(value.inspect) && + // Filter out the util module, it's inspect function is special + value.inspect !== exports.inspect && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { + var ret = value.inspect(recurseTimes); + if (!isString(ret)) { + ret = formatValue(ctx, ret, recurseTimes); + } + return ret; + } + + // Primitive types cannot have properties + var primitive = formatPrimitive(ctx, value); + if (primitive) { + return primitive; + } + + // Look up the keys of the object. + var keys = shims.keys(value); + var visibleKeys = arrayToHash(keys); + + if (ctx.showHidden) { + keys = shims.getOwnPropertyNames(value); + } + + // Some type of object without properties can be shortcutted. + if (keys.length === 0) { + if (isFunction(value)) { + var name = value.name ? ': ' + value.name : ''; + return ctx.stylize('[Function' + name + ']', 'special'); + } + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } + if (isDate(value)) { + return ctx.stylize(Date.prototype.toString.call(value), 'date'); + } + if (isError(value)) { + return formatError(value); + } + } + + var base = '', array = false, braces = ['{', '}']; + + // Make Array say that they are Array + if (isArray(value)) { + array = true; + braces = ['[', ']']; + } + + // Make functions say that they are functions + if (isFunction(value)) { + var n = value.name ? ': ' + value.name : ''; + base = ' [Function' + n + ']'; + } + + // Make RegExps say that they are RegExps + if (isRegExp(value)) { + base = ' ' + RegExp.prototype.toString.call(value); + } + + // Make dates with properties first say the date + if (isDate(value)) { + base = ' ' + Date.prototype.toUTCString.call(value); + } + + // Make error with message first say the error + if (isError(value)) { + base = ' ' + formatError(value); + } + + if (keys.length === 0 && (!array || value.length == 0)) { + return braces[0] + base + braces[1]; + } + + if (recurseTimes < 0) { + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } else { + return ctx.stylize('[Object]', 'special'); + } + } + + ctx.seen.push(value); + + var output; + if (array) { + output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); + } else { + output = keys.map(function(key) { + return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); + }); + } + + ctx.seen.pop(); + + return reduceToSingleString(output, base, braces); +} + + +function formatPrimitive(ctx, value) { + if (isUndefined(value)) + return ctx.stylize('undefined', 'undefined'); + if (isString(value)) { + var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + '\''; + return ctx.stylize(simple, 'string'); + } + if (isNumber(value)) + return ctx.stylize('' + value, 'number'); + if (isBoolean(value)) + return ctx.stylize('' + value, 'boolean'); + // For some reason typeof null is "object", so special case here. + if (isNull(value)) + return ctx.stylize('null', 'null'); +} + + +function formatError(value) { + return '[' + Error.prototype.toString.call(value) + ']'; +} + + +function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { + var output = []; + for (var i = 0, l = value.length; i < l; ++i) { + if (hasOwnProperty(value, String(i))) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + String(i), true)); + } else { + output.push(''); + } + } + + shims.forEach(keys, function(key) { + if (!key.match(/^\d+$/)) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + key, true)); + } + }); + return output; +} + + +function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { + var name, str, desc; + desc = shims.getOwnPropertyDescriptor(value, key) || { value: value[key] }; + if (desc.get) { + if (desc.set) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else { + if (desc.set) { + str = ctx.stylize('[Setter]', 'special'); + } + } + + if (!hasOwnProperty(visibleKeys, key)) { + name = '[' + key + ']'; + } + if (!str) { + if (shims.indexOf(ctx.seen, desc.value) < 0) { + if (isNull(recurseTimes)) { + str = formatValue(ctx, desc.value, null); + } else { + str = formatValue(ctx, desc.value, recurseTimes - 1); + } + if (str.indexOf('\n') > -1) { + if (array) { + str = str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n').substr(2); + } else { + str = '\n' + str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n'); + } + } + } else { + str = ctx.stylize('[Circular]', 'special'); + } + } + if (isUndefined(name)) { + if (array && key.match(/^\d+$/)) { + return str; + } + name = JSON.stringify('' + key); + if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { + name = name.substr(1, name.length - 2); + name = ctx.stylize(name, 'name'); + } else { + name = name.replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'"); + name = ctx.stylize(name, 'string'); + } + } + + return name + ': ' + str; +} + + +function reduceToSingleString(output, base, braces) { + var numLinesEst = 0; + var length = shims.reduce(output, function(prev, cur) { + numLinesEst++; + if (cur.indexOf('\n') >= 0) numLinesEst++; + return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; + }, 0); + + if (length > 60) { + return braces[0] + + (base === '' ? '' : base + '\n ') + + ' ' + + output.join(',\n ') + + ' ' + + braces[1]; + } + + return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; +} + + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. +function isArray(ar) { + return shims.isArray(ar); +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return isObject(re) && objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg; +} +exports.isObject = isObject; + +function isDate(d) { + return isObject(d) && objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return isObject(e) && objectToString(e) === '[object Error]'; +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; + +function isBuffer(arg) { + return arg instanceof Buffer; +} +exports.isBuffer = isBuffer; + +function objectToString(o) { + return Object.prototype.toString.call(o); +} + + +function pad(n) { + return n < 10 ? '0' + n.toString(10) : n.toString(10); +} + + +var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec']; + +// 26 Feb 16:19:34 +function timestamp() { + var d = new Date(); + var time = [pad(d.getHours()), + pad(d.getMinutes()), + pad(d.getSeconds())].join(':'); + return [d.getDate(), months[d.getMonth()], time].join(' '); +} + + +// log is just a thin wrapper to console.log that prepends a timestamp +exports.log = function() { + console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); +}; + + +/** + * Inherit the prototype methods from one constructor into another. + * + * The Function.prototype.inherits from lang.js rewritten as a standalone + * function (not on Function.prototype). NOTE: If this file is to be loaded + * during bootstrapping this function needs to be rewritten using some native + * functions as prototype setup using normal JavaScript does not work as + * expected during bootstrapping (see mirror.js in r114903). + * + * @param {function} ctor Constructor function which needs to inherit the + * prototype. + * @param {function} superCtor Constructor function to inherit prototype from. + */ +exports.inherits = function(ctor, superCtor) { + ctor.super_ = superCtor; + ctor.prototype = shims.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); +}; + +exports._extend = function(origin, add) { + // Don't do anything if add isn't an object + if (!add || !isObject(add)) return origin; + + var keys = shims.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; + } + return origin; +}; + +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +},{"__browserify_Buffer":4,"_shims":1}],4:[function(require,module,exports){ +require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o> 1, + nBits = -7, + i = isBE ? 0 : (nBytes - 1), + d = isBE ? 1 : -1, + s = buffer[offset + i]; + + i += d; + + e = s & ((1 << (-nBits)) - 1); + s >>= (-nBits); + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8); + + m = e & ((1 << (-nBits)) - 1); + e >>= (-nBits); + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8); + + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity); + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); +}; + +exports.writeIEEE754 = function(buffer, value, offset, isBE, mLen, nBytes) { + var e, m, c, + eLen = nBytes * 8 - mLen - 1, + eMax = (1 << eLen) - 1, + eBias = eMax >> 1, + rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0), + i = isBE ? (nBytes - 1) : 0, + d = isBE ? -1 : 1, + s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; + + value = Math.abs(value); + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8); + + e = (e << mLen) | m; + eLen += mLen; + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8); + + buffer[offset + i - d] |= s * 128; +}; + +},{}],"q9TxCC":[function(require,module,exports){ +var assert; +exports.Buffer = Buffer; +exports.SlowBuffer = Buffer; +Buffer.poolSize = 8192; +exports.INSPECT_MAX_BYTES = 50; + +function stringtrim(str) { + if (str.trim) return str.trim(); + return str.replace(/^\s+|\s+$/g, ''); +} + +function Buffer(subject, encoding, offset) { + if(!assert) assert= require('assert'); + if (!(this instanceof Buffer)) { + return new Buffer(subject, encoding, offset); + } + this.parent = this; + this.offset = 0; + + // Work-around: node's base64 implementation + // allows for non-padded strings while base64-js + // does not.. + if (encoding == "base64" && typeof subject == "string") { + subject = stringtrim(subject); + while (subject.length % 4 != 0) { + subject = subject + "="; + } + } + + var type; + + // Are we slicing? + if (typeof offset === 'number') { + this.length = coerce(encoding); + // slicing works, with limitations (no parent tracking/update) + // check https://github.com/toots/buffer-browserify/issues/19 + for (var i = 0; i < this.length; i++) { + this[i] = subject.get(i+offset); + } + } else { + // Find the length + switch (type = typeof subject) { + case 'number': + this.length = coerce(subject); + break; + + case 'string': + this.length = Buffer.byteLength(subject, encoding); + break; + + case 'object': // Assume object is an array + this.length = coerce(subject.length); + break; + + default: + throw new Error('First argument needs to be a number, ' + + 'array or string.'); + } + + // Treat array-ish objects as a byte array. + if (isArrayIsh(subject)) { + for (var i = 0; i < this.length; i++) { + if (subject instanceof Buffer) { + this[i] = subject.readUInt8(i); + } + else { + this[i] = subject[i]; + } + } + } else if (type == 'string') { + // We are a string + this.length = this.write(subject, 0, encoding); + } else if (type === 'number') { + for (var i = 0; i < this.length; i++) { + this[i] = 0; + } + } + } +} + +Buffer.prototype.get = function get(i) { + if (i < 0 || i >= this.length) throw new Error('oob'); + return this[i]; +}; + +Buffer.prototype.set = function set(i, v) { + if (i < 0 || i >= this.length) throw new Error('oob'); + return this[i] = v; +}; + +Buffer.byteLength = function (str, encoding) { + switch (encoding || "utf8") { + case 'hex': + return str.length / 2; + + case 'utf8': + case 'utf-8': + return utf8ToBytes(str).length; + + case 'ascii': + case 'binary': + return str.length; + + case 'base64': + return base64ToBytes(str).length; + + default: + throw new Error('Unknown encoding'); + } +}; + +Buffer.prototype.utf8Write = function (string, offset, length) { + var bytes, pos; + return Buffer._charsWritten = blitBuffer(utf8ToBytes(string), this, offset, length); +}; + +Buffer.prototype.asciiWrite = function (string, offset, length) { + var bytes, pos; + return Buffer._charsWritten = blitBuffer(asciiToBytes(string), this, offset, length); +}; + +Buffer.prototype.binaryWrite = Buffer.prototype.asciiWrite; + +Buffer.prototype.base64Write = function (string, offset, length) { + var bytes, pos; + return Buffer._charsWritten = blitBuffer(base64ToBytes(string), this, offset, length); +}; + +Buffer.prototype.base64Slice = function (start, end) { + var bytes = Array.prototype.slice.apply(this, arguments) + return require("base64-js").fromByteArray(bytes); +}; + +Buffer.prototype.utf8Slice = function () { + var bytes = Array.prototype.slice.apply(this, arguments); + var res = ""; + var tmp = ""; + var i = 0; + while (i < bytes.length) { + if (bytes[i] <= 0x7F) { + res += decodeUtf8Char(tmp) + String.fromCharCode(bytes[i]); + tmp = ""; + } else + tmp += "%" + bytes[i].toString(16); + + i++; + } + + return res + decodeUtf8Char(tmp); +} + +Buffer.prototype.asciiSlice = function () { + var bytes = Array.prototype.slice.apply(this, arguments); + var ret = ""; + for (var i = 0; i < bytes.length; i++) + ret += String.fromCharCode(bytes[i]); + return ret; +} + +Buffer.prototype.binarySlice = Buffer.prototype.asciiSlice; + +Buffer.prototype.inspect = function() { + var out = [], + len = this.length; + for (var i = 0; i < len; i++) { + out[i] = toHex(this[i]); + if (i == exports.INSPECT_MAX_BYTES) { + out[i + 1] = '...'; + break; + } + } + return ''; +}; + + +Buffer.prototype.hexSlice = function(start, end) { + var len = this.length; + + if (!start || start < 0) start = 0; + if (!end || end < 0 || end > len) end = len; + + var out = ''; + for (var i = start; i < end; i++) { + out += toHex(this[i]); + } + return out; +}; + + +Buffer.prototype.toString = function(encoding, start, end) { + encoding = String(encoding || 'utf8').toLowerCase(); + start = +start || 0; + if (typeof end == 'undefined') end = this.length; + + // Fastpath empty strings + if (+end == start) { + return ''; + } + + switch (encoding) { + case 'hex': + return this.hexSlice(start, end); + + case 'utf8': + case 'utf-8': + return this.utf8Slice(start, end); + + case 'ascii': + return this.asciiSlice(start, end); + + case 'binary': + return this.binarySlice(start, end); + + case 'base64': + return this.base64Slice(start, end); + + case 'ucs2': + case 'ucs-2': + return this.ucs2Slice(start, end); + + default: + throw new Error('Unknown encoding'); + } +}; + + +Buffer.prototype.hexWrite = function(string, offset, length) { + offset = +offset || 0; + var remaining = this.length - offset; + if (!length) { + length = remaining; + } else { + length = +length; + if (length > remaining) { + length = remaining; + } + } + + // must be an even number of digits + var strLen = string.length; + if (strLen % 2) { + throw new Error('Invalid hex string'); + } + if (length > strLen / 2) { + length = strLen / 2; + } + for (var i = 0; i < length; i++) { + var byte = parseInt(string.substr(i * 2, 2), 16); + if (isNaN(byte)) throw new Error('Invalid hex string'); + this[offset + i] = byte; + } + Buffer._charsWritten = i * 2; + return i; +}; + + +Buffer.prototype.write = function(string, offset, length, encoding) { + // Support both (string, offset, length, encoding) + // and the legacy (string, encoding, offset, length) + if (isFinite(offset)) { + if (!isFinite(length)) { + encoding = length; + length = undefined; + } + } else { // legacy + var swap = encoding; + encoding = offset; + offset = length; + length = swap; + } + + offset = +offset || 0; + var remaining = this.length - offset; + if (!length) { + length = remaining; + } else { + length = +length; + if (length > remaining) { + length = remaining; + } + } + encoding = String(encoding || 'utf8').toLowerCase(); + + switch (encoding) { + case 'hex': + return this.hexWrite(string, offset, length); + + case 'utf8': + case 'utf-8': + return this.utf8Write(string, offset, length); + + case 'ascii': + return this.asciiWrite(string, offset, length); + + case 'binary': + return this.binaryWrite(string, offset, length); + + case 'base64': + return this.base64Write(string, offset, length); + + case 'ucs2': + case 'ucs-2': + return this.ucs2Write(string, offset, length); + + default: + throw new Error('Unknown encoding'); + } +}; + +// slice(start, end) +function clamp(index, len, defaultValue) { + if (typeof index !== 'number') return defaultValue; + index = ~~index; // Coerce to integer. + if (index >= len) return len; + if (index >= 0) return index; + index += len; + if (index >= 0) return index; + return 0; +} + +Buffer.prototype.slice = function(start, end) { + var len = this.length; + start = clamp(start, len, 0); + end = clamp(end, len, len); + return new Buffer(this, end - start, +start); +}; + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function(target, target_start, start, end) { + var source = this; + start || (start = 0); + if (end === undefined || isNaN(end)) { + end = this.length; + } + target_start || (target_start = 0); + + if (end < start) throw new Error('sourceEnd < sourceStart'); + + // Copy 0 bytes; we're done + if (end === start) return 0; + if (target.length == 0 || source.length == 0) return 0; + + if (target_start < 0 || target_start >= target.length) { + throw new Error('targetStart out of bounds'); + } + + if (start < 0 || start >= source.length) { + throw new Error('sourceStart out of bounds'); + } + + if (end < 0 || end > source.length) { + throw new Error('sourceEnd out of bounds'); + } + + // Are we oob? + if (end > this.length) { + end = this.length; + } + + if (target.length - target_start < end - start) { + end = target.length - target_start + start; + } + + var temp = []; + for (var i=start; i= this.length) { + throw new Error('start out of bounds'); + } + + if (end < 0 || end > this.length) { + throw new Error('end out of bounds'); + } + + for (var i = start; i < end; i++) { + this[i] = value; + } +} + +// Static methods +Buffer.isBuffer = function isBuffer(b) { + return b instanceof Buffer || b instanceof Buffer; +}; + +Buffer.concat = function (list, totalLength) { + if (!isArray(list)) { + throw new Error("Usage: Buffer.concat(list, [totalLength])\n \ + list should be an Array."); + } + + if (list.length === 0) { + return new Buffer(0); + } else if (list.length === 1) { + return list[0]; + } + + if (typeof totalLength !== 'number') { + totalLength = 0; + for (var i = 0; i < list.length; i++) { + var buf = list[i]; + totalLength += buf.length; + } + } + + var buffer = new Buffer(totalLength); + var pos = 0; + for (var i = 0; i < list.length; i++) { + var buf = list[i]; + buf.copy(buffer, pos); + pos += buf.length; + } + return buffer; +}; + +Buffer.isEncoding = function(encoding) { + switch ((encoding + '').toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + case 'raw': + return true; + + default: + return false; + } +}; + +// helpers + +function coerce(length) { + // Coerce length to a number (possibly NaN), round up + // in case it's fractional (e.g. 123.456) then do a + // double negate to coerce a NaN to 0. Easy, right? + length = ~~Math.ceil(+length); + return length < 0 ? 0 : length; +} + +function isArray(subject) { + return (Array.isArray || + function(subject){ + return {}.toString.apply(subject) == '[object Array]' + }) + (subject) +} + +function isArrayIsh(subject) { + return isArray(subject) || Buffer.isBuffer(subject) || + subject && typeof subject === 'object' && + typeof subject.length === 'number'; +} + +function toHex(n) { + if (n < 16) return '0' + n.toString(16); + return n.toString(16); +} + +function utf8ToBytes(str) { + var byteArray = []; + for (var i = 0; i < str.length; i++) + if (str.charCodeAt(i) <= 0x7F) + byteArray.push(str.charCodeAt(i)); + else { + var h = encodeURIComponent(str.charAt(i)).substr(1).split('%'); + for (var j = 0; j < h.length; j++) + byteArray.push(parseInt(h[j], 16)); + } + + return byteArray; +} + +function asciiToBytes(str) { + var byteArray = [] + for (var i = 0; i < str.length; i++ ) + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push( str.charCodeAt(i) & 0xFF ); + + return byteArray; +} + +function base64ToBytes(str) { + return require("base64-js").toByteArray(str); +} + +function blitBuffer(src, dst, offset, length) { + var pos, i = 0; + while (i < length) { + if ((i+offset >= dst.length) || (i >= src.length)) + break; + + dst[i + offset] = src[i]; + i++; + } + return i; +} + +function decodeUtf8Char(str) { + try { + return decodeURIComponent(str); + } catch (err) { + return String.fromCharCode(0xFFFD); // UTF 8 invalid char + } +} + +// read/write bit-twiddling + +Buffer.prototype.readUInt8 = function(offset, noAssert) { + var buffer = this; + + if (!noAssert) { + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset < buffer.length, + 'Trying to read beyond buffer length'); + } + + if (offset >= buffer.length) return; + + return buffer[offset]; +}; + +function readUInt16(buffer, offset, isBigEndian, noAssert) { + var val = 0; + + + if (!noAssert) { + assert.ok(typeof (isBigEndian) === 'boolean', + 'missing or invalid endian'); + + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset + 1 < buffer.length, + 'Trying to read beyond buffer length'); + } + + if (offset >= buffer.length) return 0; + + if (isBigEndian) { + val = buffer[offset] << 8; + if (offset + 1 < buffer.length) { + val |= buffer[offset + 1]; + } + } else { + val = buffer[offset]; + if (offset + 1 < buffer.length) { + val |= buffer[offset + 1] << 8; + } + } + + return val; +} + +Buffer.prototype.readUInt16LE = function(offset, noAssert) { + return readUInt16(this, offset, false, noAssert); +}; + +Buffer.prototype.readUInt16BE = function(offset, noAssert) { + return readUInt16(this, offset, true, noAssert); +}; + +function readUInt32(buffer, offset, isBigEndian, noAssert) { + var val = 0; + + if (!noAssert) { + assert.ok(typeof (isBigEndian) === 'boolean', + 'missing or invalid endian'); + + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset + 3 < buffer.length, + 'Trying to read beyond buffer length'); + } + + if (offset >= buffer.length) return 0; + + if (isBigEndian) { + if (offset + 1 < buffer.length) + val = buffer[offset + 1] << 16; + if (offset + 2 < buffer.length) + val |= buffer[offset + 2] << 8; + if (offset + 3 < buffer.length) + val |= buffer[offset + 3]; + val = val + (buffer[offset] << 24 >>> 0); + } else { + if (offset + 2 < buffer.length) + val = buffer[offset + 2] << 16; + if (offset + 1 < buffer.length) + val |= buffer[offset + 1] << 8; + val |= buffer[offset]; + if (offset + 3 < buffer.length) + val = val + (buffer[offset + 3] << 24 >>> 0); + } + + return val; +} + +Buffer.prototype.readUInt32LE = function(offset, noAssert) { + return readUInt32(this, offset, false, noAssert); +}; + +Buffer.prototype.readUInt32BE = function(offset, noAssert) { + return readUInt32(this, offset, true, noAssert); +}; + + +/* + * Signed integer types, yay team! A reminder on how two's complement actually + * works. The first bit is the signed bit, i.e. tells us whether or not the + * number should be positive or negative. If the two's complement value is + * positive, then we're done, as it's equivalent to the unsigned representation. + * + * Now if the number is positive, you're pretty much done, you can just leverage + * the unsigned translations and return those. Unfortunately, negative numbers + * aren't quite that straightforward. + * + * At first glance, one might be inclined to use the traditional formula to + * translate binary numbers between the positive and negative values in two's + * complement. (Though it doesn't quite work for the most negative value) + * Mainly: + * - invert all the bits + * - add one to the result + * + * Of course, this doesn't quite work in Javascript. Take for example the value + * of -128. This could be represented in 16 bits (big-endian) as 0xff80. But of + * course, Javascript will do the following: + * + * > ~0xff80 + * -65409 + * + * Whoh there, Javascript, that's not quite right. But wait, according to + * Javascript that's perfectly correct. When Javascript ends up seeing the + * constant 0xff80, it has no notion that it is actually a signed number. It + * assumes that we've input the unsigned value 0xff80. Thus, when it does the + * binary negation, it casts it into a signed value, (positive 0xff80). Then + * when you perform binary negation on that, it turns it into a negative number. + * + * Instead, we're going to have to use the following general formula, that works + * in a rather Javascript friendly way. I'm glad we don't support this kind of + * weird numbering scheme in the kernel. + * + * (BIT-MAX - (unsigned)val + 1) * -1 + * + * The astute observer, may think that this doesn't make sense for 8-bit numbers + * (really it isn't necessary for them). However, when you get 16-bit numbers, + * you do. Let's go back to our prior example and see how this will look: + * + * (0xffff - 0xff80 + 1) * -1 + * (0x007f + 1) * -1 + * (0x0080) * -1 + */ +Buffer.prototype.readInt8 = function(offset, noAssert) { + var buffer = this; + var neg; + + if (!noAssert) { + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset < buffer.length, + 'Trying to read beyond buffer length'); + } + + if (offset >= buffer.length) return; + + neg = buffer[offset] & 0x80; + if (!neg) { + return (buffer[offset]); + } + + return ((0xff - buffer[offset] + 1) * -1); +}; + +function readInt16(buffer, offset, isBigEndian, noAssert) { + var neg, val; + + if (!noAssert) { + assert.ok(typeof (isBigEndian) === 'boolean', + 'missing or invalid endian'); + + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset + 1 < buffer.length, + 'Trying to read beyond buffer length'); + } + + val = readUInt16(buffer, offset, isBigEndian, noAssert); + neg = val & 0x8000; + if (!neg) { + return val; + } + + return (0xffff - val + 1) * -1; +} + +Buffer.prototype.readInt16LE = function(offset, noAssert) { + return readInt16(this, offset, false, noAssert); +}; + +Buffer.prototype.readInt16BE = function(offset, noAssert) { + return readInt16(this, offset, true, noAssert); +}; + +function readInt32(buffer, offset, isBigEndian, noAssert) { + var neg, val; + + if (!noAssert) { + assert.ok(typeof (isBigEndian) === 'boolean', + 'missing or invalid endian'); + + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset + 3 < buffer.length, + 'Trying to read beyond buffer length'); + } + + val = readUInt32(buffer, offset, isBigEndian, noAssert); + neg = val & 0x80000000; + if (!neg) { + return (val); + } + + return (0xffffffff - val + 1) * -1; +} + +Buffer.prototype.readInt32LE = function(offset, noAssert) { + return readInt32(this, offset, false, noAssert); +}; + +Buffer.prototype.readInt32BE = function(offset, noAssert) { + return readInt32(this, offset, true, noAssert); +}; + +function readFloat(buffer, offset, isBigEndian, noAssert) { + if (!noAssert) { + assert.ok(typeof (isBigEndian) === 'boolean', + 'missing or invalid endian'); + + assert.ok(offset + 3 < buffer.length, + 'Trying to read beyond buffer length'); + } + + return require('./buffer_ieee754').readIEEE754(buffer, offset, isBigEndian, + 23, 4); +} + +Buffer.prototype.readFloatLE = function(offset, noAssert) { + return readFloat(this, offset, false, noAssert); +}; + +Buffer.prototype.readFloatBE = function(offset, noAssert) { + return readFloat(this, offset, true, noAssert); +}; + +function readDouble(buffer, offset, isBigEndian, noAssert) { + if (!noAssert) { + assert.ok(typeof (isBigEndian) === 'boolean', + 'missing or invalid endian'); + + assert.ok(offset + 7 < buffer.length, + 'Trying to read beyond buffer length'); + } + + return require('./buffer_ieee754').readIEEE754(buffer, offset, isBigEndian, + 52, 8); +} + +Buffer.prototype.readDoubleLE = function(offset, noAssert) { + return readDouble(this, offset, false, noAssert); +}; + +Buffer.prototype.readDoubleBE = function(offset, noAssert) { + return readDouble(this, offset, true, noAssert); +}; + + +/* + * We have to make sure that the value is a valid integer. This means that it is + * non-negative. It has no fractional component and that it does not exceed the + * maximum allowed value. + * + * value The number to check for validity + * + * max The maximum value + */ +function verifuint(value, max) { + assert.ok(typeof (value) == 'number', + 'cannot write a non-number as a number'); + + assert.ok(value >= 0, + 'specified a negative value for writing an unsigned value'); + + assert.ok(value <= max, 'value is larger than maximum value for type'); + + assert.ok(Math.floor(value) === value, 'value has a fractional component'); +} + +Buffer.prototype.writeUInt8 = function(value, offset, noAssert) { + var buffer = this; + + if (!noAssert) { + assert.ok(value !== undefined && value !== null, + 'missing value'); + + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset < buffer.length, + 'trying to write beyond buffer length'); + + verifuint(value, 0xff); + } + + if (offset < buffer.length) { + buffer[offset] = value; + } +}; + +function writeUInt16(buffer, value, offset, isBigEndian, noAssert) { + if (!noAssert) { + assert.ok(value !== undefined && value !== null, + 'missing value'); + + assert.ok(typeof (isBigEndian) === 'boolean', + 'missing or invalid endian'); + + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset + 1 < buffer.length, + 'trying to write beyond buffer length'); + + verifuint(value, 0xffff); + } + + for (var i = 0; i < Math.min(buffer.length - offset, 2); i++) { + buffer[offset + i] = + (value & (0xff << (8 * (isBigEndian ? 1 - i : i)))) >>> + (isBigEndian ? 1 - i : i) * 8; + } + +} + +Buffer.prototype.writeUInt16LE = function(value, offset, noAssert) { + writeUInt16(this, value, offset, false, noAssert); +}; + +Buffer.prototype.writeUInt16BE = function(value, offset, noAssert) { + writeUInt16(this, value, offset, true, noAssert); +}; + +function writeUInt32(buffer, value, offset, isBigEndian, noAssert) { + if (!noAssert) { + assert.ok(value !== undefined && value !== null, + 'missing value'); + + assert.ok(typeof (isBigEndian) === 'boolean', + 'missing or invalid endian'); + + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset + 3 < buffer.length, + 'trying to write beyond buffer length'); + + verifuint(value, 0xffffffff); + } + + for (var i = 0; i < Math.min(buffer.length - offset, 4); i++) { + buffer[offset + i] = + (value >>> (isBigEndian ? 3 - i : i) * 8) & 0xff; + } +} + +Buffer.prototype.writeUInt32LE = function(value, offset, noAssert) { + writeUInt32(this, value, offset, false, noAssert); +}; + +Buffer.prototype.writeUInt32BE = function(value, offset, noAssert) { + writeUInt32(this, value, offset, true, noAssert); +}; + + +/* + * We now move onto our friends in the signed number category. Unlike unsigned + * numbers, we're going to have to worry a bit more about how we put values into + * arrays. Since we are only worrying about signed 32-bit values, we're in + * slightly better shape. Unfortunately, we really can't do our favorite binary + * & in this system. It really seems to do the wrong thing. For example: + * + * > -32 & 0xff + * 224 + * + * What's happening above is really: 0xe0 & 0xff = 0xe0. However, the results of + * this aren't treated as a signed number. Ultimately a bad thing. + * + * What we're going to want to do is basically create the unsigned equivalent of + * our representation and pass that off to the wuint* functions. To do that + * we're going to do the following: + * + * - if the value is positive + * we can pass it directly off to the equivalent wuint + * - if the value is negative + * we do the following computation: + * mb + val + 1, where + * mb is the maximum unsigned value in that byte size + * val is the Javascript negative integer + * + * + * As a concrete value, take -128. In signed 16 bits this would be 0xff80. If + * you do out the computations: + * + * 0xffff - 128 + 1 + * 0xffff - 127 + * 0xff80 + * + * You can then encode this value as the signed version. This is really rather + * hacky, but it should work and get the job done which is our goal here. + */ + +/* + * A series of checks to make sure we actually have a signed 32-bit number + */ +function verifsint(value, max, min) { + assert.ok(typeof (value) == 'number', + 'cannot write a non-number as a number'); + + assert.ok(value <= max, 'value larger than maximum allowed value'); + + assert.ok(value >= min, 'value smaller than minimum allowed value'); + + assert.ok(Math.floor(value) === value, 'value has a fractional component'); +} + +function verifIEEE754(value, max, min) { + assert.ok(typeof (value) == 'number', + 'cannot write a non-number as a number'); + + assert.ok(value <= max, 'value larger than maximum allowed value'); + + assert.ok(value >= min, 'value smaller than minimum allowed value'); +} + +Buffer.prototype.writeInt8 = function(value, offset, noAssert) { + var buffer = this; + + if (!noAssert) { + assert.ok(value !== undefined && value !== null, + 'missing value'); + + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset < buffer.length, + 'Trying to write beyond buffer length'); + + verifsint(value, 0x7f, -0x80); + } + + if (value >= 0) { + buffer.writeUInt8(value, offset, noAssert); + } else { + buffer.writeUInt8(0xff + value + 1, offset, noAssert); + } +}; + +function writeInt16(buffer, value, offset, isBigEndian, noAssert) { + if (!noAssert) { + assert.ok(value !== undefined && value !== null, + 'missing value'); + + assert.ok(typeof (isBigEndian) === 'boolean', + 'missing or invalid endian'); + + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset + 1 < buffer.length, + 'Trying to write beyond buffer length'); + + verifsint(value, 0x7fff, -0x8000); + } + + if (value >= 0) { + writeUInt16(buffer, value, offset, isBigEndian, noAssert); + } else { + writeUInt16(buffer, 0xffff + value + 1, offset, isBigEndian, noAssert); + } +} + +Buffer.prototype.writeInt16LE = function(value, offset, noAssert) { + writeInt16(this, value, offset, false, noAssert); +}; + +Buffer.prototype.writeInt16BE = function(value, offset, noAssert) { + writeInt16(this, value, offset, true, noAssert); +}; + +function writeInt32(buffer, value, offset, isBigEndian, noAssert) { + if (!noAssert) { + assert.ok(value !== undefined && value !== null, + 'missing value'); + + assert.ok(typeof (isBigEndian) === 'boolean', + 'missing or invalid endian'); + + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset + 3 < buffer.length, + 'Trying to write beyond buffer length'); + + verifsint(value, 0x7fffffff, -0x80000000); + } + + if (value >= 0) { + writeUInt32(buffer, value, offset, isBigEndian, noAssert); + } else { + writeUInt32(buffer, 0xffffffff + value + 1, offset, isBigEndian, noAssert); + } +} + +Buffer.prototype.writeInt32LE = function(value, offset, noAssert) { + writeInt32(this, value, offset, false, noAssert); +}; + +Buffer.prototype.writeInt32BE = function(value, offset, noAssert) { + writeInt32(this, value, offset, true, noAssert); +}; + +function writeFloat(buffer, value, offset, isBigEndian, noAssert) { + if (!noAssert) { + assert.ok(value !== undefined && value !== null, + 'missing value'); + + assert.ok(typeof (isBigEndian) === 'boolean', + 'missing or invalid endian'); + + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset + 3 < buffer.length, + 'Trying to write beyond buffer length'); + + verifIEEE754(value, 3.4028234663852886e+38, -3.4028234663852886e+38); + } + + require('./buffer_ieee754').writeIEEE754(buffer, value, offset, isBigEndian, + 23, 4); +} + +Buffer.prototype.writeFloatLE = function(value, offset, noAssert) { + writeFloat(this, value, offset, false, noAssert); +}; + +Buffer.prototype.writeFloatBE = function(value, offset, noAssert) { + writeFloat(this, value, offset, true, noAssert); +}; + +function writeDouble(buffer, value, offset, isBigEndian, noAssert) { + if (!noAssert) { + assert.ok(value !== undefined && value !== null, + 'missing value'); + + assert.ok(typeof (isBigEndian) === 'boolean', + 'missing or invalid endian'); + + assert.ok(offset !== undefined && offset !== null, + 'missing offset'); + + assert.ok(offset + 7 < buffer.length, + 'Trying to write beyond buffer length'); + + verifIEEE754(value, 1.7976931348623157E+308, -1.7976931348623157E+308); + } + + require('./buffer_ieee754').writeIEEE754(buffer, value, offset, isBigEndian, + 52, 8); +} + +Buffer.prototype.writeDoubleLE = function(value, offset, noAssert) { + writeDouble(this, value, offset, false, noAssert); +}; + +Buffer.prototype.writeDoubleBE = function(value, offset, noAssert) { + writeDouble(this, value, offset, true, noAssert); +}; + +},{"./buffer_ieee754":1,"assert":6,"base64-js":4}],"buffer-browserify":[function(require,module,exports){ +module.exports=require('q9TxCC'); +},{}],4:[function(require,module,exports){ +(function (exports) { + 'use strict'; + + var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + + function b64ToByteArray(b64) { + var i, j, l, tmp, placeHolders, arr; + + if (b64.length % 4 > 0) { + throw 'Invalid string. Length must be a multiple of 4'; + } + + // the number of equal signs (place holders) + // if there are two placeholders, than the two characters before it + // represent one byte + // if there is only one, then the three characters before it represent 2 bytes + // this is just a cheap hack to not do indexOf twice + placeHolders = b64.indexOf('='); + placeHolders = placeHolders > 0 ? b64.length - placeHolders : 0; + + // base64 is 4/3 + up to two characters of the original data + arr = [];//new Uint8Array(b64.length * 3 / 4 - placeHolders); + + // if there are placeholders, only get up to the last complete 4 chars + l = placeHolders > 0 ? b64.length - 4 : b64.length; + + for (i = 0, j = 0; i < l; i += 4, j += 3) { + tmp = (lookup.indexOf(b64[i]) << 18) | (lookup.indexOf(b64[i + 1]) << 12) | (lookup.indexOf(b64[i + 2]) << 6) | lookup.indexOf(b64[i + 3]); + arr.push((tmp & 0xFF0000) >> 16); + arr.push((tmp & 0xFF00) >> 8); + arr.push(tmp & 0xFF); + } + + if (placeHolders === 2) { + tmp = (lookup.indexOf(b64[i]) << 2) | (lookup.indexOf(b64[i + 1]) >> 4); + arr.push(tmp & 0xFF); + } else if (placeHolders === 1) { + tmp = (lookup.indexOf(b64[i]) << 10) | (lookup.indexOf(b64[i + 1]) << 4) | (lookup.indexOf(b64[i + 2]) >> 2); + arr.push((tmp >> 8) & 0xFF); + arr.push(tmp & 0xFF); + } + + return arr; + } + + function uint8ToBase64(uint8) { + var i, + extraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes + output = "", + temp, length; + + function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]; + }; + + // go through the array every three bytes, we'll deal with trailing stuff later + for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) { + temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]); + output += tripletToBase64(temp); + } + + // pad the end with zeros, but make sure to not forget the extra bytes + switch (extraBytes) { + case 1: + temp = uint8[uint8.length - 1]; + output += lookup[temp >> 2]; + output += lookup[(temp << 4) & 0x3F]; + output += '=='; + break; + case 2: + temp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1]); + output += lookup[temp >> 10]; + output += lookup[(temp >> 4) & 0x3F]; + output += lookup[(temp << 2) & 0x3F]; + output += '='; + break; + } + + return output; + } + + module.exports.toByteArray = b64ToByteArray; + module.exports.fromByteArray = uint8ToBase64; +}()); + +},{}],5:[function(require,module,exports){ + + +// +// The shims in this file are not fully implemented shims for the ES5 +// features, but do work for the particular usecases there is in +// the other modules. +// + +var toString = Object.prototype.toString; +var hasOwnProperty = Object.prototype.hasOwnProperty; + +// Array.isArray is supported in IE9 +function isArray(xs) { + return toString.call(xs) === '[object Array]'; +} +exports.isArray = typeof Array.isArray === 'function' ? Array.isArray : isArray; + +// Array.prototype.indexOf is supported in IE9 +exports.indexOf = function indexOf(xs, x) { + if (xs.indexOf) return xs.indexOf(x); + for (var i = 0; i < xs.length; i++) { + if (x === xs[i]) return i; + } + return -1; +}; + +// Array.prototype.filter is supported in IE9 +exports.filter = function filter(xs, fn) { + if (xs.filter) return xs.filter(fn); + var res = []; + for (var i = 0; i < xs.length; i++) { + if (fn(xs[i], i, xs)) res.push(xs[i]); + } + return res; +}; + +// Array.prototype.forEach is supported in IE9 +exports.forEach = function forEach(xs, fn, self) { + if (xs.forEach) return xs.forEach(fn, self); + for (var i = 0; i < xs.length; i++) { + fn.call(self, xs[i], i, xs); + } +}; + +// Array.prototype.map is supported in IE9 +exports.map = function map(xs, fn) { + if (xs.map) return xs.map(fn); + var out = new Array(xs.length); + for (var i = 0; i < xs.length; i++) { + out[i] = fn(xs[i], i, xs); + } + return out; +}; + +// Array.prototype.reduce is supported in IE9 +exports.reduce = function reduce(array, callback, opt_initialValue) { + if (array.reduce) return array.reduce(callback, opt_initialValue); + var value, isValueSet = false; + + if (2 < arguments.length) { + value = opt_initialValue; + isValueSet = true; + } + for (var i = 0, l = array.length; l > i; ++i) { + if (array.hasOwnProperty(i)) { + if (isValueSet) { + value = callback(value, array[i], i, array); + } + else { + value = array[i]; + isValueSet = true; + } + } + } + + return value; +}; + +// String.prototype.substr - negative index don't work in IE8 +if ('ab'.substr(-1) !== 'b') { + exports.substr = function (str, start, length) { + // did we get a negative start, calculate how much it is from the beginning of the string + if (start < 0) start = str.length + start; + + // call the original function + return str.substr(start, length); + }; +} else { + exports.substr = function (str, start, length) { + return str.substr(start, length); + }; +} + +// String.prototype.trim is supported in IE9 +exports.trim = function (str) { + if (str.trim) return str.trim(); + return str.replace(/^\s+|\s+$/g, ''); +}; + +// Function.prototype.bind is supported in IE9 +exports.bind = function () { + var args = Array.prototype.slice.call(arguments); + var fn = args.shift(); + if (fn.bind) return fn.bind.apply(fn, args); + var self = args.shift(); + return function () { + fn.apply(self, args.concat([Array.prototype.slice.call(arguments)])); + }; +}; + +// Object.create is supported in IE9 +function create(prototype, properties) { + var object; + if (prototype === null) { + object = { '__proto__' : null }; + } + else { + if (typeof prototype !== 'object') { + throw new TypeError( + 'typeof prototype[' + (typeof prototype) + '] != \'object\'' + ); + } + var Type = function () {}; + Type.prototype = prototype; + object = new Type(); + object.__proto__ = prototype; + } + if (typeof properties !== 'undefined' && Object.defineProperties) { + Object.defineProperties(object, properties); + } + return object; +} +exports.create = typeof Object.create === 'function' ? Object.create : create; + +// Object.keys and Object.getOwnPropertyNames is supported in IE9 however +// they do show a description and number property on Error objects +function notObject(object) { + return ((typeof object != "object" && typeof object != "function") || object === null); +} + +function keysShim(object) { + if (notObject(object)) { + throw new TypeError("Object.keys called on a non-object"); + } + + var result = []; + for (var name in object) { + if (hasOwnProperty.call(object, name)) { + result.push(name); + } + } + return result; +} + +// getOwnPropertyNames is almost the same as Object.keys one key feature +// is that it returns hidden properties, since that can't be implemented, +// this feature gets reduced so it just shows the length property on arrays +function propertyShim(object) { + if (notObject(object)) { + throw new TypeError("Object.getOwnPropertyNames called on a non-object"); + } + + var result = keysShim(object); + if (exports.isArray(object) && exports.indexOf(object, 'length') === -1) { + result.push('length'); + } + return result; +} + +var keys = typeof Object.keys === 'function' ? Object.keys : keysShim; +var getOwnPropertyNames = typeof Object.getOwnPropertyNames === 'function' ? + Object.getOwnPropertyNames : propertyShim; + +if (new Error().hasOwnProperty('description')) { + var ERROR_PROPERTY_FILTER = function (obj, array) { + if (toString.call(obj) === '[object Error]') { + array = exports.filter(array, function (name) { + return name !== 'description' && name !== 'number' && name !== 'message'; + }); + } + return array; + }; + + exports.keys = function (object) { + return ERROR_PROPERTY_FILTER(object, keys(object)); + }; + exports.getOwnPropertyNames = function (object) { + return ERROR_PROPERTY_FILTER(object, getOwnPropertyNames(object)); + }; +} else { + exports.keys = keys; + exports.getOwnPropertyNames = getOwnPropertyNames; +} + +// Object.getOwnPropertyDescriptor - supported in IE8 but only on dom elements +function valueObject(value, key) { + return { value: value[key] }; +} + +if (typeof Object.getOwnPropertyDescriptor === 'function') { + try { + Object.getOwnPropertyDescriptor({'a': 1}, 'a'); + exports.getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + } catch (e) { + // IE8 dom element issue - use a try catch and default to valueObject + exports.getOwnPropertyDescriptor = function (value, key) { + try { + return Object.getOwnPropertyDescriptor(value, key); + } catch (e) { + return valueObject(value, key); + } + }; + } +} else { + exports.getOwnPropertyDescriptor = valueObject; +} + +},{}],6:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// UTILITY +var util = require('util'); +var shims = require('_shims'); +var pSlice = Array.prototype.slice; + +// 1. The assert module provides functions that throw +// AssertionError's when particular conditions are not met. The +// assert module must conform to the following interface. + +var assert = module.exports = ok; + +// 2. The AssertionError is defined in assert. +// new assert.AssertionError({ message: message, +// actual: actual, +// expected: expected }) + +assert.AssertionError = function AssertionError(options) { + this.name = 'AssertionError'; + this.actual = options.actual; + this.expected = options.expected; + this.operator = options.operator; + this.message = options.message || getMessage(this); +}; + +// assert.AssertionError instanceof Error +util.inherits(assert.AssertionError, Error); + +function replacer(key, value) { + if (util.isUndefined(value)) { + return '' + value; + } + if (util.isNumber(value) && (isNaN(value) || !isFinite(value))) { + return value.toString(); + } + if (util.isFunction(value) || util.isRegExp(value)) { + return value.toString(); + } + return value; +} + +function truncate(s, n) { + if (util.isString(s)) { + return s.length < n ? s : s.slice(0, n); + } else { + return s; + } +} + +function getMessage(self) { + return truncate(JSON.stringify(self.actual, replacer), 128) + ' ' + + self.operator + ' ' + + truncate(JSON.stringify(self.expected, replacer), 128); +} + +// At present only the three keys mentioned above are used and +// understood by the spec. Implementations or sub modules can pass +// other keys to the AssertionError's constructor - they will be +// ignored. + +// 3. All of the following functions must throw an AssertionError +// when a corresponding condition is not met, with a message that +// may be undefined if not provided. All assertion methods provide +// both the actual and expected values to the assertion error for +// display purposes. + +function fail(actual, expected, message, operator, stackStartFunction) { + throw new assert.AssertionError({ + message: message, + actual: actual, + expected: expected, + operator: operator, + stackStartFunction: stackStartFunction + }); +} + +// EXTENSION! allows for well behaved errors defined elsewhere. +assert.fail = fail; + +// 4. Pure assertion tests whether a value is truthy, as determined +// by !!guard. +// assert.ok(guard, message_opt); +// This statement is equivalent to assert.equal(true, !!guard, +// message_opt);. To test strictly for the value true, use +// assert.strictEqual(true, guard, message_opt);. + +function ok(value, message) { + if (!value) fail(value, true, message, '==', assert.ok); +} +assert.ok = ok; + +// 5. The equality assertion tests shallow, coercive equality with +// ==. +// assert.equal(actual, expected, message_opt); + +assert.equal = function equal(actual, expected, message) { + if (actual != expected) fail(actual, expected, message, '==', assert.equal); +}; + +// 6. The non-equality assertion tests for whether two objects are not equal +// with != assert.notEqual(actual, expected, message_opt); + +assert.notEqual = function notEqual(actual, expected, message) { + if (actual == expected) { + fail(actual, expected, message, '!=', assert.notEqual); + } +}; + +// 7. The equivalence assertion tests a deep equality relation. +// assert.deepEqual(actual, expected, message_opt); + +assert.deepEqual = function deepEqual(actual, expected, message) { + if (!_deepEqual(actual, expected)) { + fail(actual, expected, message, 'deepEqual', assert.deepEqual); + } +}; + +function _deepEqual(actual, expected) { + // 7.1. All identical values are equivalent, as determined by ===. + if (actual === expected) { + return true; + + } else if (util.isBuffer(actual) && util.isBuffer(expected)) { + if (actual.length != expected.length) return false; + + for (var i = 0; i < actual.length; i++) { + if (actual[i] !== expected[i]) return false; + } + + return true; + + // 7.2. If the expected value is a Date object, the actual value is + // equivalent if it is also a Date object that refers to the same time. + } else if (util.isDate(actual) && util.isDate(expected)) { + return actual.getTime() === expected.getTime(); + + // 7.3 If the expected value is a RegExp object, the actual value is + // equivalent if it is also a RegExp object with the same source and + // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`). + } else if (util.isRegExp(actual) && util.isRegExp(expected)) { + return actual.source === expected.source && + actual.global === expected.global && + actual.multiline === expected.multiline && + actual.lastIndex === expected.lastIndex && + actual.ignoreCase === expected.ignoreCase; + + // 7.4. Other pairs that do not both pass typeof value == 'object', + // equivalence is determined by ==. + } else if (!util.isObject(actual) && !util.isObject(expected)) { + return actual == expected; + + // 7.5 For all other Object pairs, including Array objects, equivalence is + // determined by having the same number of owned properties (as verified + // with Object.prototype.hasOwnProperty.call), the same set of keys + // (although not necessarily the same order), equivalent values for every + // corresponding key, and an identical 'prototype' property. Note: this + // accounts for both named and indexed properties on Arrays. + } else { + return objEquiv(actual, expected); + } +} + +function isArguments(object) { + return Object.prototype.toString.call(object) == '[object Arguments]'; +} + +function objEquiv(a, b) { + if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b)) + return false; + // an identical 'prototype' property. + if (a.prototype !== b.prototype) return false; + //~~~I've managed to break Object.keys through screwy arguments passing. + // Converting to array solves the problem. + if (isArguments(a)) { + if (!isArguments(b)) { + return false; + } + a = pSlice.call(a); + b = pSlice.call(b); + return _deepEqual(a, b); + } + try { + var ka = shims.keys(a), + kb = shims.keys(b), + key, i; + } catch (e) {//happens when one is a string literal and the other isn't + return false; + } + // having the same number of owned properties (keys incorporates + // hasOwnProperty) + if (ka.length != kb.length) + return false; + //the same set of keys (although not necessarily the same order), + ka.sort(); + kb.sort(); + //~~~cheap key test + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] != kb[i]) + return false; + } + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!_deepEqual(a[key], b[key])) return false; + } + return true; +} + +// 8. The non-equivalence assertion tests for any deep inequality. +// assert.notDeepEqual(actual, expected, message_opt); + +assert.notDeepEqual = function notDeepEqual(actual, expected, message) { + if (_deepEqual(actual, expected)) { + fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual); + } +}; + +// 9. The strict equality assertion tests strict equality, as determined by ===. +// assert.strictEqual(actual, expected, message_opt); + +assert.strictEqual = function strictEqual(actual, expected, message) { + if (actual !== expected) { + fail(actual, expected, message, '===', assert.strictEqual); + } +}; + +// 10. The strict non-equality assertion tests for strict inequality, as +// determined by !==. assert.notStrictEqual(actual, expected, message_opt); + +assert.notStrictEqual = function notStrictEqual(actual, expected, message) { + if (actual === expected) { + fail(actual, expected, message, '!==', assert.notStrictEqual); + } +}; + +function expectedException(actual, expected) { + if (!actual || !expected) { + return false; + } + + if (Object.prototype.toString.call(expected) == '[object RegExp]') { + return expected.test(actual); + } else if (actual instanceof expected) { + return true; + } else if (expected.call({}, actual) === true) { + return true; + } + + return false; +} + +function _throws(shouldThrow, block, expected, message) { + var actual; + + if (util.isString(expected)) { + message = expected; + expected = null; + } + + try { + block(); + } catch (e) { + actual = e; + } + + message = (expected && expected.name ? ' (' + expected.name + ').' : '.') + + (message ? ' ' + message : '.'); + + if (shouldThrow && !actual) { + fail(actual, expected, 'Missing expected exception' + message); + } + + if (!shouldThrow && expectedException(actual, expected)) { + fail(actual, expected, 'Got unwanted exception' + message); + } + + if ((shouldThrow && actual && expected && + !expectedException(actual, expected)) || (!shouldThrow && actual)) { + throw actual; + } +} + +// 11. Expected to throw an error: +// assert.throws(block, Error_opt, message_opt); + +assert.throws = function(block, /*optional*/error, /*optional*/message) { + _throws.apply(this, [true].concat(pSlice.call(arguments))); +}; + +// EXTENSION! This is annoying to write outside this module. +assert.doesNotThrow = function(block, /*optional*/message) { + _throws.apply(this, [false].concat(pSlice.call(arguments))); +}; + +assert.ifError = function(err) { if (err) {throw err;}}; +},{"_shims":5,"util":7}],7:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var shims = require('_shims'); + +var formatRegExp = /%[sdj%]/g; +exports.format = function(f) { + if (!isString(f)) { + var objects = []; + for (var i = 0; i < arguments.length; i++) { + objects.push(inspect(arguments[i])); + } + return objects.join(' '); + } + + var i = 1; + var args = arguments; + var len = args.length; + var str = String(f).replace(formatRegExp, function(x) { + if (x === '%%') return '%'; + if (i >= len) return x; + switch (x) { + case '%s': return String(args[i++]); + case '%d': return Number(args[i++]); + case '%j': + try { + return JSON.stringify(args[i++]); + } catch (_) { + return '[Circular]'; + } + default: + return x; + } + }); + for (var x = args[i]; i < len; x = args[++i]) { + if (isNull(x) || !isObject(x)) { + str += ' ' + x; + } else { + str += ' ' + inspect(x); + } + } + return str; +}; + +/** + * Echos the value of a value. Trys to print the value out + * in the best way possible given the different types. + * + * @param {Object} obj The object to print out. + * @param {Object} opts Optional options object that alters the output. + */ +/* legacy: obj, showHidden, depth, colors*/ +function inspect(obj, opts) { + // default options + var ctx = { + seen: [], + stylize: stylizeNoColor + }; + // legacy... + if (arguments.length >= 3) ctx.depth = arguments[2]; + if (arguments.length >= 4) ctx.colors = arguments[3]; + if (isBoolean(opts)) { + // legacy... + ctx.showHidden = opts; + } else if (opts) { + // got an "options" object + exports._extend(ctx, opts); + } + // set default options + if (isUndefined(ctx.showHidden)) ctx.showHidden = false; + if (isUndefined(ctx.depth)) ctx.depth = 2; + if (isUndefined(ctx.colors)) ctx.colors = false; + if (isUndefined(ctx.customInspect)) ctx.customInspect = true; + if (ctx.colors) ctx.stylize = stylizeWithColor; + return formatValue(ctx, obj, ctx.depth); +} +exports.inspect = inspect; + + +// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics +inspect.colors = { + 'bold' : [1, 22], + 'italic' : [3, 23], + 'underline' : [4, 24], + 'inverse' : [7, 27], + 'white' : [37, 39], + 'grey' : [90, 39], + 'black' : [30, 39], + 'blue' : [34, 39], + 'cyan' : [36, 39], + 'green' : [32, 39], + 'magenta' : [35, 39], + 'red' : [31, 39], + 'yellow' : [33, 39] +}; + +// Don't use 'blue' not visible on cmd.exe +inspect.styles = { + 'special': 'cyan', + 'number': 'yellow', + 'boolean': 'yellow', + 'undefined': 'grey', + 'null': 'bold', + 'string': 'green', + 'date': 'magenta', + // "name": intentionally not styling + 'regexp': 'red' +}; + + +function stylizeWithColor(str, styleType) { + var style = inspect.styles[styleType]; + + if (style) { + return '\u001b[' + inspect.colors[style][0] + 'm' + str + + '\u001b[' + inspect.colors[style][1] + 'm'; + } else { + return str; + } +} + + +function stylizeNoColor(str, styleType) { + return str; +} + + +function arrayToHash(array) { + var hash = {}; + + shims.forEach(array, function(val, idx) { + hash[val] = true; + }); + + return hash; +} + + +function formatValue(ctx, value, recurseTimes) { + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it + if (ctx.customInspect && + value && + isFunction(value.inspect) && + // Filter out the util module, it's inspect function is special + value.inspect !== exports.inspect && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { + var ret = value.inspect(recurseTimes); + if (!isString(ret)) { + ret = formatValue(ctx, ret, recurseTimes); + } + return ret; + } + + // Primitive types cannot have properties + var primitive = formatPrimitive(ctx, value); + if (primitive) { + return primitive; + } + + // Look up the keys of the object. + var keys = shims.keys(value); + var visibleKeys = arrayToHash(keys); + + if (ctx.showHidden) { + keys = shims.getOwnPropertyNames(value); + } + + // Some type of object without properties can be shortcutted. + if (keys.length === 0) { + if (isFunction(value)) { + var name = value.name ? ': ' + value.name : ''; + return ctx.stylize('[Function' + name + ']', 'special'); + } + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } + if (isDate(value)) { + return ctx.stylize(Date.prototype.toString.call(value), 'date'); + } + if (isError(value)) { + return formatError(value); + } + } + + var base = '', array = false, braces = ['{', '}']; + + // Make Array say that they are Array + if (isArray(value)) { + array = true; + braces = ['[', ']']; + } + + // Make functions say that they are functions + if (isFunction(value)) { + var n = value.name ? ': ' + value.name : ''; + base = ' [Function' + n + ']'; + } + + // Make RegExps say that they are RegExps + if (isRegExp(value)) { + base = ' ' + RegExp.prototype.toString.call(value); + } + + // Make dates with properties first say the date + if (isDate(value)) { + base = ' ' + Date.prototype.toUTCString.call(value); + } + + // Make error with message first say the error + if (isError(value)) { + base = ' ' + formatError(value); + } + + if (keys.length === 0 && (!array || value.length == 0)) { + return braces[0] + base + braces[1]; + } + + if (recurseTimes < 0) { + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } else { + return ctx.stylize('[Object]', 'special'); + } + } + + ctx.seen.push(value); + + var output; + if (array) { + output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); + } else { + output = keys.map(function(key) { + return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); + }); + } + + ctx.seen.pop(); + + return reduceToSingleString(output, base, braces); +} + + +function formatPrimitive(ctx, value) { + if (isUndefined(value)) + return ctx.stylize('undefined', 'undefined'); + if (isString(value)) { + var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + '\''; + return ctx.stylize(simple, 'string'); + } + if (isNumber(value)) + return ctx.stylize('' + value, 'number'); + if (isBoolean(value)) + return ctx.stylize('' + value, 'boolean'); + // For some reason typeof null is "object", so special case here. + if (isNull(value)) + return ctx.stylize('null', 'null'); +} + + +function formatError(value) { + return '[' + Error.prototype.toString.call(value) + ']'; +} + + +function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { + var output = []; + for (var i = 0, l = value.length; i < l; ++i) { + if (hasOwnProperty(value, String(i))) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + String(i), true)); + } else { + output.push(''); + } + } + + shims.forEach(keys, function(key) { + if (!key.match(/^\d+$/)) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + key, true)); + } + }); + return output; +} + + +function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { + var name, str, desc; + desc = shims.getOwnPropertyDescriptor(value, key) || { value: value[key] }; + if (desc.get) { + if (desc.set) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else { + if (desc.set) { + str = ctx.stylize('[Setter]', 'special'); + } + } + + if (!hasOwnProperty(visibleKeys, key)) { + name = '[' + key + ']'; + } + if (!str) { + if (shims.indexOf(ctx.seen, desc.value) < 0) { + if (isNull(recurseTimes)) { + str = formatValue(ctx, desc.value, null); + } else { + str = formatValue(ctx, desc.value, recurseTimes - 1); + } + if (str.indexOf('\n') > -1) { + if (array) { + str = str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n').substr(2); + } else { + str = '\n' + str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n'); + } + } + } else { + str = ctx.stylize('[Circular]', 'special'); + } + } + if (isUndefined(name)) { + if (array && key.match(/^\d+$/)) { + return str; + } + name = JSON.stringify('' + key); + if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { + name = name.substr(1, name.length - 2); + name = ctx.stylize(name, 'name'); + } else { + name = name.replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'"); + name = ctx.stylize(name, 'string'); + } + } + + return name + ': ' + str; +} + + +function reduceToSingleString(output, base, braces) { + var numLinesEst = 0; + var length = shims.reduce(output, function(prev, cur) { + numLinesEst++; + if (cur.indexOf('\n') >= 0) numLinesEst++; + return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; + }, 0); + + if (length > 60) { + return braces[0] + + (base === '' ? '' : base + '\n ') + + ' ' + + output.join(',\n ') + + ' ' + + braces[1]; + } + + return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; +} + + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. +function isArray(ar) { + return shims.isArray(ar); +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return isObject(re) && objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg; +} +exports.isObject = isObject; + +function isDate(d) { + return isObject(d) && objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return isObject(e) && objectToString(e) === '[object Error]'; +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; + +function isBuffer(arg) { + return arg instanceof Buffer; +} +exports.isBuffer = isBuffer; + +function objectToString(o) { + return Object.prototype.toString.call(o); +} + + +function pad(n) { + return n < 10 ? '0' + n.toString(10) : n.toString(10); +} + + +var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec']; + +// 26 Feb 16:19:34 +function timestamp() { + var d = new Date(); + var time = [pad(d.getHours()), + pad(d.getMinutes()), + pad(d.getSeconds())].join(':'); + return [d.getDate(), months[d.getMonth()], time].join(' '); +} + + +// log is just a thin wrapper to console.log that prepends a timestamp +exports.log = function() { + console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); +}; + + +/** + * Inherit the prototype methods from one constructor into another. + * + * The Function.prototype.inherits from lang.js rewritten as a standalone + * function (not on Function.prototype). NOTE: If this file is to be loaded + * during bootstrapping this function needs to be rewritten using some native + * functions as prototype setup using normal JavaScript does not work as + * expected during bootstrapping (see mirror.js in r114903). + * + * @param {function} ctor Constructor function which needs to inherit the + * prototype. + * @param {function} superCtor Constructor function to inherit prototype from. + */ +exports.inherits = function(ctor, superCtor) { + ctor.super_ = superCtor; + ctor.prototype = shims.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); +}; + +exports._extend = function(origin, add) { + // Don't do anything if add isn't an object + if (!add || !isObject(add)) return origin; + + var keys = shims.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; + } + return origin; +}; + +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +},{"_shims":5}]},{},[]) +;;module.exports=require("buffer-browserify") + +},{}],5:[function(require,module,exports){ // shim for using process in browser var process = module.exports = {}; @@ -262,8 +3406,9 @@ process.chdir = function (dir) { throw new Error('process.chdir is not supported'); }; -},{}],4:[function(require,module,exports){ -(function(){/* +},{}],6:[function(require,module,exports){ +/* + Copyright (C) 2013 Ariya Hidayat Copyright (C) 2013 Thaddee Tyl Copyright (C) 2012 Ariya Hidayat Copyright (C) 2012 Mathias Bynens @@ -409,15 +3554,14 @@ parseYieldExpression: true DoWhileStatement: 'DoWhileStatement', EmptyStatement: 'EmptyStatement', ExportDeclaration: 'ExportDeclaration', + ExportBatchSpecifier: 'ExportBatchSpecifier', ExportSpecifier: 'ExportSpecifier', - ExportSpecifierSet: 'ExportSpecifierSet', ExpressionStatement: 'ExpressionStatement', ForInStatement: 'ForInStatement', ForOfStatement: 'ForOfStatement', ForStatement: 'ForStatement', FunctionDeclaration: 'FunctionDeclaration', FunctionExpression: 'FunctionExpression', - Glob: 'Glob', Identifier: 'Identifier', IfStatement: 'IfStatement', ImportDeclaration: 'ImportDeclaration', @@ -431,7 +3575,6 @@ parseYieldExpression: true NewExpression: 'NewExpression', ObjectExpression: 'ObjectExpression', ObjectPattern: 'ObjectPattern', - Path: 'Path', Program: 'Program', Property: 'Property', ReturnStatement: 'ReturnStatement', @@ -445,6 +3588,8 @@ parseYieldExpression: true ThisExpression: 'ThisExpression', ThrowStatement: 'ThrowStatement', TryStatement: 'TryStatement', + TypeAnnotatedIdentifier: 'TypeAnnotatedIdentifier', + TypeAnnotation: 'TypeAnnotation', UnaryExpression: 'UnaryExpression', UpdateExpression: 'UpdateExpression', VariableDeclaration: 'VariableDeclaration', @@ -504,6 +3649,7 @@ parseYieldExpression: true StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode', StrictParamDupe: 'Strict mode function may not have duplicate parameter names', ParameterAfterRestParameter: 'Rest parameter must be final parameter of an argument list', + DefaultRestParameter: 'Rest parameter can not have a default value', ElementAfterSpreadElement: 'Spread must be the final element of an element list', ObjectPatternAsRestParameter: 'Invalid rest parameter', ObjectPatternAsSpread: 'Invalid spread argument', @@ -517,7 +3663,10 @@ parseYieldExpression: true StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode', StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode', StrictReservedWord: 'Use of future reserved word in strict mode', + NewlineAfterModule: 'Illegal newline after module', NoFromAfterImport: 'Missing from after import', + InvalidModuleSpecifier: 'Invalid module specifier', + NestedModule: 'Module declaration can not be nested', NoYieldInGenerator: 'Missing yield in generator', NoUnintializedConst: 'Const must be initialized', ComprehensionRequiresBlock: 'Comprehension must have at least one block', @@ -1476,6 +4625,7 @@ parseYieldExpression: true if (ch === '\r' && source[index] === '\n') { ++index; } + cooked += '\n'; } else { cooked += ch; } @@ -1945,12 +5095,14 @@ parseYieldExpression: true }; }, - createFunctionDeclaration: function (id, params, defaults, body, rest, generator, expression) { + createFunctionDeclaration: function (id, params, defaults, body, rest, generator, expression, + returnTypeAnnotation) { return { type: Syntax.FunctionDeclaration, id: id, params: params, defaults: defaults, + returnType: returnTypeAnnotation, body: body, rest: rest, generator: generator, @@ -1958,12 +5110,14 @@ parseYieldExpression: true }; }, - createFunctionExpression: function (id, params, defaults, body, rest, generator, expression) { + createFunctionExpression: function (id, params, defaults, body, rest, generator, expression, + returnTypeAnnotation) { return { type: Syntax.FunctionExpression, id: id, params: params, defaults: defaults, + returnType: returnTypeAnnotation, body: body, rest: rest, generator: generator, @@ -1978,6 +5132,28 @@ parseYieldExpression: true }; }, + createTypeAnnotatedIdentifier: function (annotation, identifier) { + return { + type: Syntax.TypeAnnotatedIdentifier, + annotation: annotation, + identifier: identifier + }; + }, + + createTypeAnnotation: function (annotatedType, templateTypes, + paramTypes, returnType, unionType, + nullable) { + return { + type: Syntax.TypeAnnotation, + annotatedType: annotatedType, + templateTypes: templateTypes, + paramTypes: paramTypes, + returnType: returnType, + unionType: unionType, + nullable: nullable + }; + }, + createXJSAttribute: function (name, value) { return { type: Syntax.XJSAttribute, @@ -2291,55 +5467,44 @@ parseYieldExpression: true }; }, - createPath: function (body) { - return { - type: Syntax.Path, - body: body - }; - }, - - createGlob: function () { - return { - type: Syntax.Glob - }; - }, - - createExportSpecifier: function (id, from) { + createExportSpecifier: function (id, name) { return { type: Syntax.ExportSpecifier, id: id, - from: from + name: name }; }, - createExportSpecifierSet: function (specifiers) { + createExportBatchSpecifier: function () { return { - type: Syntax.ExportSpecifierSet, - specifiers: specifiers + type: Syntax.ExportBatchSpecifier }; }, - createExportDeclaration: function (declaration, specifiers) { + createExportDeclaration: function (def, declaration, specifiers, source) { return { type: Syntax.ExportDeclaration, declaration: declaration, - specifiers: specifiers + default: def, + specifiers: specifiers, + source: source }; }, - createImportSpecifier: function (id, from) { + createImportSpecifier: function (id, name) { return { type: Syntax.ImportSpecifier, id: id, - from: from + name: name }; }, - createImportDeclaration: function (specifiers, from) { + createImportDeclaration: function (specifiers, kind, source) { return { type: Syntax.ImportDeclaration, specifiers: specifiers, - from: from + kind: kind, + source: source }; }, @@ -2351,11 +5516,11 @@ parseYieldExpression: true }; }, - createModuleDeclaration: function (id, from, body) { + createModuleDeclaration: function (id, source, body) { return { type: Syntax.ModuleDeclaration, id: id, - from: from, + source: source, body: body }; } @@ -2627,24 +5792,26 @@ parseYieldExpression: true // 11.1.5 Object Initialiser function parsePropertyFunction(options) { - var previousStrict, previousYieldAllowed, params, body; + var previousStrict, previousYieldAllowed, params, defaults, body; previousStrict = strict; previousYieldAllowed = state.yieldAllowed; state.yieldAllowed = options.generator; params = options.params || []; + defaults = options.defaults || []; body = parseConciseBody(); if (options.name && strict && isRestrictedWord(params[0].name)) { throwErrorTolerant(options.name, Messages.StrictParamName); } if (state.yieldAllowed && !state.yieldFound) { - throwError({}, Messages.NoYieldInGenerator); + throwErrorTolerant({}, Messages.NoYieldInGenerator); } strict = previousStrict; state.yieldAllowed = previousYieldAllowed; - return delegate.createFunctionExpression(null, params, [], body, options.rest || null, options.generator, body.type !== Syntax.BlockStatement); + return delegate.createFunctionExpression(null, params, defaults, body, options.rest || null, options.generator, body.type !== Syntax.BlockStatement, + options.returnTypeAnnotation); } @@ -2663,8 +5830,10 @@ parseYieldExpression: true method = parsePropertyFunction({ params: tmp.params, + defaults: tmp.defaults, rest: tmp.rest, - generator: options.generator + generator: options.generator, + returnTypeAnnotation: tmp.returnTypeAnnotation }); strict = previousStrict; @@ -3320,9 +6489,11 @@ parseYieldExpression: true } function reinterpretAsCoverFormalsList(expressions) { - var i, len, param, params, options, rest; + var i, len, param, params, defaults, defaultCount, options, rest; params = []; + defaults = []; + defaultCount = 0; rest = null; options = { paramSet: {} @@ -3332,14 +6503,20 @@ parseYieldExpression: true param = expressions[i]; if (param.type === Syntax.Identifier) { params.push(param); + defaults.push(null); validateParam(options, param, param.name); } else if (param.type === Syntax.ObjectExpression || param.type === Syntax.ArrayExpression) { reinterpretAsDestructuredParameter(options, param); params.push(param); + defaults.push(null); } else if (param.type === Syntax.SpreadElement) { assert(i === len - 1, "It is guaranteed that SpreadElement is last element by parseExpression"); reinterpretAsDestructuredParameter(options, param.argument); rest = param.argument; + } else if (param.type === Syntax.AssignmentExpression) { + params.push(param.left); + defaults.push(param.right); + ++defaultCount; } else { return null; } @@ -3352,7 +6529,11 @@ parseYieldExpression: true throwErrorTolerant(options.stricted, options.message); } - return { params: params, rest: rest }; + if (defaultCount === 0) { + defaults = []; + } + + return { params: params, defaults: defaults, rest: rest }; } function parseArrowFunctionExpression(options) { @@ -3368,7 +6549,7 @@ parseYieldExpression: true strict = previousStrict; state.yieldAllowed = previousYieldAllowed; - return delegate.createArrowFunctionExpression(options.params, [], body, options.rest, body.type !== Syntax.BlockStatement); + return delegate.createArrowFunctionExpression(options.params, options.defaults, body, options.rest, body.type !== Syntax.BlockStatement); } function parseAssignmentExpression() { @@ -3399,7 +6580,7 @@ parseYieldExpression: true if (isRestrictedWord(expr.name)) { throwError({}, Messages.StrictParamName); } - return parseArrowFunctionExpression({ params: [ expr ], rest: null }); + return parseArrowFunctionExpression({ params: [ expr ], defaults: [], rest: null }); } } @@ -3519,6 +6700,100 @@ parseYieldExpression: true return delegate.createIdentifier(token.value); } + function parseTypeAnnotation() { + var isNullable = false, paramTypes = null, returnType = null, + templateTypes = null, type, unionType = null; + + if (match('?')) { + lex(); + isNullable = true; + } + + type = parseVariableIdentifier(); + + if (match('<')) { + lex(); + templateTypes = []; + while (lookahead.type === Token.Identifier || match('?')) { + templateTypes.push(parseTypeAnnotation()); + if (!match('>')) { + expect(','); + } + } + expect('>'); + } + + if (match('(')) { + lex(); + paramTypes = []; + while (lookahead.type === Token.Identifier || match('?')) { + paramTypes.push(parseTypeAnnotation()); + if (!match(')')) { + expect(','); + } + } + expect(')'); + + if (match(':')) { + lex(); + returnType = parseTypeAnnotation(); + } + } + + if (match('|')) { + lex(); + unionType = parseTypeAnnotation(); + } + + return delegate.createTypeAnnotation( + type, + templateTypes, + paramTypes, + returnType, + unionType, + isNullable + ); + } + + function parseAnnotatableIdentifier() { + var annotation, annotationLookahead, annotationPresent, identifier, + matchesNullableToken; + + matchesNullableToken = match('?'); + + if (lookahead.type !== Token.Identifier && !matchesNullableToken) { + throwUnexpected(lookahead); + } + + if (!matchesNullableToken) { + annotationLookahead = lookahead2(); + } + + annotationPresent = + matchesNullableToken + + // function (number numVal) {} + || annotationLookahead.type === Token.Identifier + + // function (fn(number)|array param) {} + || (annotationLookahead.type === Token.Punctuator + && (annotationLookahead.value === '(' + || annotationLookahead.value === '<' + || annotationLookahead.value === '|')); + + if (!annotationPresent) { + return parseVariableIdentifier(); + } + + annotation = parseTypeAnnotation(); + identifier = parseVariableIdentifier(); + + return delegate.createTypeAnnotatedIdentifier( + annotation, + identifier + ); + } + function parseVariableDeclaration(kind) { var id, init = null; @@ -3529,7 +6804,11 @@ parseYieldExpression: true id = parseArrayInitialiser(); reinterpretAsAssignmentBindingPattern(id); } else { - id = parseVariableIdentifier(); + if (state.allowDefault) { + id = matchKeyword('default') ? parseNonComputedProperty() : parseVariableIdentifier(); + } else { + id = parseVariableIdentifier(); + } // 12.2.1 if (strict && isRestrictedWord(id.name)) { throwErrorTolerant({}, Messages.StrictVarName); @@ -3594,182 +6873,179 @@ parseYieldExpression: true // http://wiki.ecmascript.org/doku.php?id=harmony:modules - function parsePath() { - var body = []; + function parseModuleDeclaration() { + var id, src, body; - while (true) { - body.push(parseVariableIdentifier()); - if (!match('.')) { - break; + lex(); // 'module' + + if (peekLineTerminator()) { + throwError({}, Messages.NewlineAfterModule); + } + + switch (lookahead.type) { + + case Token.StringLiteral: + id = parsePrimaryExpression(); + body = parseModuleBlock(); + src = null; + break; + + case Token.Identifier: + id = parseVariableIdentifier(); + body = null; + if (!matchContextualKeyword('from')) { + throwUnexpected(lex()); } lex(); - } - - return delegate.createPath(body); - } - - function parseGlob() { - expect('*'); - return delegate.createGlob(); - } - - function parseModuleDeclaration() { - var id, token, from = null; - - lex(); - - id = parseVariableIdentifier(); - - if (match('{')) { - return delegate.createModuleDeclaration(id, from, parseModuleBlock()); - } - - expect('='); - - token = lookahead; - if (token.type === Token.StringLiteral) { - from = parsePrimaryExpression(); - } else { - from = parsePath(); + src = parsePrimaryExpression(); + if (src.type !== Syntax.Literal) { + throwError({}, Messages.InvalidModuleSpecifier); + } + break; } consumeSemicolon(); - - return delegate.createModuleDeclaration(id, from, null); + return delegate.createModuleDeclaration(id, src, body); } - function parseExportSpecifierSetProperty() { - var id, from = null; - - id = parseVariableIdentifier(); - - if (match(':')) { - lex(); - from = parsePath(); - } - - return delegate.createExportSpecifier(id, from); + function parseExportBatchSpecifier() { + expect('*'); + return delegate.createExportBatchSpecifier(); } function parseExportSpecifier() { - var specifiers, id, from; + var id, name = null; - if (match('{')) { + id = parseVariableIdentifier(); + if (matchContextualKeyword('as')) { lex(); - specifiers = []; - - do { - specifiers.push(parseExportSpecifierSetProperty()); - } while (match(',') && lex()); - - expect('}'); - - return delegate.createExportSpecifierSet(specifiers); + name = parseNonComputedProperty(); } - from = null; - - if (match('*')) { - id = parseGlob(); - if (matchContextualKeyword('from')) { - lex(); - from = parsePath(); - } - } else { - id = parseVariableIdentifier(); - } - return delegate.createExportSpecifier(id, from); + return delegate.createExportSpecifier(id, name); } function parseExportDeclaration() { - var token, specifiers; + var previousAllowDefault, decl, def, src, specifiers; expectKeyword('export'); - token = lookahead; + if (matchKeyword('default')) { + lex(); + if (match('=')) { + lex(); + def = parseAssignmentExpression(); + } else if (lookahead.type === Token.Keyword) { + switch (lookahead.value) { + case 'let': + case 'const': + case 'var': + case 'class': + def = parseSourceElement(); + break; + case 'function': + def = parseFunctionExpression(); + break; + default: + throwUnexpected(lex()); + } + } else { + def = parseAssignmentExpression(); + } + consumeSemicolon(); + return delegate.createExportDeclaration(true, def, null, null); + } - if (token.type === Token.Keyword || (token.type === Token.Identifier && token.value === 'module')) { - switch (token.value) { - case 'function': - return delegate.createExportDeclaration(parseFunctionDeclaration(), null); - case 'module': - return delegate.createExportDeclaration(parseModuleDeclaration(), null); + if (lookahead.type === Token.Keyword) { + switch (lookahead.value) { case 'let': case 'const': - return delegate.createExportDeclaration(parseConstLetDeclaration(token.value), null); case 'var': - return delegate.createExportDeclaration(parseStatement(), null); case 'class': - return delegate.createExportDeclaration(parseClassDeclaration(), null); + case 'function': + previousAllowDefault = state.allowDefault; + state.allowDefault = true; + decl = delegate.createExportDeclaration(false, parseSourceElement(), null, null); + state.allowDefault = previousAllowDefault; + return decl; } throwUnexpected(lex()); } - specifiers = [ parseExportSpecifier() ]; - if (match(',')) { - while (index < length) { - if (!match(',')) { - break; - } - lex(); + specifiers = []; + src = null; + + if (match('*')) { + specifiers.push(parseExportBatchSpecifier()); + } else { + expect('{'); + do { specifiers.push(parseExportSpecifier()); + } while (match(',') && lex()); + expect('}'); + } + + if (matchContextualKeyword('from')) { + lex(); + src = parsePrimaryExpression(); + if (src.type !== Syntax.Literal) { + throwError({}, Messages.InvalidModuleSpecifier); } } consumeSemicolon(); - return delegate.createExportDeclaration(null, specifiers); + return delegate.createExportDeclaration(false, null, specifiers, src); } function parseImportDeclaration() { - var specifiers, from; + var specifiers, kind, src; expectKeyword('import'); + specifiers = []; - if (match('*')) { - specifiers = [parseGlob()]; + if (isIdentifierName(lookahead)) { + kind = 'default'; + specifiers.push(parseImportSpecifier()); + + if (!matchContextualKeyword('from')) { + throwError({}, Messages.NoFromAfterImport); + } + lex(); } else if (match('{')) { + kind = 'named'; lex(); - specifiers = []; - do { specifiers.push(parseImportSpecifier()); } while (match(',') && lex()); - expect('}'); - } else { - specifiers = [parseVariableIdentifier()]; + + if (!matchContextualKeyword('from')) { + throwError({}, Messages.NoFromAfterImport); + } + lex(); } - if (!matchContextualKeyword('from')) { - throwError({}, Messages.NoFromAfterImport); - } - - lex(); - - if (lookahead.type === Token.StringLiteral) { - from = parsePrimaryExpression(); - } else { - from = parsePath(); + src = parsePrimaryExpression(); + if (src.type !== Syntax.Literal) { + throwError({}, Messages.InvalidModuleSpecifier); } consumeSemicolon(); - return delegate.createImportDeclaration(specifiers, from); + return delegate.createImportDeclaration(specifiers, kind, src); } function parseImportSpecifier() { - var id, from; + var id, name = null; - id = parseVariableIdentifier(); - from = null; - - if (match(':')) { + id = parseNonComputedProperty(); + if (matchContextualKeyword('as')) { lex(); - from = parsePath(); + name = parseVariableIdentifier(); } - return delegate.createImportSpecifier(id, from); + return delegate.createImportSpecifier(id, name); } // 12.3 Empty Statement @@ -4148,13 +7424,13 @@ parseYieldExpression: true expect('{'); + cases = []; + if (match('}')) { lex(); - return delegate.createSwitchStatement(discriminant); + return delegate.createSwitchStatement(discriminant, cases); } - cases = []; - oldInSwitch = state.inSwitch; state.inSwitch = true; defaultFound = false; @@ -4439,7 +7715,7 @@ parseYieldExpression: true } function parseParam(options) { - var token, rest, param; + var token, rest, param, def; token = lookahead; if (token.value === '...') { @@ -4457,8 +7733,21 @@ parseYieldExpression: true param = parseObjectInitialiser(); reinterpretAsDestructuredParameter(options, param); } else { - param = parseVariableIdentifier(); + // We don't currently support typed rest params because doing so is + // a bit awkward. We may come back to this, but for now we'll punt + // on it. + param = rest + ? parseVariableIdentifier() + : parseAnnotatableIdentifier(); validateParam(options, token, token.value); + if (match('=')) { + if (rest) { + throwErrorTolerant(lookahead, Messages.DefaultRestParameter); + } + lex(); + def = parseAssignmentExpression(); + ++options.defaultCount; + } } if (rest) { @@ -4470,6 +7759,7 @@ parseYieldExpression: true } options.params.push(param); + options.defaults.push(def); return !match(')'); } @@ -4478,6 +7768,8 @@ parseYieldExpression: true options = { params: [], + defaultCount: 0, + defaults: [], rest: null, firstRestricted: firstRestricted }; @@ -4496,6 +7788,15 @@ parseYieldExpression: true expect(')'); + if (options.defaultCount === 0) { + options.defaults = []; + } + + if (match(':')) { + lex(); + options.returnTypeAnnotation = parseTypeAnnotation(); + } + return options; } @@ -4512,7 +7813,11 @@ parseYieldExpression: true token = lookahead; - id = parseVariableIdentifier(); + if (state.allowDefault) { + id = matchKeyword('default') ? parseNonComputedProperty() : parseVariableIdentifier(); + } else { + id = parseVariableIdentifier(); + } if (strict) { if (isRestrictedWord(token.value)) { throwErrorTolerant(token, Messages.StrictFunctionName); @@ -4548,12 +7853,13 @@ parseYieldExpression: true throwErrorTolerant(tmp.stricted, message); } if (state.yieldAllowed && !state.yieldFound) { - throwError({}, Messages.NoYieldInGenerator); + throwErrorTolerant({}, Messages.NoYieldInGenerator); } strict = previousStrict; state.yieldAllowed = previousYieldAllowed; - return delegate.createFunctionDeclaration(id, tmp.params, [], body, tmp.rest, generator, expression); + return delegate.createFunctionDeclaration(id, tmp.params, tmp.defaults, body, tmp.rest, generator, expression, + tmp.returnTypeAnnotation); } function parseFunctionExpression() { @@ -4607,12 +7913,13 @@ parseYieldExpression: true throwErrorTolerant(tmp.stricted, message); } if (state.yieldAllowed && !state.yieldFound) { - throwError({}, Messages.NoYieldInGenerator); + throwErrorTolerant({}, Messages.NoYieldInGenerator); } strict = previousStrict; state.yieldAllowed = previousYieldAllowed; - return delegate.createFunctionExpression(id, tmp.params, [], body, tmp.rest, generator, expression); + return delegate.createFunctionExpression(id, tmp.params, tmp.defaults, body, tmp.rest, generator, expression, + tmp.returnTypeAnnotation); } function parseYieldExpression() { @@ -4798,12 +8105,15 @@ parseYieldExpression: true } function parseClassDeclaration() { - var token, id, previousYieldAllowed, superClass = null; + var id, previousYieldAllowed, superClass = null; expectKeyword('class'); - token = lookahead; - id = parseVariableIdentifier(); + if (state.allowDefault) { + id = matchKeyword('default') ? parseNonComputedProperty() : parseVariableIdentifier(); + } else { + id = parseVariableIdentifier(); + } if (matchKeyword('extends')) { expectKeyword('extends'); @@ -4818,6 +8128,15 @@ parseYieldExpression: true // 15 Program + function matchModuleDeclaration() { + var id; + if (matchContextualKeyword('module')) { + id = lookahead2(); + return id.type === Token.StringLiteral || id.type === Token.Identifier; + } + return false; + } + function parseSourceElement() { if (lookahead.type === Token.Keyword) { switch (lookahead.value) { @@ -4826,19 +8145,25 @@ parseYieldExpression: true return parseConstLetDeclaration(lookahead.value); case 'function': return parseFunctionDeclaration(); + case 'export': + return parseExportDeclaration(); + case 'import': + return parseImportDeclaration(); default: return parseStatement(); } } + if (matchModuleDeclaration()) { + throwError({}, Messages.NestedModule); + } + if (lookahead.type !== Token.EOF) { return parseStatement(); } } function parseProgramElement() { - var lineNumber, token; - if (lookahead.type === Token.Keyword) { switch (lookahead.value) { case 'export': @@ -4848,12 +8173,8 @@ parseYieldExpression: true } } - if (lookahead.value === 'module' && lookahead.type === Token.Identifier) { - lineNumber = lookahead.lineNumber; - token = lookahead2(); - if (token.type === Token.Identifier && token.lineNumber === lineNumber) { - return parseModuleDeclaration(); - } + if (matchModuleDeclaration()) { + return parseModuleDeclaration(); } return parseSourceElement(); @@ -4898,7 +8219,7 @@ parseYieldExpression: true } function parseModuleElement() { - return parseProgramElement(); + return parseSourceElement(); } function parseModuleElements() { @@ -5507,7 +8828,7 @@ parseYieldExpression: true var token; if (lookahead.type !== Token.XJSIdentifier) { - throwError({}, Messages.InvalidXJSTagName); + throwUnexpected(lookahead); } token = lex(); @@ -5754,11 +9075,9 @@ parseYieldExpression: true extra.tokens = tokens; } - function createLocationMarker() { - var marker = {}; - - marker.range = [index, index]; - marker.loc = { + function LocationMarker() { + this.range = [index, index]; + this.loc = { start: { line: lineNumber, column: index - lineStart @@ -5768,14 +9087,18 @@ parseYieldExpression: true column: index - lineStart } }; + } - marker.end = function () { + LocationMarker.prototype = { + constructor: LocationMarker, + + end: function () { this.range[1] = index; this.loc.end.line = lineNumber; this.loc.end.column = index - lineStart; - }; + }, - marker.applyGroup = function (node) { + applyGroup: function (node) { if (extra.range) { node.groupRange = [this.range[0], this.range[1]]; } @@ -5792,9 +9115,9 @@ parseYieldExpression: true }; node = delegate.postProcess(node); } - }; + }, - marker.apply = function (node) { + apply: function (node) { var nodeType = typeof node; assert(nodeType === "object", "Applying location marker to an unexpected node type: " + @@ -5816,9 +9139,11 @@ parseYieldExpression: true }; node = delegate.postProcess(node); } - }; + } + }; - return marker; + function createLocationMarker() { + return new LocationMarker(); } function trackGroupExpression() { @@ -6029,15 +9354,14 @@ parseYieldExpression: true extra.parseComputedMember = parseComputedMember; extra.parseConditionalExpression = parseConditionalExpression; extra.parseConstLetDeclaration = parseConstLetDeclaration; + extra.parseExportBatchSpecifier = parseExportBatchSpecifier; extra.parseExportDeclaration = parseExportDeclaration; extra.parseExportSpecifier = parseExportSpecifier; - extra.parseExportSpecifierSetProperty = parseExportSpecifierSetProperty; extra.parseExpression = parseExpression; extra.parseForVariableDeclaration = parseForVariableDeclaration; extra.parseFunctionDeclaration = parseFunctionDeclaration; extra.parseFunctionExpression = parseFunctionExpression; extra.parseParams = parseParams; - extra.parseGlob = parseGlob; extra.parseImportDeclaration = parseImportDeclaration; extra.parseImportSpecifier = parseImportSpecifier; extra.parseModuleDeclaration = parseModuleDeclaration; @@ -6046,7 +9370,6 @@ parseYieldExpression: true extra.parseNonComputedProperty = parseNonComputedProperty; extra.parseObjectProperty = parseObjectProperty; extra.parseObjectPropertyKey = parseObjectPropertyKey; - extra.parsePath = parsePath; extra.parsePostfixExpression = parsePostfixExpression; extra.parsePrimaryExpression = parsePrimaryExpression; extra.parseProgram = parseProgram; @@ -6059,6 +9382,8 @@ parseYieldExpression: true extra.parseUnaryExpression = parseUnaryExpression; extra.parseVariableDeclaration = parseVariableDeclaration; extra.parseVariableIdentifier = parseVariableIdentifier; + extra.parseAnnotatableIdentifier = parseAnnotatableIdentifier; + extra.parseTypeAnnotation = parseTypeAnnotation; extra.parseMethodDefinition = parseMethodDefinition; extra.parseClassDeclaration = parseClassDeclaration; extra.parseClassExpression = parseClassExpression; @@ -6081,15 +9406,14 @@ parseYieldExpression: true parseComputedMember = wrapTracking(extra.parseComputedMember); parseConditionalExpression = wrapTracking(extra.parseConditionalExpression); parseConstLetDeclaration = wrapTracking(extra.parseConstLetDeclaration); + parseExportBatchSpecifier = wrapTracking(parseExportBatchSpecifier); parseExportDeclaration = wrapTracking(parseExportDeclaration); parseExportSpecifier = wrapTracking(parseExportSpecifier); - parseExportSpecifierSetProperty = wrapTracking(parseExportSpecifierSetProperty); parseExpression = wrapTracking(extra.parseExpression); parseForVariableDeclaration = wrapTracking(extra.parseForVariableDeclaration); parseFunctionDeclaration = wrapTracking(extra.parseFunctionDeclaration); parseFunctionExpression = wrapTracking(extra.parseFunctionExpression); parseParams = wrapTracking(extra.parseParams); - parseGlob = wrapTracking(extra.parseGlob); parseImportDeclaration = wrapTracking(extra.parseImportDeclaration); parseImportSpecifier = wrapTracking(extra.parseImportSpecifier); parseModuleDeclaration = wrapTracking(extra.parseModuleDeclaration); @@ -6099,7 +9423,6 @@ parseYieldExpression: true parseNonComputedProperty = wrapTracking(extra.parseNonComputedProperty); parseObjectProperty = wrapTracking(extra.parseObjectProperty); parseObjectPropertyKey = wrapTracking(extra.parseObjectPropertyKey); - parsePath = wrapTracking(extra.parsePath); parsePostfixExpression = wrapTracking(extra.parsePostfixExpression); parsePrimaryExpression = wrapTracking(extra.parsePrimaryExpression); parseProgram = wrapTracking(extra.parseProgram); @@ -6112,6 +9435,8 @@ parseYieldExpression: true parseUnaryExpression = wrapTracking(extra.parseUnaryExpression); parseVariableDeclaration = wrapTracking(extra.parseVariableDeclaration); parseVariableIdentifier = wrapTracking(extra.parseVariableIdentifier); + parseAnnotatableIdentifier = wrapTracking(extra.parseAnnotatableIdentifier); + parseTypeAnnotation = wrapTracking(extra.parseTypeAnnotation); parseMethodDefinition = wrapTracking(extra.parseMethodDefinition); parseClassDeclaration = wrapTracking(extra.parseClassDeclaration); parseClassExpression = wrapTracking(extra.parseClassExpression); @@ -6150,14 +9475,13 @@ parseYieldExpression: true parseComputedMember = extra.parseComputedMember; parseConditionalExpression = extra.parseConditionalExpression; parseConstLetDeclaration = extra.parseConstLetDeclaration; + parseExportBatchSpecifier = extra.parseExportBatchSpecifier; parseExportDeclaration = extra.parseExportDeclaration; parseExportSpecifier = extra.parseExportSpecifier; - parseExportSpecifierSetProperty = extra.parseExportSpecifierSetProperty; parseExpression = extra.parseExpression; parseForVariableDeclaration = extra.parseForVariableDeclaration; parseFunctionDeclaration = extra.parseFunctionDeclaration; parseFunctionExpression = extra.parseFunctionExpression; - parseGlob = extra.parseGlob; parseImportDeclaration = extra.parseImportDeclaration; parseImportSpecifier = extra.parseImportSpecifier; parseGroupExpression = extra.parseGroupExpression; @@ -6169,7 +9493,6 @@ parseYieldExpression: true parseNonComputedProperty = extra.parseNonComputedProperty; parseObjectProperty = extra.parseObjectProperty; parseObjectPropertyKey = extra.parseObjectPropertyKey; - parsePath = extra.parsePath; parsePostfixExpression = extra.parsePostfixExpression; parsePrimaryExpression = extra.parsePrimaryExpression; parseProgram = extra.parseProgram; @@ -6182,6 +9505,8 @@ parseYieldExpression: true parseUnaryExpression = extra.parseUnaryExpression; parseVariableDeclaration = extra.parseVariableDeclaration; parseVariableIdentifier = extra.parseVariableIdentifier; + parseAnnotatableIdentifier = extra.parseAnnotatableIdentifier; + parseTypeAnnotation = extra.parseTypeAnnotation; parseMethodDefinition = extra.parseMethodDefinition; parseClassDeclaration = extra.parseClassDeclaration; parseClassExpression = extra.parseClassExpression; @@ -6241,6 +9566,7 @@ parseYieldExpression: true length = source.length; lookahead = null; state = { + allowDefault: true, allowIn: true, labelSet: {}, inFunctionBody: false, @@ -6341,6 +9667,7 @@ parseYieldExpression: true length = source.length; lookahead = null; state = { + allowDefault: false, allowIn: true, labelSet: {}, parenthesizedCount: 0, @@ -6445,8 +9772,35 @@ parseYieldExpression: true })); /* vim: set sw=4 ts=4 et tw=80 : */ -})() -},{}],5:[function(require,module,exports){ +},{}],7:[function(require,module,exports){ +var Base62 = (function (my) { + my.chars = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"] + + my.encode = function(i){ + if (i === 0) {return '0'} + var s = '' + while (i > 0) { + s = this.chars[i % 62] + s + i = Math.floor(i/62) + } + return s + }; + my.decode = function(a,b,c,d){ + for ( + b = c = ( + a === (/\W|_|^$/.test(a += "") || a) + ) - 1; + d = a.charCodeAt(c++); + ) + b = b * 62 + d - [, 48, 29, 87][d >> 5]; + return b + }; + + return my; +}({})); + +module.exports = Base62 +},{}],8:[function(require,module,exports){ /* * Copyright 2009-2011 Mozilla Foundation and contributors * Licensed under the New BSD license. See LICENSE.txt or: @@ -6456,7 +9810,7 @@ exports.SourceMapGenerator = require('./source-map/source-map-generator').Source exports.SourceMapConsumer = require('./source-map/source-map-consumer').SourceMapConsumer; exports.SourceNode = require('./source-map/source-node').SourceNode; -},{"./source-map/source-map-consumer":10,"./source-map/source-map-generator":11,"./source-map/source-node":12}],6:[function(require,module,exports){ +},{"./source-map/source-map-consumer":13,"./source-map/source-map-generator":14,"./source-map/source-node":15}],9:[function(require,module,exports){ /* -*- Mode: js; js-indent-level: 2; -*- */ /* * Copyright 2011 Mozilla Foundation and contributors @@ -6464,12 +9818,10 @@ exports.SourceNode = require('./source-map/source-node').SourceNode; * http://opensource.org/licenses/BSD-3-Clause */ if (typeof define !== 'function') { - var define = require('amdefine')(module, require); + var define = require('amdefine')(module); } define(function (require, exports, module) { - var util = require('./util'); - /** * A data structure which is a combination of an array and a set. Adding a new * member is O(1), testing for membership is O(1), and finding the index of an @@ -6492,6 +9844,19 @@ define(function (require, exports, module) { return set; }; + /** + * Because behavior goes wacky when you set `__proto__` on `this._set`, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ + ArraySet.prototype._toSetString = function ArraySet__toSetString (aStr) { + return "$" + aStr; + }; + /** * Add the given string to this set. * @@ -6504,7 +9869,7 @@ define(function (require, exports, module) { } var idx = this._array.length; this._array.push(aStr); - this._set[util.toSetString(aStr)] = idx; + this._set[this._toSetString(aStr)] = idx; }; /** @@ -6514,7 +9879,7 @@ define(function (require, exports, module) { */ ArraySet.prototype.has = function ArraySet_has(aStr) { return Object.prototype.hasOwnProperty.call(this._set, - util.toSetString(aStr)); + this._toSetString(aStr)); }; /** @@ -6524,7 +9889,7 @@ define(function (require, exports, module) { */ ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { if (this.has(aStr)) { - return this._set[util.toSetString(aStr)]; + return this._set[this._toSetString(aStr)]; } throw new Error('"' + aStr + '" is not in the set.'); }; @@ -6554,7 +9919,7 @@ define(function (require, exports, module) { }); -},{"./util":13,"amdefine":14}],7:[function(require,module,exports){ +},{"amdefine":17}],10:[function(require,module,exports){ /* -*- Mode: js; js-indent-level: 2; -*- */ /* * Copyright 2011 Mozilla Foundation and contributors @@ -6592,7 +9957,7 @@ define(function (require, exports, module) { * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ if (typeof define !== 'function') { - var define = require('amdefine')(module, require); + var define = require('amdefine')(module); } define(function (require, exports, module) { @@ -6700,7 +10065,7 @@ define(function (require, exports, module) { }); -},{"./base64":8,"amdefine":14}],8:[function(require,module,exports){ +},{"./base64":11,"amdefine":17}],11:[function(require,module,exports){ /* -*- Mode: js; js-indent-level: 2; -*- */ /* * Copyright 2011 Mozilla Foundation and contributors @@ -6708,7 +10073,7 @@ define(function (require, exports, module) { * http://opensource.org/licenses/BSD-3-Clause */ if (typeof define !== 'function') { - var define = require('amdefine')(module, require); + var define = require('amdefine')(module); } define(function (require, exports, module) { @@ -6744,7 +10109,7 @@ define(function (require, exports, module) { }); -},{"amdefine":14}],9:[function(require,module,exports){ +},{"amdefine":17}],12:[function(require,module,exports){ /* -*- Mode: js; js-indent-level: 2; -*- */ /* * Copyright 2011 Mozilla Foundation and contributors @@ -6752,7 +10117,7 @@ define(function (require, exports, module) { * http://opensource.org/licenses/BSD-3-Clause */ if (typeof define !== 'function') { - var define = require('amdefine')(module, require); + var define = require('amdefine')(module); } define(function (require, exports, module) { @@ -6827,7 +10192,7 @@ define(function (require, exports, module) { }); -},{"amdefine":14}],10:[function(require,module,exports){ +},{"amdefine":17}],13:[function(require,module,exports){ /* -*- Mode: js; js-indent-level: 2; -*- */ /* * Copyright 2011 Mozilla Foundation and contributors @@ -6835,7 +10200,7 @@ define(function (require, exports, module) { * http://opensource.org/licenses/BSD-3-Clause */ if (typeof define !== 'function') { - var define = require('amdefine')(module, require); + var define = require('amdefine')(module); } define(function (require, exports, module) { @@ -6857,7 +10222,6 @@ define(function (require, exports, module) { * - sources: An array of URLs to the original source files. * - names: An array of identifiers which can be referrenced by individual mappings. * - sourceRoot: Optional. The URL root from which all sources are relative. - * - sourcesContent: Optional. An array of contents of the original source files. * - mappings: A string of base64 VLQs which contain the actual mappings. * - file: The generated file this source map is associated with. * @@ -6884,9 +10248,8 @@ define(function (require, exports, module) { var sources = util.getArg(sourceMap, 'sources'); var names = util.getArg(sourceMap, 'names'); var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); - var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); var mappings = util.getArg(sourceMap, 'mappings'); - var file = util.getArg(sourceMap, 'file', null); + var file = util.getArg(sourceMap, 'file'); if (version !== this._version) { throw new Error('Unsupported version: ' + version); @@ -6894,8 +10257,7 @@ define(function (require, exports, module) { this._names = ArraySet.fromArray(names); this._sources = ArraySet.fromArray(sources); - this.sourceRoot = sourceRoot; - this.sourcesContent = sourcesContent; + this._sourceRoot = sourceRoot; this.file = file; // `this._generatedMappings` and `this._originalMappings` hold the parsed @@ -6937,7 +10299,7 @@ define(function (require, exports, module) { Object.defineProperty(SourceMapConsumer.prototype, 'sources', { get: function () { return this._sources.toArray().map(function (s) { - return this.sourceRoot ? util.join(this.sourceRoot, s) : s; + return this._sourceRoot ? util.join(this._sourceRoot, s) : s; }, this); } }); @@ -6981,7 +10343,12 @@ define(function (require, exports, module) { if (str.length > 0 && !mappingSeparator.test(str.charAt(0))) { // Original source. temp = base64VLQ.decode(str); - mapping.source = this._sources.at(previousSource + temp.value); + if (aSourceRoot) { + mapping.source = util.join(aSourceRoot, this._sources.at(previousSource + temp.value)); + } + else { + mapping.source = this._sources.at(previousSource + temp.value); + } previousSource += temp.value; str = temp.rest; if (str.length === 0 || mappingSeparator.test(str.charAt(0))) { @@ -7015,9 +10382,7 @@ define(function (require, exports, module) { } this._generatedMappings.push(mapping); - if (typeof mapping.originalLine === 'number') { - this._originalMappings.push(mapping); - } + this._originalMappings.push(mapping); } } @@ -7104,15 +10469,11 @@ define(function (require, exports, module) { this._generatedMappings, "generatedLine", "generatedColumn", - this._compareGeneratedPositions); + this._compareGeneratedPositions) if (mapping) { - var source = util.getArg(mapping, 'source', null); - if (source && this.sourceRoot) { - source = util.join(this.sourceRoot, source); - } return { - source: source, + source: util.getArg(mapping, 'source', null), line: util.getArg(mapping, 'originalLine', null), column: util.getArg(mapping, 'originalColumn', null), name: util.getArg(mapping, 'name', null) @@ -7127,47 +10488,6 @@ define(function (require, exports, module) { }; }; - /** - * Returns the original source content. The only argument is the url of the - * original source file. Returns null if no original source content is - * availible. - */ - SourceMapConsumer.prototype.sourceContentFor = - function SourceMapConsumer_sourceContentFor(aSource) { - if (!this.sourcesContent) { - return null; - } - - if (this.sourceRoot) { - aSource = util.relative(this.sourceRoot, aSource); - } - - if (this._sources.has(aSource)) { - return this.sourcesContent[this._sources.indexOf(aSource)]; - } - - var url; - if (this.sourceRoot - && (url = util.urlParse(this.sourceRoot))) { - // XXX: file:// URIs and absolute paths lead to unexpected behavior for - // many users. We can help them out when they expect file:// URIs to - // behave like it would if they were running a local HTTP server. See - // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. - var fileUriAbsPath = aSource.replace(/^file:\/\//, ""); - if (url.scheme == "file" - && this._sources.has(fileUriAbsPath)) { - return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] - } - - if ((!url.path || url.path == "/") - && this._sources.has("/" + aSource)) { - return this.sourcesContent[this._sources.indexOf("/" + aSource)]; - } - } - - throw new Error('"' + aSource + '" is not in the SourceMap.'); - }; - /** * Returns the generated line and column information for the original source, * line, and column positions provided. The only argument is an object with @@ -7190,15 +10510,11 @@ define(function (require, exports, module) { originalColumn: util.getArg(aArgs, 'column') }; - if (this.sourceRoot) { - needle.source = util.relative(this.sourceRoot, needle.source); - } - var mapping = this._findMapping(needle, this._originalMappings, "originalLine", "originalColumn", - this._compareOriginalPositions); + this._compareOriginalPositions) if (mapping) { return { @@ -7221,7 +10537,8 @@ define(function (require, exports, module) { * generated line/column in this source map. * * @param Function aCallback - * The function that is called with each mapping. + * The function that is called with each mapping. This function should + * not mutate the mapping. * @param Object aContext * Optional. If specified, this object will be the value of `this` every * time that `aCallback` is called. @@ -7249,28 +10566,14 @@ define(function (require, exports, module) { throw new Error("Unknown order of iteration."); } - var sourceRoot = this.sourceRoot; - mappings.map(function (mapping) { - var source = mapping.source; - if (source && sourceRoot) { - source = util.join(sourceRoot, source); - } - return { - source: source, - generatedLine: mapping.generatedLine, - generatedColumn: mapping.generatedColumn, - originalLine: mapping.originalLine, - originalColumn: mapping.originalColumn, - name: mapping.name - }; - }).forEach(aCallback, context); + mappings.forEach(aCallback, context); }; exports.SourceMapConsumer = SourceMapConsumer; }); -},{"./array-set":6,"./base64-vlq":7,"./binary-search":9,"./util":13,"amdefine":14}],11:[function(require,module,exports){ +},{"./array-set":9,"./base64-vlq":10,"./binary-search":12,"./util":16,"amdefine":17}],14:[function(require,module,exports){ /* -*- Mode: js; js-indent-level: 2; -*- */ /* * Copyright 2011 Mozilla Foundation and contributors @@ -7278,7 +10581,7 @@ define(function (require, exports, module) { * http://opensource.org/licenses/BSD-3-Clause */ if (typeof define !== 'function') { - var define = require('amdefine')(module, require); + var define = require('amdefine')(module); } define(function (require, exports, module) { @@ -7300,58 +10603,10 @@ define(function (require, exports, module) { this._sources = new ArraySet(); this._names = new ArraySet(); this._mappings = []; - this._sourcesContents = null; } SourceMapGenerator.prototype._version = 3; - /** - * Creates a new SourceMapGenerator based on a SourceMapConsumer - * - * @param aSourceMapConsumer The SourceMap. - */ - SourceMapGenerator.fromSourceMap = - function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { - var sourceRoot = aSourceMapConsumer.sourceRoot; - var generator = new SourceMapGenerator({ - file: aSourceMapConsumer.file, - sourceRoot: sourceRoot - }); - aSourceMapConsumer.eachMapping(function (mapping) { - var newMapping = { - generated: { - line: mapping.generatedLine, - column: mapping.generatedColumn - } - }; - - if (mapping.source) { - newMapping.source = mapping.source; - if (sourceRoot) { - newMapping.source = util.relative(sourceRoot, newMapping.source); - } - - newMapping.original = { - line: mapping.originalLine, - column: mapping.originalColumn - }; - - if (mapping.name) { - newMapping.name = mapping.name; - } - } - - generator.addMapping(newMapping); - }); - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content) { - generator.setSourceContent(sourceFile, content); - } - }); - return generator; - }; - /** * Add a single mapping from original source line and column to the generated * source's line and column for this source map being created. The mapping @@ -7387,110 +10642,6 @@ define(function (require, exports, module) { }); }; - /** - * Set the source content for a source file. - */ - SourceMapGenerator.prototype.setSourceContent = - function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { - var source = aSourceFile; - if (this._sourceRoot) { - source = util.relative(this._sourceRoot, source); - } - - if (aSourceContent !== null) { - // Add the source content to the _sourcesContents map. - // Create a new _sourcesContents map if the property is null. - if (!this._sourcesContents) { - this._sourcesContents = {}; - } - this._sourcesContents[util.toSetString(source)] = aSourceContent; - } else { - // Remove the source file from the _sourcesContents map. - // If the _sourcesContents map is empty, set the property to null. - delete this._sourcesContents[util.toSetString(source)]; - if (Object.keys(this._sourcesContents).length === 0) { - this._sourcesContents = null; - } - } - }; - - /** - * Applies the mappings of a sub-source-map for a specific source file to the - * source map being generated. Each mapping to the supplied source file is - * rewritten using the supplied source map. Note: The resolution for the - * resulting mappings is the minimium of this map and the supplied map. - * - * @param aSourceMapConsumer The source map to be applied. - * @param aSourceFile Optional. The filename of the source file. - * If omitted, SourceMapConsumer's file property will be used. - */ - SourceMapGenerator.prototype.applySourceMap = - function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile) { - // If aSourceFile is omitted, we will use the file property of the SourceMap - if (!aSourceFile) { - aSourceFile = aSourceMapConsumer.file; - } - var sourceRoot = this._sourceRoot; - // Make "aSourceFile" relative if an absolute Url is passed. - if (sourceRoot) { - aSourceFile = util.relative(sourceRoot, aSourceFile); - } - // Applying the SourceMap can add and remove items from the sources and - // the names array. - var newSources = new ArraySet(); - var newNames = new ArraySet(); - - // Find mappings for the "aSourceFile" - this._mappings.forEach(function (mapping) { - if (mapping.source === aSourceFile && mapping.original) { - // Check if it can be mapped by the source map, then update the mapping. - var original = aSourceMapConsumer.originalPositionFor({ - line: mapping.original.line, - column: mapping.original.column - }); - if (original.source !== null) { - // Copy mapping - if (sourceRoot) { - mapping.source = util.relative(sourceRoot, original.source); - } else { - mapping.source = original.source; - } - mapping.original.line = original.line; - mapping.original.column = original.column; - if (original.name !== null && mapping.name !== null) { - // Only use the identifier name if it's an identifier - // in both SourceMaps - mapping.name = original.name; - } - } - } - - var source = mapping.source; - if (source && !newSources.has(source)) { - newSources.add(source); - } - - var name = mapping.name; - if (name && !newNames.has(name)) { - newNames.add(name); - } - - }, this); - this._sources = newSources; - this._names = newNames; - - // Copy sourcesContents of applied map. - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content) { - if (sourceRoot) { - sourceFile = util.relative(sourceRoot, sourceFile); - } - this.setSourceContent(sourceFile, content); - } - }, this); - }; - /** * A mapping can have one of the three levels of data: * @@ -7524,24 +10675,6 @@ define(function (require, exports, module) { } }; - function cmpLocation(loc1, loc2) { - var cmp = (loc1 && loc1.line) - (loc2 && loc2.line); - return cmp ? cmp : (loc1 && loc1.column) - (loc2 && loc2.column); - } - - function strcmp(str1, str2) { - str1 = str1 || ''; - str2 = str2 || ''; - return (str1 > str2) - (str1 < str2); - } - - function cmpMapping(mappingA, mappingB) { - return cmpLocation(mappingA.generated, mappingB.generated) || - cmpLocation(mappingA.original, mappingB.original) || - strcmp(mappingA.source, mappingB.source) || - strcmp(mappingA.name, mappingB.name); - } - /** * Serialize the accumulated mappings in to the stream of base 64 VLQs * specified by the source map format. @@ -7557,12 +10690,17 @@ define(function (require, exports, module) { var result = ''; var mapping; - // The mappings must be guaranteed to be in sorted order before we start + // The mappings must be guarenteed to be in sorted order before we start // serializing them or else the generated line numbers (which are defined // via the ';' separators) will be all messed up. Note: it might be more // performant to maintain the sorting as we insert them, rather than as we // serialize them, but the big O is the same either way. - this._mappings.sort(cmpMapping); + this._mappings.sort(function (mappingA, mappingB) { + var cmp = mappingA.generated.line - mappingB.generated.line; + return cmp === 0 + ? mappingA.generated.column - mappingB.generated.column + : cmp; + }); for (var i = 0, len = this._mappings.length; i < len; i++) { mapping = this._mappings[i]; @@ -7576,9 +10714,6 @@ define(function (require, exports, module) { } else { if (i > 0) { - if (!cmpMapping(mapping, this._mappings[i - 1])) { - continue; - } result += ','; } } @@ -7627,17 +10762,6 @@ define(function (require, exports, module) { if (this._sourceRoot) { map.sourceRoot = this._sourceRoot; } - if (this._sourcesContents) { - map.sourcesContent = map.sources.map(function (source) { - if (map.sourceRoot) { - source = util.relative(map.sourceRoot, source); - } - return Object.prototype.hasOwnProperty.call( - this._sourcesContents, util.toSetString(source)) - ? this._sourcesContents[util.toSetString(source)] - : null; - }, this); - } return map; }; @@ -7653,7 +10777,7 @@ define(function (require, exports, module) { }); -},{"./array-set":6,"./base64-vlq":7,"./util":13,"amdefine":14}],12:[function(require,module,exports){ +},{"./array-set":9,"./base64-vlq":10,"./util":16,"amdefine":17}],15:[function(require,module,exports){ /* -*- Mode: js; js-indent-level: 2; -*- */ /* * Copyright 2011 Mozilla Foundation and contributors @@ -7661,12 +10785,11 @@ define(function (require, exports, module) { * http://opensource.org/licenses/BSD-3-Clause */ if (typeof define !== 'function') { - var define = require('amdefine')(module, require); + var define = require('amdefine')(module); } define(function (require, exports, module) { var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator; - var util = require('./util'); /** * SourceNodes provide a way to abstract over interpolating/concatenating @@ -7678,121 +10801,15 @@ define(function (require, exports, module) { * @param aSource The original source's filename. * @param aChunks Optional. An array of strings which are snippets of * generated JS, or other SourceNodes. - * @param aName The original identifier. */ - function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + function SourceNode(aLine, aColumn, aSource, aChunks) { this.children = []; - this.sourceContents = {}; - this.line = aLine === undefined ? null : aLine; - this.column = aColumn === undefined ? null : aColumn; - this.source = aSource === undefined ? null : aSource; - this.name = aName === undefined ? null : aName; + this.line = aLine; + this.column = aColumn; + this.source = aSource; if (aChunks != null) this.add(aChunks); } - /** - * Creates a SourceNode from generated code and a SourceMapConsumer. - * - * @param aGeneratedCode The generated code - * @param aSourceMapConsumer The SourceMap for the generated code - */ - SourceNode.fromStringWithSourceMap = - function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer) { - // The SourceNode we want to fill with the generated code - // and the SourceMap - var node = new SourceNode(); - - // The generated code - // Processed fragments are removed from this array. - var remainingLines = aGeneratedCode.split('\n'); - - // We need to remember the position of "remainingLines" - var lastGeneratedLine = 1, lastGeneratedColumn = 0; - - // The generate SourceNodes we need a code range. - // To extract it current and last mapping is used. - // Here we store the last mapping. - var lastMapping = null; - - aSourceMapConsumer.eachMapping(function (mapping) { - if (lastMapping === null) { - // We add the generated code until the first mapping - // to the SourceNode without any mapping. - // Each line is added as separate string. - while (lastGeneratedLine < mapping.generatedLine) { - node.add(remainingLines.shift() + "\n"); - lastGeneratedLine++; - } - if (lastGeneratedColumn < mapping.generatedColumn) { - var nextLine = remainingLines[0]; - node.add(nextLine.substr(0, mapping.generatedColumn)); - remainingLines[0] = nextLine.substr(mapping.generatedColumn); - lastGeneratedColumn = mapping.generatedColumn; - } - } else { - // We add the code from "lastMapping" to "mapping": - // First check if there is a new line in between. - if (lastGeneratedLine < mapping.generatedLine) { - var code = ""; - // Associate full lines with "lastMapping" - do { - code += remainingLines.shift() + "\n"; - lastGeneratedLine++; - lastGeneratedColumn = 0; - } while (lastGeneratedLine < mapping.generatedLine); - // When we reached the correct line, we add code until we - // reach the correct column too. - if (lastGeneratedColumn < mapping.generatedColumn) { - var nextLine = remainingLines[0]; - code += nextLine.substr(0, mapping.generatedColumn); - remainingLines[0] = nextLine.substr(mapping.generatedColumn); - lastGeneratedColumn = mapping.generatedColumn; - } - // Create the SourceNode. - addMappingWithCode(lastMapping, code); - } else { - // There is no new line in between. - // Associate the code between "lastGeneratedColumn" and - // "mapping.generatedColumn" with "lastMapping" - var nextLine = remainingLines[0]; - var code = nextLine.substr(0, mapping.generatedColumn - - lastGeneratedColumn); - remainingLines[0] = nextLine.substr(mapping.generatedColumn - - lastGeneratedColumn); - lastGeneratedColumn = mapping.generatedColumn; - addMappingWithCode(lastMapping, code); - } - } - lastMapping = mapping; - }, this); - // We have processed all mappings. - // Associate the remaining code in the current line with "lastMapping" - // and add the remaining lines without any mapping - addMappingWithCode(lastMapping, remainingLines.join("\n")); - - // Copy sourcesContent into SourceNode - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content) { - node.setSourceContent(sourceFile, content); - } - }); - - return node; - - function addMappingWithCode(mapping, code) { - if (mapping === null || mapping.source === undefined) { - node.add(code); - } else { - node.add(new SourceNode(mapping.originalLine, - mapping.originalColumn, - mapping.source, - code, - mapping.name)); - } - } - }; - /** * Add a chunk of generated JS to this source node. * @@ -7855,10 +10872,7 @@ define(function (require, exports, module) { } else { if (chunk !== '') { - aFn(chunk, { source: this.source, - line: this.line, - column: this.column, - name: this.name }); + aFn(chunk, { source: this.source, line: this.line, column: this.column }); } } }, this); @@ -7873,7 +10887,7 @@ define(function (require, exports, module) { SourceNode.prototype.join = function SourceNode_join(aSep) { var newChildren; var i; - var len = this.children.length; + var len = this.children.length if (len > 0) { newChildren = []; for (i = 0; i < len-1; i++) { @@ -7907,36 +10921,6 @@ define(function (require, exports, module) { return this; }; - /** - * Set the source content for a source file. This will be added to the SourceMapGenerator - * in the sourcesContent field. - * - * @param aSourceFile The filename of the source file - * @param aSourceContent The content of the source file - */ - SourceNode.prototype.setSourceContent = - function SourceNode_setSourceContent(aSourceFile, aSourceContent) { - this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; - }; - - /** - * Walk over the tree of SourceNodes. The walking function is called for each - * source file content and is passed the filename and source content. - * - * @param aFn The traversal function. - */ - SourceNode.prototype.walkSourceContents = - function SourceNode_walkSourceContents(aFn) { - this.children.forEach(function (chunk) { - if (chunk instanceof SourceNode) { - chunk.walkSourceContents(aFn); - } - }, this); - Object.keys(this.sourceContents).forEach(function (sourceFileKey) { - aFn(util.fromSetString(sourceFileKey), this.sourceContents[sourceFileKey]); - }, this); - }; - /** * Return the string representation of this source node. Walks over the tree * and concatenates all the various snippets together to one string. @@ -7960,36 +10944,25 @@ define(function (require, exports, module) { column: 0 }; var map = new SourceMapGenerator(aArgs); - var sourceMappingActive = false; this.walk(function (chunk, original) { generated.code += chunk; - if (original.source !== null - && original.line !== null - && original.column !== null) { + if (original.source != null + && original.line != null + && original.column != null) { map.addMapping({ source: original.source, original: { line: original.line, column: original.column }, - generated: { - line: generated.line, - column: generated.column - }, - name: original.name - }); - sourceMappingActive = true; - } else if (sourceMappingActive) { - map.addMapping({ generated: { line: generated.line, column: generated.column } }); - sourceMappingActive = false; } - chunk.split('').forEach(function (ch) { - if (ch === '\n') { + chunk.split('').forEach(function (char) { + if (char === '\n') { generated.line++; generated.column = 0; } else { @@ -7997,9 +10970,6 @@ define(function (require, exports, module) { } }); }); - this.walkSourceContents(function (sourceFile, sourceContent) { - map.setSourceContent(sourceFile, sourceContent); - }); return { code: generated.code, map: map }; }; @@ -8008,7 +10978,7 @@ define(function (require, exports, module) { }); -},{"./source-map-generator":11,"./util":13,"amdefine":14}],13:[function(require,module,exports){ +},{"./source-map-generator":14,"amdefine":17}],16:[function(require,module,exports){ /* -*- Mode: js; js-indent-level: 2; -*- */ /* * Copyright 2011 Mozilla Foundation and contributors @@ -8016,7 +10986,7 @@ define(function (require, exports, module) { * http://opensource.org/licenses/BSD-3-Clause */ if (typeof define !== 'function') { - var define = require('amdefine')(module, require); + var define = require('amdefine')(module); } define(function (require, exports, module) { @@ -8041,95 +11011,18 @@ define(function (require, exports, module) { } exports.getArg = getArg; - var urlRegexp = /([\w+\-.]+):\/\/((\w+:\w+)@)?([\w.]+)?(:(\d+))?(\S+)?/; - - function urlParse(aUrl) { - var match = aUrl.match(urlRegexp); - if (!match) { - return null; - } - return { - scheme: match[1], - auth: match[3], - host: match[4], - port: match[6], - path: match[7] - }; - } - exports.urlParse = urlParse; - - function urlGenerate(aParsedUrl) { - var url = aParsedUrl.scheme + "://"; - if (aParsedUrl.auth) { - url += aParsedUrl.auth + "@" - } - if (aParsedUrl.host) { - url += aParsedUrl.host; - } - if (aParsedUrl.port) { - url += ":" + aParsedUrl.port - } - if (aParsedUrl.path) { - url += aParsedUrl.path; - } - return url; - } - exports.urlGenerate = urlGenerate; - function join(aRoot, aPath) { - var url; - - if (aPath.match(urlRegexp)) { - return aPath; - } - - if (aPath.charAt(0) === '/' && (url = urlParse(aRoot))) { - url.path = aPath; - return urlGenerate(url); - } - - return aRoot.replace(/\/$/, '') + '/' + aPath; + return aPath.charAt(0) === '/' + ? aPath + : aRoot.replace(/\/*$/, '') + '/' + aPath; } exports.join = join; - /** - * Because behavior goes wacky when you set `__proto__` on objects, we - * have to prefix all the strings in our set with an arbitrary character. - * - * See https://github.com/mozilla/source-map/pull/31 and - * https://github.com/mozilla/source-map/issues/30 - * - * @param String aStr - */ - function toSetString(aStr) { - return '$' + aStr; - } - exports.toSetString = toSetString; - - function fromSetString(aStr) { - return aStr.substr(1); - } - exports.fromSetString = fromSetString; - - function relative(aRoot, aPath) { - aRoot = aRoot.replace(/\/$/, ''); - - var url = urlParse(aRoot); - if (aPath.charAt(0) == "/" && url && url.path == "/") { - return aPath.slice(1); - } - - return aPath.indexOf(aRoot + '/') === 0 - ? aPath.substr(aRoot.length + 1) - : aPath; - } - exports.relative = relative; - }); -},{"amdefine":14}],14:[function(require,module,exports){ -(function(process,__filename){/** vim: et:ts=4:sw=4:sts=4 - * @license amdefine 0.0.5 Copyright (c) 2011, The Dojo Foundation All Rights Reserved. +},{"amdefine":17}],17:[function(require,module,exports){ +var process=require("__browserify_process"),__filename="/../node_modules/jstransform/node_modules/source-map/node_modules/amdefine/amdefine.js";/** vim: et:ts=4:sw=4:sts=4 + * @license amdefine 0.1.0 Copyright (c) 2011, The Dojo Foundation All Rights Reserved. * Available via the MIT or new BSD license. * see: http://github.com/jrburke/amdefine for details */ @@ -8138,22 +11031,22 @@ define(function (require, exports, module) { /*global module, process */ 'use strict'; -var path = require('path'); - /** * Creates a define for node. * @param {Object} module the "module" object that is defined by Node for the * current module. - * @param {Function} [require]. Node's require function for the current module. + * @param {Function} [requireFn]. Node's require function for the current module. * It only needs to be passed in Node versions before 0.5, when module.require * did not exist. * @returns {Function} a define function that is usable for the current node * module. */ -function amdefine(module, require) { +function amdefine(module, requireFn) { + 'use strict'; var defineCache = {}, loaderCache = {}, alreadyCalled = false, + path = require('path'), makeRequire, stringRequire; /** @@ -8268,7 +11161,7 @@ function amdefine(module, require) { }; //Favor explicit value, passed in if the module wants to support Node 0.4. - require = require || function req() { + requireFn = requireFn || function req() { return module.require.apply(module, arguments); }; @@ -8282,7 +11175,7 @@ function amdefine(module, require) { uri: __filename, exports: e }; - r = makeRequire(require, e, m, id); + r = makeRequire(requireFn, e, m, id); } else { //Only support one define call per file if (alreadyCalled) { @@ -8295,7 +11188,7 @@ function amdefine(module, require) { //the exports in here is amdefine exports. e = module.exports; m = module; - r = makeRequire(require, e, m, module.id); + r = makeRequire(requireFn, e, m, module.id); } //If there are dependencies, they are strings, so need @@ -8308,7 +11201,7 @@ function amdefine(module, require) { //Call the factory with the right dependencies. if (typeof factory === 'function') { - result = factory.apply(module.exports, deps); + result = factory.apply(m.exports, deps); } else { result = factory; } @@ -8428,105 +11321,7 @@ function amdefine(module, require) { module.exports = amdefine; -})(require("__browserify_process"),"/../node_modules/source-map/node_modules/amdefine/amdefine.js") -},{"__browserify_process":3,"path":2}],15:[function(require,module,exports){ -/** - * Copyright 2013 Facebook, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* jshint browser: true */ -/* jslint evil: true */ - -'use strict'; -var runScripts; -var headEl; - -var transform = require('./fbtransform/lib/transform').transform; -var visitors = require('./fbtransform/visitors').transformVisitors; -var transform = transform.bind(null, visitors.react); -var docblock = require('./fbtransform/lib/docblock'); - - -exports.transform = transform; - -exports.exec = function(code) { - return eval(transform(code)); -}; - -if (typeof window === "undefined" || window === null) { - return; -} -headEl = document.getElementsByTagName('head')[0]; - -var run = exports.run = function(code) { - var jsx = docblock.parseAsObject(docblock.extract(code)).jsx; - - var functionBody = jsx ? transform(code).code : code; - var scriptEl = document.createElement('script'); - - scriptEl.innerHTML = functionBody; - headEl.appendChild(scriptEl); -}; - -var load = exports.load = function(url, callback) { - var xhr; - xhr = window.ActiveXObject ? new window.ActiveXObject('Microsoft.XMLHTTP') - : new XMLHttpRequest(); - // Disable async since we need to execute scripts in the order they are in the - // DOM to mirror normal script loading. - xhr.open('GET', url, false); - if ('overrideMimeType' in xhr) { - xhr.overrideMimeType('text/plain'); - } - xhr.onreadystatechange = function() { - if (xhr.readyState === 4) { - if (xhr.status === 0 || xhr.status === 200) { - run(xhr.responseText); - } else { - throw new Error("Could not load " + url); - } - if (callback) { - return callback(); - } - } - }; - return xhr.send(null); -}; - -runScripts = function() { - var scripts = document.getElementsByTagName('script'); - scripts = Array.prototype.slice.call(scripts); - var jsxScripts = scripts.filter(function(script) { - return script.type === 'text/jsx'; - }); - - jsxScripts.forEach(function(script) { - if (script.src) { - load(script.src); - } else { - run(script.innerHTML); - } - }); -}; - -if (window.addEventListener) { - window.addEventListener('DOMContentLoaded', runScripts, false); -} else { - window.attachEvent('onload', runScripts); -} - -},{"./fbtransform/lib/docblock":16,"./fbtransform/lib/transform":17,"./fbtransform/visitors":23}],16:[function(require,module,exports){ +},{"__browserify_process":5,"path":2}],18:[function(require,module,exports){ /** * Copyright 2013 Facebook, Inc. * @@ -8543,7 +11338,7 @@ if (window.addEventListener) { * limitations under the License. */ -var docblockRe = /^\s*(\/\*\*(.|\n)*?\*\/)/; +var docblockRe = /^\s*(\/\*\*(.|\r?\n)*?\*\/)/; var ltrimRe = /^\s*/; /** * @param {String} contents @@ -8561,9 +11356,9 @@ function extract(contents) { var commentStartRe = /^\/\*\*?/; var commentEndRe = /\*\/$/; var wsRe = /[\t ]+/g; -var stringStartRe = /(\n|^) *\*/g; -var multilineRe = /(?:^|\n) *(@[^\n]*?) *\n *([^@\n\s][^@\n]+?) *\n/g; -var propertyRe = /(?:^|\n) *@(\S+) *([^\n]*)/g; +var stringStartRe = /(\r?\n|^) *\*/g; +var multilineRe = /(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *([^@\r\n\s][^@\r\n]+?) *\r?\n/g; +var propertyRe = /(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g; /** * @param {String} contents @@ -8614,8 +11409,8 @@ exports.extract = extract; exports.parse = parse; exports.parseAsObject = parseAsObject; -},{}],17:[function(require,module,exports){ -(function(){/** +},{}],19:[function(require,module,exports){ +/** * Copyright 2013 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -8630,104 +11425,197 @@ exports.parseAsObject = parseAsObject; * See the License for the specific language governing permissions and * limitations under the License. */ -/*global exports:true*/ + + /*jslint node: true*/ "use strict"; /** * Syntax transfomer for javascript. Takes the source in, spits the source - * out. Tries to maintain readability and preserve whitespace and line numbers - * where posssible. + * out. * - * Support - * - ES6 class transformation + private property munging, see ./classes.js - * - React XHP style syntax transformations, see ./react.js - * - Bolt XHP style syntax transformations, see ./bolt.js - * - * The general flow is the following: - * - Parse the source with our customized esprima-parser - * https://github.com/voloko/esprima. We have to customize the parser to - * support non-standard XHP-style syntax. We parse the source range: true - * option that forces esprima to return positions in the source within - * resulting parse tree. - * - * - Traverse resulting syntax tree, trying to apply a set of visitors to each - * node. Each visitor should provide a .test() function that tests if the - * visitor can process a given node. - * - * - Visitor is responsible for code generation for a given syntax node. - * Generated code is stored in state.g.buffer that is passed to every - * visitor. It's up to the visitor to process the code the way it sees fit. - * All of the current visitors however use both the node and the original - * source to generate transformed code. They use nodes to generate new - * code and they copy the original source, preserving whitespace and comments, - * for the parts they don't care about. + * Parses input source with esprima, applies the given list of visitors to the + * AST tree, and returns the resulting output. */ -var esprima = require('esprima'); +var esprima = require('esprima-fb'); var createState = require('./utils').createState; var catchup = require('./utils').catchup; +var updateState = require('./utils').updateState; +var analyzeAndTraverse = require('./utils').analyzeAndTraverse; + +var Syntax = esprima.Syntax; /** - * @param {object} object + * @param {object} node + * @param {object} parentNode + * @return {boolean} + */ +function _nodeIsClosureScopeBoundary(node, parentNode) { + if (node.type === Syntax.Program) { + return true; + } + + var parentIsFunction = + parentNode.type === Syntax.FunctionDeclaration + || parentNode.type === Syntax.FunctionExpression; + + return node.type === Syntax.BlockStatement && parentIsFunction; +} + +function _nodeIsBlockScopeBoundary(node, parentNode) { + if (node.type === Syntax.Program) { + return false; + } + + return node.type === Syntax.BlockStatement + && parentNode.type === Syntax.CatchClause; +} + +/** + * @param {object} node * @param {function} visitor * @param {array} path * @param {object} state */ -function traverse(object, path, state) { - var key, child; +function traverse(node, path, state) { + // Create a scope stack entry if this is the first node we've encountered in + // its local scope + var parentNode = path[0]; + if (!Array.isArray(node) && state.localScope.parentNode !== parentNode) { + if (_nodeIsClosureScopeBoundary(node, parentNode)) { + var scopeIsStrict = + state.scopeIsStrict + || node.body.length > 0 + && node.body[0].type === Syntax.ExpressionStatement + && node.body[0].expression.type === Syntax.Literal + && node.body[0].expression.value === 'use strict'; - if (walker(traverse, object, path, state) === false) { - return; - } - path.unshift(object); - for (key in object) { - // skip obviously wrong attributes - if (key === 'range' || key === 'loc') { - continue; - } - if (object.hasOwnProperty(key)) { - child = object[key]; - if (typeof child === 'object' && child !== null) { - child.range && catchup(child.range[0], state); - traverse(child, path, state); - child.range && catchup(child.range[1], state); + if (node.type === Syntax.Program) { + state = updateState(state, { + scopeIsStrict: scopeIsStrict + }); + } else { + state = updateState(state, { + localScope: { + parentNode: parentNode, + parentScope: state.localScope, + identifiers: {} + }, + scopeIsStrict: scopeIsStrict + }); + + // All functions have an implicit 'arguments' object in scope + state.localScope.identifiers['arguments'] = true; + + // Include function arg identifiers in the scope boundaries of the + // function + if (parentNode.params.length > 0) { + var param; + for (var i = 0; i < parentNode.params.length; i++) { + param = parentNode.params[i]; + if (param.type === Syntax.Identifier) { + state.localScope.identifiers[param.name] = true; + } + } + } + + // Named FunctionExpressions scope their name within the body block of + // themselves only + if (parentNode.type === Syntax.FunctionExpression && parentNode.id) { + state.localScope.identifiers[parentNode.id.name] = true; + } } + + // Traverse and find all local identifiers in this closure first to + // account for function/variable declaration hoisting + collectClosureIdentsAndTraverse(node, path, state); + } + + if (_nodeIsBlockScopeBoundary(node, parentNode)) { + state = updateState(state, { + localScope: { + parentNode: parentNode, + parentScope: state.localScope, + identifiers: {} + } + }); + + if (parentNode.type === Syntax.CatchClause) { + state.localScope.identifiers[parentNode.param.name] = true; + } + collectBlockIdentsAndTraverse(node, path, state); } } - path.shift(); + + // Only catchup() before and after traversing a child node + function traverser(node, path, state) { + node.range && catchup(node.range[0], state); + traverse(node, path, state); + node.range && catchup(node.range[1], state); + } + + analyzeAndTraverse(walker, traverser, node, path, state); } -function walker(traverse, object, path, state) { +function collectClosureIdentsAndTraverse(node, path, state) { + analyzeAndTraverse( + visitLocalClosureIdentifiers, + collectClosureIdentsAndTraverse, + node, + path, + state + ); +} + +function collectBlockIdentsAndTraverse(node, path, state) { + analyzeAndTraverse( + visitLocalBlockIdentifiers, + collectBlockIdentsAndTraverse, + node, + path, + state + ); +} + +function visitLocalClosureIdentifiers(node, path, state) { + var identifiers = state.localScope.identifiers; + switch (node.type) { + case Syntax.FunctionExpression: + // Function expressions don't get their names (if there is one) added to + // the closure scope they're defined in + return false; + case Syntax.ClassDeclaration: + case Syntax.ClassExpression: + case Syntax.FunctionDeclaration: + if (node.id) { + identifiers[node.id.name] = true; + } + return false; + case Syntax.VariableDeclarator: + if (path[0].kind === 'var') { + identifiers[node.id.name] = true; + } + break; + } +} + +function visitLocalBlockIdentifiers(node, path, state) { + // TODO: Support 'let' here...maybe...one day...or something... + if (node.type === Syntax.CatchClause) { + return false; + } +} + +function walker(node, path, state) { var visitors = state.g.visitors; for (var i = 0; i < visitors.length; i++) { - if (visitors[i].test(object, path, state)) { - return visitors[i](traverse, object, path, state); + if (visitors[i].test(node, path, state)) { + return visitors[i](traverse, node, path, state); } } } -function runPass(source, visitors, options) { - var ast; - try { - ast = esprima.parse(source, { comment: true, loc: true, range: true }); - } catch (e) { - e.message = 'Parse Error: ' + e.message; - throw e; - } - var state = createState(source, options); - state.g.originalProgramAST = ast; - state.g.visitors = visitors; - - if (options.sourceMap) { - var SourceMapGenerator = require('source-map').SourceMapGenerator; - state.g.sourceMap = new SourceMapGenerator({ file: 'transformed.js' }); - } - traverse(ast, [], state); - catchup(source.length, state); - return state; -} - /** * Applies all available transformations to the source * @param {array} visitors @@ -8738,28 +11626,40 @@ function runPass(source, visitors, options) { function transform(visitors, source, options) { options = options || {}; - var state = runPass(source, visitors, options); - var sourceMap = state.g.sourceMap; - - if (sourceMap) { - return { - sourceMap: sourceMap, - sourceMapFilename: options.filename || 'source.js', - code: state.g.buffer - }; - } else { - return { - code: state.g.buffer - }; + var ast; + try { + ast = esprima.parse(source, { + comment: true, + loc: true, + range: true + }); + } catch (e) { + e.message = 'Parse Error: ' + e.message; + throw e; } -} + var state = createState(source, ast, options); + state.g.visitors = visitors; + if (options.sourceMap) { + var SourceMapGenerator = require('source-map').SourceMapGenerator; + state.g.sourceMap = new SourceMapGenerator({file: 'transformed.js'}); + } + + traverse(ast, [], state); + catchup(source.length, state); + + var ret = {code: state.g.buffer}; + if (options.sourceMap) { + ret.sourceMap = state.g.sourceMap; + ret.sourceMapFilename = options.filename || 'source.js'; + } + return ret; +} exports.transform = transform; -})() -},{"./utils":18,"esprima":4,"source-map":5}],18:[function(require,module,exports){ -(function(){/** +},{"./utils":20,"esprima-fb":6,"source-map":8}],20:[function(require,module,exports){ +/** * Copyright 2013 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -8774,31 +11674,59 @@ exports.transform = transform; * See the License for the specific language governing permissions and * limitations under the License. */ -/*global exports:true*/ + + +/*jslint node: true*/ /** - * State represents the given parser state. It has a local and global parts. - * Global contains parser position, source, etc. Local contains scope based - * properties, like current class name. State should contain all the info - * required for transformation. It's the only mandatory object that is being - * passed to every function in transform chain. + * A `state` object represents the state of the parser. It has "local" and + * "global" parts. Global contains parser position, source, etc. Local contains + * scope based properties like current class name. State should contain all the + * info required for transformation. It's the only mandatory object that is + * being passed to every function in transform chain. * - * @param {String} source - * @param {Object} transformOptions - * @return {Object} + * @param {string} source + * @param {object} transformOptions + * @return {object} */ -function createState(source, transformOptions) { +function createState(source, rootNode, transformOptions) { return { /** - * Name of the super class variable - * @type {String} + * A tree representing the current local scope (and its lexical scope chain) + * Useful for tracking identifiers from parent scopes, etc. + * @type {Object} */ - superVar: '', + localScope: { + parentNode: rootNode, + parentScope: null, + identifiers: {} + }, /** - * Name of the enclosing class scope + * The name (and, if applicable, expression) of the super class + * @type {Object} + */ + superClass: null, + /** + * The namespace to use when munging identifiers * @type {String} */ - scopeName: '', + mungeNamespace: '', + /** + * Ref to the node for the FunctionExpression of the enclosing + * MethodDefinition + * @type {Object} + */ + methodFuncNode: null, + /** + * Name of the enclosing class + * @type {String} + */ + className: null, + /** + * Whether we're currently within a `strict` scope + * @type {Bool} + */ + scopeIsStrict: null, /** * Global state (not affected by updateState) * @type {Object} @@ -8897,25 +11825,26 @@ function createState(source, transformOptions) { /** * Updates a copy of a given state with "update" and returns an updated state. * - * @param {Object} state - * @param {Object} update - * @return {Object} + * @param {object} state + * @param {object} update + * @return {object} */ function updateState(state, update) { - return { - g: state.g, - superVar: update.superVar || state.superVar, - scopeName: update.scopeName || state.scopeName - }; + var ret = Object.create(state); + Object.keys(update).forEach(function(updatedKey) { + ret[updatedKey] = update[updatedKey]; + }); + return ret; } /** * Given a state fill the resulting buffer from the original source up to * the end - * @param {Number} end - * @param {Object} state - * @param {Function?} contentTransformer Optional callback to transform newly - * added content. + * + * @param {number} end + * @param {object} state + * @param {?function} contentTransformer Optional callback to transform newly + * added content. */ function catchup(end, state, contentTransformer) { if (end < state.g.position) { @@ -8968,26 +11897,48 @@ function catchup(end, state, contentTransformer) { } /** - * Applies `catchup` but passing in a function that removes any non-whitespace - * characters. + * Removes all non-whitespace characters */ -var re = /(\S)/g; +var reNonWhite = /(\S)/g; function stripNonWhite(value) { - return value.replace(re, function() { + return value.replace(reNonWhite, function() { return ''; }); } + /** - * Catches up as `catchup` but turns each non-white character into a space. + * Catches up as `catchup` but removes all non-whitespace characters. */ function catchupWhiteSpace(end, state) { catchup(end, state, stripNonWhite); } +/** + * Removes all non-newline characters + */ +var reNonNewline = /[^\n]/g; +function stripNonNewline(value) { + return value.replace(reNonNewline, function() { + return ''; + }); +} + +/** + * Catches up as `catchup` but removes all non-newline characters. + * + * Equivalent to appending as many newlines as there are in the original source + * between the current position and `end`. + */ +function catchupNewlines(end, state) { + catchup(end, state, stripNonNewline); +} + + /** * Same as catchup but does not touch the buffer - * @param {Number} end - * @param {Object} state + * + * @param {number} end + * @param {object} state */ function move(end, state) { // move the internal cursors @@ -9011,17 +11962,18 @@ function move(end, state) { /** * Appends a string of text to the buffer - * @param {String} string - * @param {Object} state + * + * @param {string} str + * @param {object} state */ -function append(string, state) { - if (state.g.sourceMap && string) { +function append(str, state) { + if (state.g.sourceMap && str) { state.g.sourceMap.addMapping({ generated: { line: state.g.bufferLine, column: state.g.bufferColumn }, original: { line: state.g.sourceLine, column: state.g.sourceColumn }, source: state.g.sourceMapFilename }); - var transformedLines = string.split('\n'); + var transformedLines = str.split('\n'); if (transformedLines.length > 1) { state.g.bufferLine += transformedLines.length - 1; state.g.bufferColumn = 0; @@ -9029,16 +11981,16 @@ function append(string, state) { state.g.bufferColumn += transformedLines[transformedLines.length - 1].length; } - state.g.buffer += string; + state.g.buffer += str; } /** * Update indent using state.indentBy property. Indent is measured in * double spaces. Updates a single line only. * - * @param {String} str - * @param {Object} state - * @return {String} + * @param {string} str + * @param {object} state + * @return {string} */ function updateIndent(str, state) { for (var i = 0; i < -state.g.indentBy; i++) { @@ -9056,9 +12008,9 @@ function updateIndent(str, state) { * start * indent will be 2 * - * @param {Number} start - * @param {Object} state - * @return {Number} + * @param {number} start + * @param {object} state + * @return {number} */ function indentBefore(start, state) { var end = start; @@ -9082,19 +12034,113 @@ function getDocblock(state) { return state.g.docblock; } +function identWithinLexicalScope(identName, state, stopBeforeNode) { + var currScope = state.localScope; + while (currScope) { + if (currScope.identifiers[identName] !== undefined) { + return true; + } + + if (stopBeforeNode && currScope.parentNode === stopBeforeNode) { + break; + } + + currScope = currScope.parentScope; + } + return false; +} + +function identInLocalScope(identName, state) { + return state.localScope.identifiers[identName] !== undefined; +} + +function declareIdentInLocalScope(identName, state) { + state.localScope.identifiers[identName] = true; +} + +/** + * Apply the given analyzer function to the current node. If the analyzer + * doesn't return false, traverse each child of the current node using the given + * traverser function. + * + * @param {function} analyzer + * @param {function} traverser + * @param {object} node + * @param {function} visitor + * @param {array} path + * @param {object} state + */ +function analyzeAndTraverse(analyzer, traverser, node, path, state) { + var key, child; + + if (node.type) { + if (analyzer(node, path, state) === false) { + return; + } + path.unshift(node); + } + + for (key in node) { + // skip obviously wrong attributes + if (key === 'range' || key === 'loc') { + continue; + } + if (node.hasOwnProperty(key)) { + child = node[key]; + if (typeof child === 'object' && child !== null) { + traverser(child, path, state); + } + } + } + node.type && path.shift(); +} + +/** + * Checks whether a node or any of its sub-nodes contains + * a syntactic construct of the passed type. + * @param {object} node - AST node to test. + * @param {string} type - node type to lookup. + */ +function containsChildOfType(node, type) { + var foundMatchingChild = false; + function nodeTypeAnalyzer(node) { + if (node.type === type) { + foundMatchingChild = true; + return false; + } + } + function nodeTypeTraverser(child, path, state) { + if (!foundMatchingChild) { + foundMatchingChild = containsChildOfType(child, type); + } + } + analyzeAndTraverse( + nodeTypeAnalyzer, + nodeTypeTraverser, + node, + [] + ); + return foundMatchingChild; +} + +exports.append = append; exports.catchup = catchup; exports.catchupWhiteSpace = catchupWhiteSpace; -exports.append = append; +exports.catchupNewlines = catchupNewlines; +exports.containsChildOfType = containsChildOfType; +exports.createState = createState; +exports.declareIdentInLocalScope = declareIdentInLocalScope; +exports.getDocblock = getDocblock; +exports.identWithinLexicalScope = identWithinLexicalScope; +exports.identInLocalScope = identInLocalScope; +exports.indentBefore = indentBefore; exports.move = move; exports.updateIndent = updateIndent; -exports.indentBefore = indentBefore; exports.updateState = updateState; -exports.createState = createState; -exports.getDocblock = getDocblock; +exports.analyzeAndTraverse = analyzeAndTraverse; -})() -},{"./docblock":16}],19:[function(require,module,exports){ -(function(){/** +},{"./docblock":18}],21:[function(require,module,exports){ +/** * Copyright 2013 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -9109,487 +12155,572 @@ exports.getDocblock = getDocblock; * See the License for the specific language governing permissions and * limitations under the License. */ -/*global exports:true*/ -"use strict"; + +/*jslint node:true*/ /** - * Desugarizer for ES6 minimal class proposal. See - * http://wiki.ecmascript.org/doku.php?id=harmony:proposals - * - * Does not require any runtime. Preserves whitespace and comments. - * Supports a class declaration with methods, super calls and inheritance. - * Currently does not support for getters and setters, since there's a very - * low probability we're going to use them anytime soon. - * - * Additional features: - * - Any member with private name (the name with prefix _, such _name) inside - * the class's scope will be munged. This would will to eliminate the case - * of sub-class accidentally overriding the super-class's provate properties - * also discouage people from accessing private members that they should not - * access. However, quoted property names don't get munged. - * - * class SkinnedMesh extends require('THREE').Mesh { - * - * update(camera) { - * camera.code = 'iphone' - * super.update(camera); - * } - * - * / - * * @constructor - * / - * constructor(geometry, materials) { - * super(geometry, materials); - * - * super.update(1); - * - * this.identityMatrix = new THREE.Matrix4(); - * this.bones = []; - * this.boneMatrices = []; - * this._name = 'foo'; - * } - * - * / - * * some other code - * / - * readMore() { - * - * } - * - * _doSomething() { - * - * } - * } - * - * should be converted to - * - * var SkinnedMesh = (function() { - * var __super = require('parent').Mesh; - * - * / - * * @constructor - * / - * function SkinnedMesh(geometry, materials) { - * __super.call(this, geometry, materials); - * - * __super.prototype.update.call(this, 1); - * - * this.identityMatrix = new THREE.Matrix4(); - * this.bones = []; - * this.boneMatrices = []; - * this.$SkinnedMesh_name = 'foo'; - * } - * SkinnedMesh.prototype = Object.create(__super.prototype); - * SkinnedMesh.prototype.constructor = SkinnedMesh; - * - * / - * * @param camera - * / - * SkinnedMesh.prototype.update = function(camera) { - * camera.code = 'iphone' - * __super.prototype.update.call(this, camera); - * }; - * - * SkinnedMesh.prototype.readMore = function() { - * - * }; - * - * SkinnedMesh.prototype.$SkinnedMesh_doSomething = function() { - * - * }; - * - * return SkinnedMesh; - * })(); - * + * @typechecks */ -var Syntax = require('esprima').Syntax; +'use strict'; + var base62 = require('base62'); +var Syntax = require('esprima-fb').Syntax; +var utils = require('../src/utils'); -var catchup = require('../lib/utils').catchup; -var append = require('../lib/utils').append; -var move = require('../lib/utils').move; -var indentBefore = require('../lib/utils').indentBefore; -var updateIndent = require('../lib/utils').updateIndent; -var updateState = require('../lib/utils').updateState; +var SUPER_PROTO_IDENT_PREFIX = '____SuperProtoOf'; -function findConstructorIndex(object) { - var classElements = object.body && object.body.body || []; - for (var i = 0; i < classElements.length; i++) { - if (classElements[i].type === Syntax.MethodDefinition && - classElements[i].key.name === 'constructor') { - return i; - } - } - return -1; +var _anonClassUUIDCounter = 0; +var _mungedSymbolMaps = {}; + +/** + * Used to generate a unique class for use with code-gens for anonymous class + * expressions. + * + * @param {object} state + * @return {string} + */ +function _generateAnonymousClassName(state) { + var mungeNamespace = state.mungeNamespace || ''; + return '____Class' + mungeNamespace + base62.encode(_anonClassUUIDCounter++); } -var _mungedSymbolMaps = {}; -function getMungedName(scopeName, name, minify) { - if (minify) { - if (!_mungedSymbolMaps[scopeName]) { - _mungedSymbolMaps[scopeName] = { +/** + * Given an identifier name, munge it using the current state's mungeNamespace. + * + * @param {string} identName + * @param {object} state + * @return {string} + */ +function _getMungedName(identName, state) { + var mungeNamespace = state.mungeNamespace; + var shouldMinify = state.g.opts.minify; + + if (shouldMinify) { + if (!_mungedSymbolMaps[mungeNamespace]) { + _mungedSymbolMaps[mungeNamespace] = { symbolMap: {}, - identifierUUIDCounter: 0 + identUUIDCounter: 0 }; } - var symbolMap = _mungedSymbolMaps[scopeName].symbolMap; - if (!symbolMap[name]) { - symbolMap[name] = - base62.encode(_mungedSymbolMaps[scopeName].identifierUUIDCounter); - _mungedSymbolMaps[scopeName].identifierUUIDCounter++; + var symbolMap = _mungedSymbolMaps[mungeNamespace].symbolMap; + if (!symbolMap[identName]) { + symbolMap[identName] = + base62.encode(_mungedSymbolMaps[mungeNamespace].identUUIDCounter++); } - name = symbolMap[name]; + identName = symbolMap[identName]; } - return '$' + scopeName + name; + return '$' + mungeNamespace + identName; } -function shouldMungeName(scopeName, name, state) { - // only run when @preventMunge is not present in the docblock - if (state.g.preventMunge === undefined) { - var docblock = require('../lib/docblock'); - state.g.preventMunge = docblock.parseAsObject( - docblock.extract(state.g.source)).preventMunge !== undefined; - } - // Starts with only a single underscore (i.e. don't count double-underscores) - return !state.g.preventMunge && scopeName ? /^_(?!_)/.test(name) : false; -} - - -function getProtoOfPrototypeVariableName(superVar) { - return superVar + 'ProtoOfPrototype'; -} - -function getSuperKeyName(superVar) { - return superVar + 'Key'; -} - -function getSuperProtoOfPrototypeVariable(superVariableName, indent) { - var string = (indent + - 'var $proto = $superName && $superName.prototype ? ' + - '$superName.prototype : $superName;\n' - ).replace(/\$proto/g, getProtoOfPrototypeVariableName(superVariableName)) - .replace(/\$superName/g, superVariableName); - return string; -} - - -function getInheritanceSetup(superClassToken, className, indent, superName) { - var string = ''; - if (superClassToken) { - string += getStaticMethodsOnConstructorSetup(className, indent, superName); - string += getPrototypeOnConstructorSetup(className, indent, superName); - string += getConstructorPropertySetup(className, indent); - } - return string; -} - -function getStaticMethodsOnConstructorSetup(className, indent, superName) { - var string = ( indent + - 'for (var $keyName in $superName) {\n' + indent + - ' if ($superName.hasOwnProperty($keyName)) {\n' + indent + - ' $className[$keyName] = $superName[$keyName];\n' + indent + - ' }\n' + indent + - '}\n') - .replace(/\$className/g, className) - .replace(/\$keyName/g, getSuperKeyName(superName)) - .replace(/\$superName/g, superName); - return string; -} - -function getPrototypeOnConstructorSetup(className, indent, superName) { - var string = ( indent + - '$className.prototype = Object.create($protoPrototype);\n') - .replace(/\$protoPrototype/g, getProtoOfPrototypeVariableName(superName)) - .replace(/\$className/g, className); - return string; -} - -function getConstructorPropertySetup(className, indent) { - var string = ( indent + - '$className.prototype.constructor = $className;\n') - .replace(/\$className/g, className); - - return string; -} - -function getSuperConstructorSetup(superClassToken, indent, superName) { - if (!superClassToken) return ''; - var string = ( '\n' + indent + - ' if ($superName && $superName.prototype) {\n' + indent + - ' $superName.apply(this, arguments);\n' + indent + - ' }\n' + indent) - .replace(/\$superName/g, superName); - return string; -} - -function getMemberFunctionCall(superVar, propertyName, superArgs) { - var string = ( - '$superPrototype.$propertyName.call($superArguments)') - .replace(/\$superPrototype/g, getProtoOfPrototypeVariableName(superVar)) - .replace(/\$propertyName/g, propertyName) - .replace(/\$superArguments/g, superArgs); - return string; -} - -function getCallParams(classElement, state) { - var params = classElement.value.params; - if (!params.length) { - return ''; - } - return state.g.source.substring( - params[0].range[0], - params[params.length - 1].range[1]); -} - -function getSuperArguments(callExpression, state) { - var args = callExpression.arguments; - if (!args.length) { - return 'this'; - } - return 'this, ' + state.g.source.substring( - args[0].range[0], - args[args.length - 1].range[1]); -} - -// The seed is used to generate the name for an anonymous class, -// and this seed should be unique per browser's session. -// The value of the seed looks like this: 1229588505.2969012. -var classIDSeed = Date.now() % (60 * 60 * 1000) + Math.random(); - /** - * Generates a name for an anonymous class. The generated value looks like - * this: "Classkc6pcn_mniza1yvi" - * @param {String} scopeName - * @return {string} the scope name for Anonymous Class + * Extracts super class information from a class node. + * + * Information includes name of the super class and/or the expression string + * (if extending from an expression) + * + * @param {object} node + * @param {object} state + * @return {object} */ -function generateAnonymousClassName(scopeName) { - classIDSeed++; - return 'Class' + - (classIDSeed).toString(36).replace('.', '_') + - (scopeName || ''); -} - -function renderMethods(traverse, object, name, path, state) { - var classElements = object.body && object.body.body || []; - - move(object.body.range[0] + 1, state); - for (var i = 0; i < classElements.length; i++) { - if (classElements[i].key.name !== 'constructor') { - catchup(classElements[i].range[0], state); - - var memberName = classElements[i].key.name; - if (shouldMungeName(state.scopeName, memberName, state)) { - memberName = getMungedName( - state.scopeName, - memberName, - state.g.opts.minify - ); - } - - var prototypeOrStatic; - if (classElements[i]['static']) { - prototypeOrStatic = ''; - } else { - prototypeOrStatic = 'prototype.'; - } - - append(name + '.' + prototypeOrStatic + memberName + ' = ', state); - renderMethod(traverse, classElements[i], null, path, state); - append(';', state); - } - move(classElements[i].range[1], state); - } - if (classElements.length) { - append('\n', state); - } - move(object.range[1], state); -} - -function renderMethod(traverse, method, name, path, state) { - append(name ? 'function ' + name + '(' : 'function(', state); - append(getCallParams(method, state) + ') {', state); - move(method.value.body.range[0] + 1, state); - traverse(method.value.body, path, state); - catchup(method.value.body.range[1] - 1, state); - append('}', state); -} - -function renderSuperClass(traverse, superClass, path, state) { - append('var ' + state.superVar + ' = ', state); - move(superClass.range[0], state); - traverse(superClass, path, state); - catchup(superClass.range[1], state); - append(';\n', state); -} - -function renderConstructor(traverse, object, name, indent, path, state) { - var classElements = object.body && object.body.body || []; - var constructorIndex = findConstructorIndex(object); - var constructor = constructorIndex === -1 ? - null : - classElements[constructorIndex]; - if (constructor) { - move(constructorIndex === 0 ? - object.body.range[0] + 1 : - classElements[constructorIndex - 1].range[1], state); - catchup(constructor.range[0], state); - renderMethod(traverse, constructor, name, path, state); - append('\n', state); - } else { - if (object.superClass) { - append('\n' + indent, state); - } - append('function ', state); - if (object.id) { - move(object.id.range[0], state); - } - append(name, state); - if (object.id) { - move(object.id.range[1], state); - } - append('(){ ', state); - if (object.body) { - move(object.body.range[0], state); - } - append(getSuperConstructorSetup( - object.superClass, - indent, - state.superVar), state); - append('}\n', state); - } -} - -var superId = 0; -function renderClassBody(traverse, object, path, state) { - var name = object.id ? object.id.name : 'constructor'; - var superClass = object.superClass; - var indent = updateIndent( - indentBefore(object.range[0], state) + ' ', - state); - - state = updateState( - state, - { - scopeName: object.id ? object.id.name : - generateAnonymousClassName(state.scopeName), - superVar: superClass ? '__super' + superId++ : '' - }); - - // super class - if (superClass) { - append(indent, state); - renderSuperClass(traverse, superClass, path, state); - append(getSuperProtoOfPrototypeVariable(state.superVar, indent), state); - } - - renderConstructor(traverse, object, name, indent, path, state); - append(getInheritanceSetup(superClass, name, indent, state.superVar), state); - renderMethods(traverse, object, name, path, state); -} - - -/** - * @public - */ -function visitClassExpression(traverse, object, path, state) { - var indent = updateIndent( - indentBefore(object.range[0], state) + ' ', - state); - var name = object.id ? object.id.name : 'constructor'; - - append('(function() {\n', state); - renderClassBody(traverse, object, path, state); - append(indent + 'return ' + name + ';\n', state); - append(indent.substring(0, indent.length - 2) + '})()', state); - return false -} - -visitClassExpression.test = function(object, path, state) { - return object.type === Syntax.ClassExpression; -}; - -/** - * @public - */ -function visitClassDeclaration(traverse, object, path, state) { - state.g.indentBy--; - renderClassBody(traverse, object, path, state); - state.g.indentBy++; - return false; -} - -visitClassDeclaration.test = function(object, path, state) { - return object.type === Syntax.ClassDeclaration; -}; - - -/** - * @public - */ -function visitSuperCall(traverse, object, path, state) { - if (path[0].type === Syntax.CallExpression) { - append(state.superVar + - '.call(' + getSuperArguments(path[0], state) + ')', state); - move(path[0].range[1], state); - } else if (path[0].type === Syntax.MemberExpression) { - append(getMemberFunctionCall( - state.superVar, - path[0].property.name, - getSuperArguments(path[1], state)), state); - move(path[1].range[1], state); - } - return false; -} - -visitSuperCall.test = function(object, path, state) { - return state.superVar && object.type === Syntax.Identifier && - object.name === 'super'; -}; - -/** - * @public - */ -function visitPrivateProperty(traverse, object, path, state) { - var type = path[0] ? path[0].type : null; - if (type !== Syntax.Property) { - if (type === Syntax.MemberExpression) { - type = path[0].object ? path[0].object.type : null; - if (type === Syntax.Identifier && - path[0].object.range[0] === object.range[0]) { - // Identifier is a variable that appears "private". - return; - } +function _getSuperClassInfo(node, state) { + var ret = { + name: null, + expression: null + }; + if (node.superClass) { + if (node.superClass.type === Syntax.Identifier) { + ret.name = node.superClass.name; } else { - // Other syntax that are neither Property nor MemberExpression. - return; + // Extension from an expression + ret.name = _generateAnonymousClassName(state); + ret.expression = state.g.source.substring( + node.superClass.range[0], + node.superClass.range[1] + ); } } - - var oldName = object.name; - var newName = getMungedName( - state.scopeName, - oldName, - state.g.opts.minify - ); - append(newName, state); - move(object.range[1], state); + return ret; } -visitPrivateProperty.test = function(object, path, state) { - return object.type === Syntax.Identifier && - shouldMungeName(state.scopeName, object.name, state); +/** + * Used with .filter() to find the constructor method in a list of + * MethodDefinition nodes. + * + * @param {object} classElement + * @return {boolean} + */ +function _isConstructorMethod(classElement) { + return classElement.type === Syntax.MethodDefinition && + classElement.key.type === Syntax.Identifier && + classElement.key.name === 'constructor'; +} + +/** + * @param {object} node + * @param {object} state + * @return {boolean} + */ +function _shouldMungeIdentifier(node, state) { + return ( + !!state.methodFuncNode && + !utils.getDocblock(state).hasOwnProperty('preventMunge') && + /^_(?!_)/.test(node.name) + ); +} + +/** + * @param {function} traverse + * @param {object} node + * @param {array} path + * @param {object} state + */ +function visitClassMethod(traverse, node, path, state) { + utils.catchup(node.range[0], state); + path.unshift(node); + traverse(node.value, path, state); + path.shift(); + return false; +} +visitClassMethod.test = function(node, path, state) { + return node.type === Syntax.MethodDefinition; }; +/** + * @param {function} traverse + * @param {object} node + * @param {array} path + * @param {object} state + */ +function visitClassFunctionExpression(traverse, node, path, state) { + var methodNode = path[0]; -exports.visitClassDeclaration = visitClassDeclaration; -exports.visitClassExpression = visitClassExpression; -exports.visitSuperCall = visitSuperCall; -exports.visitPrivateProperty = visitPrivateProperty; + state = utils.updateState(state, { + methodFuncNode: node + }); -})() -},{"../lib/docblock":16,"../lib/utils":18,"base62":1,"esprima":4}],20:[function(require,module,exports){ -(function(){/** + if (methodNode.key.name === 'constructor') { + utils.append('function ' + state.className, state); + } else { + var methodName = methodNode.key.name; + if (_shouldMungeIdentifier(methodNode.key, state)) { + methodName = _getMungedName(methodName, state); + } + + var prototypeOrStatic = methodNode.static ? '' : 'prototype.'; + utils.append( + state.className + '.' + prototypeOrStatic + methodName + '=function', + state + ); + } + utils.move(methodNode.key.range[1], state); + + var params = node.params; + var paramName; + if (params.length > 0) { + for (var i = 0; i < params.length; i++) { + utils.catchup(node.params[i].range[0], state); + paramName = params[i].name; + if (_shouldMungeIdentifier(params[i], state)) { + paramName = _getMungedName(params[i].name, state); + } + utils.append(paramName, state); + utils.move(params[i].range[1], state); + } + } else { + utils.append('(', state); + } + utils.append(')', state); + utils.catchupWhiteSpace(node.body.range[0], state); + utils.append('{', state); + if (!state.scopeIsStrict) { + utils.append('"use strict";', state); + } + utils.move(node.body.range[0] + '{'.length, state); + + path.unshift(node); + traverse(node.body, path, state); + path.shift(); + utils.catchup(node.body.range[1], state); + + if (methodNode.key.name !== 'constructor') { + utils.append(';', state); + } + return false; +} +visitClassFunctionExpression.test = function(node, path, state) { + return node.type === Syntax.FunctionExpression + && path[0].type === Syntax.MethodDefinition; +}; + +/** + * @param {function} traverse + * @param {object} node + * @param {array} path + * @param {object} state + */ +function _renderClassBody(traverse, node, path, state) { + var className = state.className; + var superClass = state.superClass; + + // Set up prototype of constructor on same line as `extends` for line-number + // preservation. This relies on function-hoisting if a constructor function is + // defined in the class body. + if (superClass.name) { + // If the super class is an expression, we need to memoize the output of the + // expression into the generated class name variable and use that to refer + // to the super class going forward. Example: + // + // class Foo extends mixin(Bar, Baz) {} + // --transforms to-- + // function Foo() {} var ____Class0Blah = mixin(Bar, Baz); + if (superClass.expression !== null) { + utils.append( + 'var ' + superClass.name + '=' + superClass.expression + ';', + state + ); + } + + var keyName = superClass.name + '____Key'; + var keyNameDeclarator = ''; + if (!utils.identWithinLexicalScope(keyName, state)) { + keyNameDeclarator = 'var '; + utils.declareIdentInLocalScope(keyName, state); + } + utils.append( + 'for(' + keyNameDeclarator + keyName + ' in ' + superClass.name + '){' + + 'if(' + superClass.name + '.hasOwnProperty(' + keyName + ')){' + + className + '[' + keyName + ']=' + + superClass.name + '[' + keyName + '];' + + '}' + + '}', + state + ); + + var superProtoIdentStr = SUPER_PROTO_IDENT_PREFIX + superClass.name; + if (!utils.identWithinLexicalScope(superProtoIdentStr, state)) { + utils.append( + 'var ' + superProtoIdentStr + '=' + superClass.name + '===null?' + + 'null:' + superClass.name + '.prototype;', + state + ); + utils.declareIdentInLocalScope(superProtoIdentStr, state); + } + + utils.append( + className + '.prototype=Object.create(' + superProtoIdentStr + ');', + state + ); + utils.append( + className + '.prototype.constructor=' + className + ';', + state + ); + utils.append( + className + '.__superConstructor__=' + superClass.name + ';', + state + ); + } + + // If there's no constructor method specified in the class body, create an + // empty constructor function at the top (same line as the class keyword) + if (!node.body.body.filter(_isConstructorMethod).pop()) { + utils.append('function ' + className + '(){', state); + if (!state.scopeIsStrict) { + utils.append('"use strict";', state); + } + if (superClass.name) { + utils.append( + 'if(' + superClass.name + '!==null){' + + superClass.name + '.apply(this,arguments);}', + state + ); + } + utils.append('}', state); + } + + utils.move(node.body.range[0] + '{'.length, state); + traverse(node.body, path, state); + utils.catchupWhiteSpace(node.range[1], state); +} + +/** + * @param {function} traverse + * @param {object} node + * @param {array} path + * @param {object} state + */ +function visitClassDeclaration(traverse, node, path, state) { + var className = node.id.name; + var superClass = _getSuperClassInfo(node, state); + + state = utils.updateState(state, { + mungeNamespace: className, + className: className, + superClass: superClass + }); + + _renderClassBody(traverse, node, path, state); + + return false; +} +visitClassDeclaration.test = function(node, path, state) { + return node.type === Syntax.ClassDeclaration; +}; + +/** + * @param {function} traverse + * @param {object} node + * @param {array} path + * @param {object} state + */ +function visitClassExpression(traverse, node, path, state) { + var className = node.id && node.id.name || _generateAnonymousClassName(state); + var superClass = _getSuperClassInfo(node, state); + + utils.append('(function(){', state); + + state = utils.updateState(state, { + mungeNamespace: className, + className: className, + superClass: superClass + }); + + _renderClassBody(traverse, node, path, state); + + utils.append('return ' + className + ';})()', state); + return false; +} +visitClassExpression.test = function(node, path, state) { + return node.type === Syntax.ClassExpression; +}; + +/** + * @param {function} traverse + * @param {object} node + * @param {array} path + * @param {object} state + */ +function visitPrivateIdentifier(traverse, node, path, state) { + utils.append(_getMungedName(node.name, state), state); + utils.move(node.range[1], state); +} +visitPrivateIdentifier.test = function(node, path, state) { + if (node.type === Syntax.Identifier && _shouldMungeIdentifier(node, state)) { + // Always munge non-computed properties of MemberExpressions + // (a la preventing access of properties of unowned objects) + if (path[0].type === Syntax.MemberExpression && path[0].object !== node + && path[0].computed === false) { + return true; + } + + // Always munge identifiers that were declared within the method function + // scope + if (utils.identWithinLexicalScope(node.name, state, state.methodFuncNode)) { + return true; + } + + // Always munge private keys on object literals defined within a method's + // scope. + if (path[0].type === Syntax.Property + && path[1].type === Syntax.ObjectExpression) { + return true; + } + + // Always munge function parameters + if (path[0].type === Syntax.FunctionExpression + || path[0].type === Syntax.FunctionDeclaration) { + for (var i = 0; i < path[0].params.length; i++) { + if (path[0].params[i] === node) { + return true; + } + } + } + } + return false; +}; + +/** + * @param {function} traverse + * @param {object} node + * @param {array} path + * @param {object} state + */ +function visitSuperCallExpression(traverse, node, path, state) { + var superClassName = state.superClass.name; + + if (node.callee.type === Syntax.Identifier) { + utils.append(superClassName + '.call(', state); + utils.move(node.callee.range[1], state); + } else if (node.callee.type === Syntax.MemberExpression) { + utils.append(SUPER_PROTO_IDENT_PREFIX + superClassName, state); + utils.move(node.callee.object.range[1], state); + + if (node.callee.computed) { + // ["a" + "b"] + utils.catchup(node.callee.property.range[1] + ']'.length, state); + } else { + // .ab + utils.append('.' + node.callee.property.name, state); + } + + utils.append('.call(', state); + utils.move(node.callee.range[1], state); + } + + utils.append('this', state); + if (node.arguments.length > 0) { + utils.append(',', state); + utils.catchupWhiteSpace(node.arguments[0].range[0], state); + traverse(node.arguments, path, state); + } + + utils.catchupWhiteSpace(node.range[1], state); + utils.append(')', state); + return false; +} +visitSuperCallExpression.test = function(node, path, state) { + if (state.superClass && node.type === Syntax.CallExpression) { + var callee = node.callee; + if (callee.type === Syntax.Identifier && callee.name === 'super' + || callee.type == Syntax.MemberExpression + && callee.object.name === 'super') { + return true; + } + } + return false; +}; + +/** + * @param {function} traverse + * @param {object} node + * @param {array} path + * @param {object} state + */ +function visitSuperMemberExpression(traverse, node, path, state) { + var superClassName = state.superClass.name; + + utils.append(SUPER_PROTO_IDENT_PREFIX + superClassName, state); + utils.move(node.object.range[1], state); +} +visitSuperMemberExpression.test = function(node, path, state) { + return state.superClass + && node.type === Syntax.MemberExpression + && node.object.type === Syntax.Identifier + && node.object.name === 'super'; +}; + +exports.visitorList = [ + visitClassDeclaration, + visitClassExpression, + visitClassFunctionExpression, + visitClassMethod, + visitPrivateIdentifier, + visitSuperCallExpression, + visitSuperMemberExpression +]; + +},{"../src/utils":20,"base62":7,"esprima-fb":6}],22:[function(require,module,exports){ +/** + * Copyright 2013 Facebook, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* jshint browser: true */ +/* jslint evil: true */ + +'use strict'; +var runScripts; +var headEl; + +var transform = require('jstransform').transform; +var visitors = require('./fbtransform/visitors').transformVisitors; +var transform = transform.bind(null, visitors.react); +var docblock = require('jstransform/src/docblock'); + + +exports.transform = transform; + +exports.exec = function(code) { + return eval(transform(code).code); +}; + +if (typeof window === "undefined" || window === null) { + return; +} +headEl = document.getElementsByTagName('head')[0]; + +var run = exports.run = function(code) { + var jsx = docblock.parseAsObject(docblock.extract(code)).jsx; + + var functionBody = jsx ? transform(code).code : code; + var scriptEl = document.createElement('script'); + + scriptEl.innerHTML = functionBody; + headEl.appendChild(scriptEl); +}; + +var load = exports.load = function(url, callback) { + var xhr; + xhr = window.ActiveXObject ? new window.ActiveXObject('Microsoft.XMLHTTP') + : new XMLHttpRequest(); + + // Disable async since we need to execute scripts in the order they are in the + // DOM to mirror normal script loading. + xhr.open('GET', url, false); + if ('overrideMimeType' in xhr) { + xhr.overrideMimeType('text/plain'); + } + xhr.onreadystatechange = function() { + if (xhr.readyState === 4) { + if (xhr.status === 0 || xhr.status === 200) { + run(xhr.responseText); + } else { + throw new Error("Could not load " + url); + } + if (callback) { + return callback(); + } + } + }; + return xhr.send(null); +}; + +runScripts = function() { + var scripts = document.getElementsByTagName('script'); + scripts = Array.prototype.slice.call(scripts); + var jsxScripts = scripts.filter(function(script) { + return script.type === 'text/jsx'; + }); + + console.warn("You are using the in-browser JSX transformer. Be sure to precompile your JSX for production - http://facebook.github.io/react/docs/tooling-integration.html#jsx"); + + jsxScripts.forEach(function(script) { + if (script.src) { + load(script.src); + } else { + run(script.innerHTML); + } + }); +}; + +if (window.addEventListener) { + window.addEventListener('DOMContentLoaded', runScripts, false); +} else { + window.attachEvent('onload', runScripts); +} + +},{"./fbtransform/visitors":26,"jstransform":19,"jstransform/src/docblock":18}],23:[function(require,module,exports){ +/** * Copyright 2013 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -9607,12 +12738,13 @@ exports.visitPrivateProperty = visitPrivateProperty; /*global exports:true*/ "use strict"; -var Syntax = require('esprima').Syntax; +var Syntax = require('esprima-fb').Syntax; -var catchup = require('../lib/utils').catchup; -var append = require('../lib/utils').append; -var move = require('../lib/utils').move; -var getDocblock = require('../lib/utils').getDocblock; +var catchup = require('jstransform/src/utils').catchup; +var catchupWhiteSpace = require('jstransform/src/utils').catchupWhiteSpace; +var append = require('jstransform/src/utils').append; +var move = require('jstransform/src/utils').move; +var getDocblock = require('jstransform/src/utils').getDocblock; var FALLBACK_TAGS = require('./xjs').knownTags; var renderXJSExpressionContainer = @@ -9634,11 +12766,6 @@ var quoteAttrName = require('./xjs').quoteAttrName; * javascript since "class" is not a valid object key in javascript. */ -var JSX_ATTRIBUTE_RENAMES = { - 'class': 'className', - cxName: 'className' -}; - var JSX_ATTRIBUTE_TRANSFORMS = { cxName: function(attr) { if (attr.value.type !== Syntax.Literal) { @@ -9684,7 +12811,7 @@ function visitReactTag(traverse, object, path, state) { throw new Error( 'Namespace attributes are not supported. ReactJSX is not XML.'); } - var name = JSX_ATTRIBUTE_RENAMES[attr.name.name] || attr.name.name; + var name = attr.name.name; var isFirst = index === 0; var isLast = index === object.attributes.length - 1; @@ -9701,19 +12828,21 @@ function visitReactTag(traverse, object, path, state) { if (!isLast) { append(',', state); } - } else if (JSX_ATTRIBUTE_TRANSFORMS[attr.name.name]) { - move(attr.value.range[0], state); - append(JSX_ATTRIBUTE_TRANSFORMS[attr.name.name](attr), state); - move(attr.value.range[1], state); - if (!isLast) { - append(',', state); - } - } else if (attr.value.type === Syntax.Literal) { - move(attr.value.range[0], state); - renderXJSLiteral(attr.value, isLast, state); } else { - move(attr.value.range[0], state); - renderXJSExpressionContainer(traverse, attr.value, isLast, path, state); + move(attr.name.range[1], state); + // Use catchupWhiteSpace to skip over the '=' in the attribute + catchupWhiteSpace(attr.value.range[0], state); + if (JSX_ATTRIBUTE_TRANSFORMS[attr.name.name]) { + append(JSX_ATTRIBUTE_TRANSFORMS[attr.name.name](attr), state); + move(attr.value.range[1], state); + if (!isLast) { + append(',', state); + } + } else if (attr.value.type === Syntax.Literal) { + renderXJSLiteral(attr.value, isLast, state); + } else { + renderXJSExpressionContainer(traverse, attr.value, isLast, path, state); + } } if (isLast) { @@ -9778,9 +12907,8 @@ visitReactTag.test = function(object, path, state) { exports.visitReactTag = visitReactTag; -})() -},{"../lib/utils":18,"./xjs":22,"esprima":4}],21:[function(require,module,exports){ -(function(){/** +},{"./xjs":25,"esprima-fb":6,"jstransform/src/utils":20}],24:[function(require,module,exports){ +/** * Copyright 2013 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -9798,10 +12926,10 @@ exports.visitReactTag = visitReactTag; /*global exports:true*/ "use strict"; -var Syntax = require('esprima').Syntax; -var catchup = require('../lib/utils').catchup; -var append = require('../lib/utils').append; -var getDocblock = require('../lib/utils').getDocblock; +var Syntax = require('esprima-fb').Syntax; +var catchup = require('jstransform/src/utils').catchup; +var append = require('jstransform/src/utils').append; +var getDocblock = require('jstransform/src/utils').getDocblock; /** * Transforms the following: @@ -9844,9 +12972,8 @@ visitReactDisplayName.test = function(object, path, state) { exports.visitReactDisplayName = visitReactDisplayName; -})() -},{"../lib/utils":18,"esprima":4}],22:[function(require,module,exports){ -(function(){/** +},{"esprima-fb":6,"jstransform/src/utils":20}],25:[function(require,module,exports){ +/** * Copyright 2013 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -9863,10 +12990,10 @@ exports.visitReactDisplayName = visitReactDisplayName; */ /*global exports:true*/ "use strict"; -var append = require('../lib/utils').append; -var catchup = require('../lib/utils').catchup; -var move = require('../lib/utils').move; -var Syntax = require('esprima').Syntax; +var append = require('jstransform/src/utils').append; +var catchup = require('jstransform/src/utils').catchup; +var move = require('jstransform/src/utils').move; +var Syntax = require('esprima-fb').Syntax; var knownTags = { a: true, @@ -10020,6 +13147,7 @@ function trimWithSingleSpace(string) { function renderXJSLiteral(object, isLast, state, start, end) { /** Added blank check filtering and triming*/ var trimmedChildValue = safeTrim(object.value); + var hasFinalNewLine = false; if (trimmedChildValue) { // head whitespace @@ -10039,7 +13167,7 @@ function renderXJSLiteral(object, isLast, state, start, end) { }); var hasInitialNewLine = initialLines[0] !== lines[0]; - var hasFinalNewLine = + hasFinalNewLine = initialLines[initialLines.length - 1] !== lines[lines.length - 1]; var numLines = lines.length; @@ -10051,20 +13179,18 @@ function renderXJSLiteral(object, isLast, state, start, end) { } else { var preString = ''; var postString = ''; - var leading = ''; + var leading = line.match(/^[ \t]*/)[0]; if (ii === 0) { if (hasInitialNewLine) { preString = ' '; - leading = '\n'; + leading = '\n' + leading; } if (trimmedChildValueWithSpace.substring(0, 1) === ' ') { // If this is the first line, and the original content starts with // whitespace, place a single space at the beginning. preString = ' '; } - } else { - leading = line.match(/^[ \t]*/)[0]; } if (!lastLine || trimmedChildValueWithSpace.substr( trimmedChildValueWithSpace.length - 1, 1) === ' ' || @@ -10104,6 +13230,9 @@ function renderXJSLiteral(object, isLast, state, start, end) { } // tail whitespace + if (hasFinalNewLine) { + append('\n', state); + } append(object.value.match(/[ \t]*$/)[0], state); move(object.range[1], state); } @@ -10137,10 +13266,9 @@ exports.renderXJSExpressionContainer = renderXJSExpressionContainer; exports.renderXJSLiteral = renderXJSLiteral; exports.quoteAttrName = quoteAttrName; -})() -},{"../lib/utils":18,"esprima":4}],23:[function(require,module,exports){ -(function(){/*global exports:true*/ -var classes = require('./transforms/classes'); +},{"esprima-fb":6,"jstransform/src/utils":20}],26:[function(require,module,exports){ +/*global exports:true*/ +var es6Classes = require('jstransform/visitors/es6-class-visitors').visitorList; var react = require('./transforms/react'); var reactDisplayName = require('./transforms/reactDisplayName'); @@ -10148,21 +13276,13 @@ var reactDisplayName = require('./transforms/reactDisplayName'); * Map from transformName => orderedListOfVisitors. */ var transformVisitors = { - 'es6-classes': [ - classes.visitClassExpression, - classes.visitClassDeclaration, - classes.visitSuperCall, - classes.visitPrivateProperty + 'es6-classes': es6Classes, + 'react': [ + react.visitReactTag, + reactDisplayName.visitReactDisplayName ] }; -transformVisitors.react = transformVisitors[ - "es6-classes" -].concat([ - react.visitReactTag, - reactDisplayName.visitReactDisplayName -]); - /** * Specifies the order in which each transform should run. */ @@ -10191,7 +13311,7 @@ function getVisitorsList(excludes) { exports.getVisitorsList = getVisitorsList; exports.transformVisitors = transformVisitors; -})() -},{"./transforms/classes":19,"./transforms/react":20,"./transforms/reactDisplayName":21}]},{},[15])(15) +},{"./transforms/react":23,"./transforms/reactDisplayName":24,"jstransform/visitors/es6-class-visitors":21}]},{},[22]) +(22) }); ; \ No newline at end of file diff --git a/js/live_editor.js b/js/live_editor.js index 68453e1077..dee550959a 100644 --- a/js/live_editor.js +++ b/js/live_editor.js @@ -44,7 +44,7 @@ var CodeMirrorEditor = React.createClass({displayName: 'CodeMirrorEditor', } return ( - React.DOM.div( {className:this.props.className}, + React.DOM.div( {class:this.props.className}, editor ) ); @@ -76,22 +76,22 @@ var ReactPlayground = React.createClass({displayName: 'ReactPlayground', content = CodeMirrorEditor( {onChange:this.bindState('code'), - className:"playgroundStage", + class:"playgroundStage", codeText:this.state.code} ); } else if (this.state.mode === this.MODES.JS) { content = - React.DOM.div( {className:"playgroundJS playgroundStage"}, + React.DOM.div( {class:"playgroundJS playgroundStage"}, this.getDesugaredCode() ); } return ( - React.DOM.div( {className:"playground"}, - React.DOM.div( {className:"playgroundCode"}, + React.DOM.div( {class:"playground"}, + React.DOM.div( {class:"playgroundCode"}, content ), - React.DOM.div( {className:"playgroundPreview"}, + React.DOM.div( {class:"playgroundPreview"}, React.DOM.div( {ref:"mount"} ) ) ) @@ -121,7 +121,7 @@ var ReactPlayground = React.createClass({displayName: 'ReactPlayground', } } catch (e) { React.renderComponent( - React.DOM.div( {content:e.toString(), className:"playgroundError"} ), + React.DOM.div( {content:e.toString(), class:"playgroundError"} ), mountNode ); } diff --git a/js/react.min.js b/js/react.min.js index 2c015f13ea..4e190f159d 100644 --- a/js/react.min.js +++ b/js/react.min.js @@ -1,5 +1,5 @@ /** - * React v0.4.1 + * React v0.5.0 * * Copyright 2013 Facebook, Inc. * @@ -15,6 +15,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -!function(e){if("function"==typeof bootstrap)bootstrap("react",e);else if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else if("undefined"!=typeof ses){if(!ses.ok())return;ses.makeReact=e}else"undefined"!=typeof window?window.React=e():global.React=e()}(function(){return function(e,t,n){function r(n,i){if(!t[n]){if(!e[n]){var a="function"==typeof require&&require;if(!i&&a)return a(n,!0);if(o)return o(n,!0);throw new Error("Cannot find module '"+n+"'")}var s=t[n]={exports:{}};e[n][0].call(s.exports,function(t){var o=e[n][1][t];return r(o?o:t)},s,s.exports)}return t[n].exports}for(var o="function"==typeof require&&require,i=0;i8));var _=!1;E.canUseDOM&&(_=D("input")&&(!("documentMode"in document)||document.documentMode>9));var x={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},A={get:function(){return N.get.call(this)},set:function(e){T=""+e,N.set.call(this,e)}},w={eventTypes:O,extractEvents:function(e,t,r,o){var i,l;if(n(t)?S?i=a:l=s:u(t)?_?i=d:(i=f,l=h):v(t)&&(i=m),i){var c=i(e,t,r);if(c){var p=M.getPooled(O.change,c,o);return C.accumulateTwoPhaseDispatches(p),p}}l&&l(e,t,r)}};t.exports=w}()},{"./EventConstants":13,"./EventPluginHub":15,"./EventPropagators":18,"./ExecutionEnvironment":19,"./SyntheticEvent":51,"./isEventSupported":79,"./keyOf":82}],6:[function(e,t){!function(){"use strict";var n=e("./Danger"),r=e("./insertNodeAt"),o=e("./keyOf");e("./throwIf");var i=o({moveFrom:null}),a=o({insertMarkup:null}),s=o({removeAt:null}),u=function(e,t){for(var n,r,o,a=0;aa;a++)o=r(e,t[0],o||n)}function i(e,t,r){var i=n(t),a=r?e.childNodes[r-1]:null;o(e,i,a)}function a(e,t){var r=e.parentNode,o=n(t);r.replaceChild(o[0],e)}var s=e("./ExecutionEnvironment");e("./throwIf");var u=s.canUseDOM?document.createElement("div"):null,l={option:[1,'"],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "]};l.optgroup=l.option,l.tbody=l.thead,l.tfoot=l.thead,l.colgroup=l.thead,l.caption=l.thead,l.th=l.td;var c=[1,"?
    ","
    "];if(u){for(var p in l)l.hasOwnProperty(p)&&(u.innerHTML="<"+p+">",u.firstChild&&(l[p]=null));u.innerHTML="",u.firstChild&&(c=null)}var d={dangerouslyInsertMarkupAt:i,dangerouslyReplaceNodeWithMarkup:a};t.exports=d},{"./ExecutionEnvironment":19,"./throwIf":89}],10:[function(e,t){"use strict";var n=e("./DOMProperty"),r=n.injection.MUST_USE_ATTRIBUTE,o=n.injection.MUST_USE_PROPERTY,i=n.injection.HAS_BOOLEAN_VALUE,a=n.injection.HAS_SIDE_EFFECTS,s={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accessKey:null,accept:null,action:null,ajaxify:r,allowFullScreen:r|i,allowTransparency:r,alt:null,autoComplete:null,autoFocus:i,autoPlay:i,cellPadding:null,cellSpacing:null,checked:o|i,className:o,colSpan:null,contentEditable:null,contextMenu:r,controls:o|i,data:null,dateTime:r,dir:null,disabled:o|i,draggable:null,encType:null,frameBorder:r,height:r,hidden:r|i,href:null,htmlFor:null,icon:null,id:o,label:null,lang:null,list:null,max:null,maxLength:r,method:null,min:null,multiple:o|i,name:null,pattern:null,poster:null,preload:null,placeholder:null,radioGroup:null,rel:null,readOnly:o|i,required:i,role:r,scrollLeft:o,scrollTop:o,selected:o|i,size:null,spellCheck:null,src:null,step:null,style:null,tabIndex:null,target:null,title:null,type:null,value:o|a,width:r,wmode:r,cx:o,cy:o,d:o,fill:o,fx:o,fy:o,points:o,r:o,stroke:o,strokeLinecap:o,strokeWidth:o,transform:o,x:o,x1:o,x2:o,version:o,viewBox:o,y:o,y1:o,y2:o,spreadMethod:o,offset:o,stopColor:o,stopOpacity:o,gradientUnits:o,gradientTransform:o},DOMAttributeNames:{className:"class",htmlFor:"for",strokeLinecap:"stroke-linecap",strokeWidth:"stroke-width",stopColor:"stop-color",stopOpacity:"stop-opacity"},DOMPropertyNames:{autoComplete:"autocomplete",autoFocus:"autofocus",autoPlay:"autoplay",encType:"enctype",radioGroup:"radiogroup",spellCheck:"spellcheck"},DOMMutationMethods:{className:function(e,t){e.className=t||""}}};t.exports=s},{"./DOMProperty":7}],11:[function(e,t){"use strict";var n=e("./keyOf"),r=[n({ResponderEventPlugin:null}),n({SimpleEventPlugin:null}),n({TapEventPlugin:null}),n({EnterLeaveEventPlugin:null}),n({ChangeEventPlugin:null}),n({AnalyticsEventPlugin:null}),n({MobileSafariClickEventPlugin:null})];t.exports=r},{"./keyOf":82}],12:[function(e,t){!function(){"use strict";var n=e("./EventConstants"),r=e("./EventPropagators"),o=e("./ExecutionEnvironment"),i=e("./SyntheticMouseEvent"),a=e("./ReactMount"),s=e("./keyOf"),u=n.topLevelTypes,l=a.getFirstReactDOM,c={mouseEnter:{registrationName:s({onMouseEnter:null})},mouseLeave:{registrationName:s({onMouseLeave:null})}},p={eventTypes:c,extractEvents:function(e,t,n,s){if(e===u.topMouseOver&&(s.relatedTarget||s.fromElement))return null;if(e!==u.topMouseOut&&e!==u.topMouseOver)return null;var p,d;if(e===u.topMouseOut?(p=t,d=l(s.relatedTarget||s.toElement)||o.global):(p=o.global,d=t),p===d)return null;var h=p?a.getID(p):"",f=d?a.getID(d):"",v=i.getPooled(c.mouseLeave,h,s),m=i.getPooled(c.mouseEnter,f,s);return r.accumulateEnterLeaveDispatches(v,m,h,f),[v,m]}};t.exports=p}()},{"./EventConstants":13,"./EventPropagators":18,"./ExecutionEnvironment":19,"./ReactMount":39,"./SyntheticMouseEvent":54,"./keyOf":82}],13:[function(e,t){"use strict";var n=e("./keyMirror"),r=n({bubbled:null,captured:null}),o=n({topBlur:null,topChange:null,topClick:null,topDOMCharacterDataModified:null,topDoubleClick:null,topDrag:null,topDragEnd:null,topDragEnter:null,topDragExit:null,topDragLeave:null,topDragOver:null,topDragStart:null,topDrop:null,topFocus:null,topInput:null,topKeyDown:null,topKeyPress:null,topKeyUp:null,topMouseDown:null,topMouseMove:null,topMouseOut:null,topMouseOver:null,topMouseUp:null,topScroll:null,topSelectionChange:null,topSubmit:null,topTouchCancel:null,topTouchEnd:null,topTouchMove:null,topTouchStart:null,topWheel:null}),i={topLevelTypes:o,PropagationPhases:r};t.exports=i},{"./keyMirror":81}],14:[function(e,t){var n={listen:function(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on"+t,n)},capture:function(e,t,n){e.addEventListener&&e.addEventListener(t,n,!0)}};t.exports=n},{}],15:[function(e,t){"use strict";var n=e("./CallbackRegistry"),r=e("./EventPluginRegistry"),o=e("./EventPluginUtils"),i=e("./EventPropagators"),a=e("./ExecutionEnvironment"),s=e("./accumulate"),u=e("./forEachAccumulated"),l=e("./invariant"),c=null,p=function(e){if(e){var t=o.executeDispatch,n=r.getPluginModuleForEvent(e);n&&n.executeDispatch&&(t=n.executeDispatch),o.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e)}},d={injection:{injectInstanceHandle:i.injection.injectInstanceHandle,injectEventPluginOrder:r.injectEventPluginOrder,injectEventPluginsByName:r.injectEventPluginsByName},registrationNames:r.registrationNames,putListener:n.putListener,getListener:n.getListener,deleteListener:n.deleteListener,deleteAllListeners:n.deleteAllListeners,extractEvents:function(e,t,n,o){for(var i,a=r.plugins,u=0,l=a.length;l>u;u++){var c=a[u];if(c){var p=c.extractEvents(e,t,n,o);p&&(i=s(i,p))}}return i},enqueueEvents:function(e){e&&(c=s(c,e))},processEventQueue:function(){var e=c;c=null,u(e,p),l(!c)}};a.canUseDOM&&(window.EventPluginHub=d),t.exports=d},{"./CallbackRegistry":4,"./EventPluginRegistry":16,"./EventPluginUtils":17,"./EventPropagators":18,"./ExecutionEnvironment":19,"./accumulate":61,"./forEachAccumulated":70,"./invariant":78}],16:[function(e,t){"use strict";function n(){if(a)for(var e in s){var t=s[e],n=a.indexOf(e);if(i(n>-1),!u.plugins[n]){i(t.extractEvents),u.plugins[n]=t;var o=t.eventTypes;for(var l in o)i(r(o[l],t))}}}function r(e,t){var n=e.phasedRegistrationNames;if(n){for(var r in n)if(n.hasOwnProperty(r)){var i=n[r];o(i,t)}return!0}return e.registrationName?(o(e.registrationName,t),!0):!1}function o(e,t){i(!u.registrationNames[e]),u.registrationNames[e]=t,u.registrationNamesKeys.push(e)}var i=e("./invariant"),a=null,s={},u={plugins:[],registrationNames:{},registrationNamesKeys:[],injectEventPluginOrder:function(e){i(!a),a=Array.prototype.slice.call(e),n()},injectEventPluginsByName:function(e){var t=!1;for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];s[r]!==o&&(i(!s[r]),s[r]=o,t=!0)}t&&n()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return u.registrationNames[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=u.registrationNames[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){a=null;for(var e in s)s.hasOwnProperty(e)&&delete s[e];u.plugins.length=0;var t=u.registrationNames;for(var n in t)t.hasOwnProperty(n)&&delete t[n];u.registrationNamesKeys.length=0}};t.exports=u},{"./invariant":78}],17:[function(e,t){"use strict";function n(e){return e===h.topMouseUp||e===h.topTouchEnd||e===h.topTouchCancel}function r(e){return e===h.topMouseMove||e===h.topTouchMove}function o(e){return e===h.topMouseDown||e===h.topTouchStart}function i(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(Array.isArray(n))for(var o=0;o1){for(var o=Array(n),i=0;n>i;i++)o[i]=arguments[i+1];this.props.children=o}},mountComponent:function(e){c(!this.isMounted());var t=this.props;null!=t.ref&&s.addComponentAsRefTo(this,t.ref,t[h]),this._rootNodeID=e,this._lifeCycleState=f.MOUNTED},unmountComponent:function(){c(this.isMounted());var e=this.props;null!=e.ref&&s.removeComponentAsRefFrom(this,e.ref,e[h]),a.purgeID(this._rootNodeID),this._rootNodeID=null,this._lifeCycleState=f.UNMOUNTED},receiveProps:function(e,t){c(this.isMounted()),this._pendingProps=e,this._performUpdateIfNecessary(t)},performUpdateIfNecessary:function(){var e=v.ReactReconcileTransaction.getPooled();e.perform(this._performUpdateIfNecessary,this,e),v.ReactReconcileTransaction.release(e)},_performUpdateIfNecessary:function(e){if(null!=this._pendingProps){var t=this.props;this.props=this._pendingProps,this._pendingProps=null,this.updateComponent(e,t)}},updateComponent:function(e,t){var n=this.props;(n[h]!==t[h]||n.ref!==t.ref)&&(null!=t.ref&&s.removeComponentAsRefFrom(this,t.ref,t[h]),null!=n.ref&&s.addComponentAsRefTo(this,n.ref,n[h]))},mountComponentIntoNode:function(e,t,n){var r=v.ReactReconcileTransaction.getPooled();r.perform(this._mountComponentIntoNode,this,e,t,r,n),v.ReactReconcileTransaction.release(r)},_mountComponentIntoNode:function(e,t,r,o){c(t&&1===t.nodeType);var a=this.mountComponent(e,r);if(!o||!i.canReuseMarkup(a,n(t))){var s=t.parentNode;if(s){var u=t.nextSibling;s.removeChild(t),t.innerHTML=a,u?s.insertBefore(t,u):s.appendChild(t)}else t.innerHTML=a}},unmountComponentFromNode:function(e){for(this.unmountComponent();e.lastChild;)e.removeChild(e.lastChild)},isOwnedBy:function(e){return this.props[h]===e},getSiblingByRef:function(e){var t=this.props[h];return t&&t.refs?t.refs[e]:null}}};t.exports=v},{"./ReactCurrentOwner":25,"./ReactDOMIDOperations":28,"./ReactMarkupChecksum":38,"./ReactMount":39,"./ReactOwner":43,"./ReactReconcileTransaction":46,"./ReactUpdates":49,"./getReactRootElementInContainer":73,"./invariant":78,"./keyMirror":81,"./merge":84}],24:[function(e,t){!function(){"use strict";function n(e,t){var n=m[t];C.hasOwnProperty(t)&&p(n===v.OVERRIDE_BASE),e.hasOwnProperty(t)&&p(n===v.DEFINE_MANY)}function r(e){var t=e._compositeLifeCycleState;p(e.isMounted()||t===y.MOUNTING),p(t!==y.RECEIVING_STATE&&t!==y.UNMOUNTING)}function o(e,t){var r=e.prototype;for(var o in t){var a=t[o];if(t.hasOwnProperty(o)&&a)if(n(r,o),g.hasOwnProperty(o))g[o](e,a);else{var s=o in m,u=o in r,l=a.__reactDontBind,c="function"==typeof a,p=c&&!s&&!u&&!l;p?(r.__reactAutoBindMap||(r.__reactAutoBindMap={}),r.__reactAutoBindMap[o]=a,r[o]=a):r[o]=u?i(r[o],a):a}}}function i(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}var a=e("./ReactComponent"),s=e("./ReactCurrentOwner"),u=e("./ReactOwner"),l=e("./ReactPropTransferer"),c=e("./ReactUpdates"),p=e("./invariant"),d=e("./keyMirror"),h=e("./merge"),f=e("./mixInto"),v=d({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null}),m={mixins:v.DEFINE_MANY,propTypes:v.DEFINE_ONCE,getDefaultProps:v.DEFINE_ONCE,getInitialState:v.DEFINE_ONCE,render:v.DEFINE_ONCE,componentWillMount:v.DEFINE_MANY,componentDidMount:v.DEFINE_MANY,componentWillReceiveProps:v.DEFINE_MANY,shouldComponentUpdate:v.DEFINE_ONCE,componentWillUpdate:v.DEFINE_MANY,componentDidUpdate:v.DEFINE_MANY,componentWillUnmount:v.DEFINE_MANY,updateComponent:v.OVERRIDE_BASE},g={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;nn;n++){var o=this.props.multiple?t.indexOf(e[n].value)>=0:o=e[n].value===t;o!==e[n].selected&&(e[n].selected=o)}}var o=e("./ReactCompositeComponent"),i=e("./ReactDOM"),a=e("./invariant"),s=e("./merge"),u=i.select,l=o.createClass({propTypes:{defaultValue:n,value:n},getInitialState:function(){return{value:this.props.defaultValue||(this.props.multiple?[]:"")}},componentWillReceiveProps:function(e){!this.props.multiple&&e.multiple?this.setState({value:[this.state.value]}):this.props.multiple&&!e.multiple&&this.setState({value:this.state.value[0]})},shouldComponentUpdate:function(){return!this._isChanging},render:function(){var e=s(this.props);return e.onChange=this.handleChange,e.value=null,u(e,this.props.children)},componentDidMount:r,componentDidUpdate:r,handleChange:function(e){var t;this.props.onChange&&(this._isChanging=!0,t=this.props.onChange(e),this._isChanging=!1);var n;if(this.props.multiple){n=[];for(var r=e.target.options,o=0,i=r.length;i>o;o++)r[o].selected&&n.push(r[o].value)}else n=e.target.value;return this.setState({value:n}),t}});t.exports=l},{"./ReactCompositeComponent":24,"./ReactDOM":26,"./invariant":78,"./merge":84}],32:[function(e,t){"use strict";var n=e("./DOMPropertyOperations"),r=e("./ReactCompositeComponent"),o=e("./ReactDOM"),i=e("./invariant"),a=e("./merge"),s=o.textarea,u={string:!0,number:!0},l=r.createClass({getInitialState:function(){var e=this.props.defaultValue,t=this.props.children;return null!=t&&(i(null==e),Array.isArray(t)&&(i(t.length<=1),t=t[0]),i(u[typeof t]),e=""+t),e=e||"",{initialValue:null!=this.props.value?this.props.value:e,value:e}},shouldComponentUpdate:function(){return!this._isChanging},getValue:function(){return null!=this.props.value?this.props.value:this.state.value},render:function(){var e=a(this.props);return i(null==e.dangerouslySetInnerHTML),e.value=this.getValue(),e.onChange=this.handleChange,s(e,this.state.initialValue)},componentDidUpdate:function(e,t,r){null!=this.props.value&&n.setValueForProperty(r,"value",this.props.value||"")},handleChange:function(e){var t;return this.props.onChange&&(this._isChanging=!0,t=this.props.onChange(e),this._isChanging=!1),this.setState({value:e.target.value}),t}});t.exports=l},{"./DOMPropertyOperations":8,"./ReactCompositeComponent":24,"./ReactDOM":26,"./invariant":78,"./merge":84}],33:[function(e,t){"use strict";function n(){l.TopLevelCallbackCreator=c,m.injection.injectEventPluginOrder(h),m.injection.injectInstanceHandle(g),m.injection.injectEventPluginsByName({SimpleEventPlugin:y,EnterLeaveEventPlugin:f,ChangeEventPlugin:v,MobileSafariClickEventPlugin:C}),r.injection.injectComponentClasses({form:o,input:i,option:a,select:s,textarea:u}),d.injection.injectDOMPropertyConfig(p)}var r=e("./ReactDOM"),o=e("./ReactDOMForm"),i=e("./ReactDOMInput"),a=e("./ReactDOMOption"),s=e("./ReactDOMSelect"),u=e("./ReactDOMTextarea"),l=e("./ReactEventEmitter"),c=e("./ReactEventTopLevelCallback"),p=e("./DefaultDOMPropertyConfig"),d=e("./DOMProperty"),h=e("./DefaultEventPluginOrder"),f=e("./EnterLeaveEventPlugin"),v=e("./ChangeEventPlugin"),m=e("./EventPluginHub"),g=e("./ReactInstanceHandles"),y=e("./SimpleEventPlugin"),C=e("./MobileSafariClickEventPlugin");t.exports={inject:n}},{"./ChangeEventPlugin":5,"./DOMProperty":7,"./DefaultDOMPropertyConfig":10,"./DefaultEventPluginOrder":11,"./EnterLeaveEventPlugin":12,"./EventPluginHub":15,"./MobileSafariClickEventPlugin":20,"./ReactDOM":26,"./ReactDOMForm":27,"./ReactDOMInput":29,"./ReactDOMOption":30,"./ReactDOMSelect":31,"./ReactDOMTextarea":32,"./ReactEventEmitter":34,"./ReactEventTopLevelCallback":35,"./ReactInstanceHandles":37,"./SimpleEventPlugin":50}],34:[function(e,t){!function(){"use strict";function n(e,t,n){s.listen(n,t,v.TopLevelCallbackCreator.createTopLevelCallback(e))}function r(e,t,n){s.capture(n,t,v.TopLevelCallbackCreator.createTopLevelCallback(e))}function o(){var e=p.refreshScrollValues;s.listen(window,"scroll",e),s.listen(window,"resize",e)}function i(e){d(!f);var t=a.topLevelTypes,i=document;o(),n(t.topMouseOver,"mouseover",i),n(t.topMouseDown,"mousedown",i),n(t.topMouseUp,"mouseup",i),n(t.topMouseMove,"mousemove",i),n(t.topMouseOut,"mouseout",i),n(t.topClick,"click",i),n(t.topDoubleClick,"dblclick",i),e&&(n(t.topTouchStart,"touchstart",i),n(t.topTouchEnd,"touchend",i),n(t.topTouchMove,"touchmove",i),n(t.topTouchCancel,"touchcancel",i)),n(t.topKeyUp,"keyup",i),n(t.topKeyPress,"keypress",i),n(t.topKeyDown,"keydown",i),n(t.topInput,"input",i),n(t.topChange,"change",i),n(t.topSelectionChange,"selectionchange",i),n(t.topDOMCharacterDataModified,"DOMCharacterDataModified",i),h("drag")&&(n(t.topDrag,"drag",i),n(t.topDragEnd,"dragend",i),n(t.topDragEnter,"dragenter",i),n(t.topDragExit,"dragexit",i),n(t.topDragLeave,"dragleave",i),n(t.topDragOver,"dragover",i),n(t.topDragStart,"dragstart",i),n(t.topDrop,"drop",i)),h("wheel")?n(t.topWheel,"wheel",i):h("mousewheel")?n(t.topWheel,"mousewheel",i):n(t.topWheel,"DOMMouseScroll",i),h("scroll",!0)?r(t.topScroll,"scroll",i):n(t.topScroll,"scroll",window),h("focus",!0)?(r(t.topFocus,"focus",i),r(t.topBlur,"blur",i)):h("focusin")&&(n(t.topFocus,"focusin",i),n(t.topBlur,"focusout",i))}var a=e("./EventConstants"),s=e("./EventListener"),u=e("./EventPluginHub"),l=e("./ExecutionEnvironment"),c=e("./ReactUpdates"),p=e("./ViewportMetrics"),d=e("./invariant"),h=e("./isEventSupported"),f=!1,v={TopLevelCallbackCreator:null,ensureListening:function(e){d(l.canUseDOM),d(v.TopLevelCallbackCreator),f||(i(e),f=!0)},setEnabled:function(e){d(l.canUseDOM),v.TopLevelCallbackCreator&&v.TopLevelCallbackCreator.setEnabled(e)},isEnabled:function(){return!(!v.TopLevelCallbackCreator||!v.TopLevelCallbackCreator.isEnabled())},handleTopLevel:function(e,t,n,r){var o=u.extractEvents(e,t,n,r);c.batchedUpdates(function(){u.enqueueEvents(o),u.processEventQueue()})},registrationNames:u.registrationNames,putListener:u.putListener,getListener:u.getListener,deleteListener:u.deleteListener,deleteAllListeners:u.deleteAllListeners,trapBubbledEvent:n,trapCapturedEvent:r};t.exports=v}()},{"./EventConstants":13,"./EventListener":14,"./EventPluginHub":15,"./ExecutionEnvironment":19,"./ReactUpdates":49,"./ViewportMetrics":60,"./invariant":78,"./isEventSupported":79}],35:[function(e,t){!function(){"use strict";var n=e("./ExecutionEnvironment"),r=e("./ReactEventEmitter"),o=e("./ReactMount"),i=e("./getEventTarget"),a=!0,s={setEnabled:function(e){a=!!e},isEnabled:function(){return a},createTopLevelCallback:function(e){return function(t){if(a){t.srcElement&&t.srcElement!==t.target&&(t.target=t.srcElement);var s=o.getFirstReactDOM(i(t))||n.global,u=o.getID(s)||"";r.handleTopLevel(e,s,u,t)}}}};t.exports=s}()},{"./ExecutionEnvironment":19,"./ReactEventEmitter":34,"./ReactMount":39,"./getEventTarget":72}],36:[function(e,t){"use strict";function n(){try{return document.activeElement}catch(e){}}function r(e){return document.documentElement.contains(e)}var o={hasSelectionCapabilities:function(e){return e&&("INPUT"===e.nodeName&&"text"===e.type||"TEXTAREA"===e.nodeName||"true"===e.contentEditable)},getSelectionInformation:function(){var e=n();return{focusedElem:e,selectionRange:o.hasSelectionCapabilities(e)?o.getSelection(e):null}},restoreSelection:function(e){var t=n(),i=e.focusedElem,a=e.selectionRange;t!==i&&r(i)&&(o.hasSelectionCapabilities(i)&&o.setSelection(i,a),i.focus())},getSelection:function(e){var t;if("true"===e.contentEditable&&window.getSelection){t=window.getSelection().getRangeAt(0);var n=t.commonAncestorContainer;return n&&3===n.nodeType&&(n=n.parentNode),n!==e?{start:0,end:0}:{start:t.startOffset,end:t.endOffset}}if(!document.selection)return{start:e.selectionStart,end:e.selectionEnd};if(t=document.selection.createRange(),t.parentElement()!==e)return{start:0,end:0};var r=e.value.length;if("INPUT"===e.nodeName)return{start:-t.moveStart("character",-r),end:-t.moveEnd("character",-r)};var o=t.duplicate();o.moveToElementText(e),o.setEndPoint("StartToEnd",t);var i=r-o.text.length;return o.setEndPoint("StartToStart",t),{start:r-o.text.length,end:i}},setSelection:function(e,t){var n,r=t.start,o=t.end;if("undefined"==typeof o&&(o=r),document.selection){if("TEXTAREA"===e.tagName){var i=(e.value.slice(0,r).match(/\r/g)||[]).length,a=(e.value.slice(r,o).match(/\r/g)||[]).length;r-=i,o-=i+a}n=e.createTextRange(),n.collapse(!0),n.moveStart("character",r),n.moveEnd("character",o-r),n.select()}else if("true"===e.contentEditable){if(1===e.childNodes.length){n=document.createRange(),n.setStart(e.childNodes[0],r),n.setEnd(e.childNodes[0],o);var s=window.getSelection();s.removeAllRanges(),s.addRange(n)}}else e.selectionStart=r,e.selectionEnd=Math.min(o,e.value.length),e.focus()}};t.exports=o},{}],37:[function(e,t){"use strict";function n(e){return p+"r["+e.toString(36)+"]"}function r(e,t){return e.charAt(t)===p||t===e.length}function o(e){return""===e||e.charAt(0)===p&&e.charAt(e.length-1)!==p}function i(e,t){return 0===t.indexOf(e)&&r(t,e.length)}function a(e){return e?e.substr(0,e.lastIndexOf(p)):""}function s(e,t){if(c(o(e)&&o(t)),c(i(e,t)),e===t)return e;for(var n=e.length+d,a=n;a=a;a++)if(r(e,a)&&r(t,a))i=a;else if(e.charAt(a)!==t.charAt(a))break;var s=e.substr(0,i);return c(o(s)),s}function l(e,t,n,r,o,u){e=e||"",t=t||"",c(e!==t);var l=i(t,e);c(l||i(e,t));for(var p=0,d=l?a:s,f=e;o&&f===e||u&&f===t||n(f,l,r),f!==t;f=d(f,t))c(p++"," "+r.CHECKSUM_ATTR_NAME+'="'+t+'">')},canReuseMarkup:function(e,t){var o=t.getAttribute(r.CHECKSUM_ATTR_NAME);o=o&&parseInt(o,10);var i=n(e);return i===o}};t.exports=r},{"./adler32":62}],39:[function(e,t){!function(){"use strict";function n(e){var t=p(e);return t&&E.getID(t)}function r(e){var t=o(e);if(t)if(m.hasOwnProperty(t)){var n=m[t];n!==e&&(c(!s(n,t)),m[t]=e)}else m[t]=e;return t}function o(e){return e&&e.getAttribute&&e.getAttribute(v)||""}function i(e,t){var n=o(e);n!==t&&delete m[n],e.setAttribute(v,t),m[t]=e}function a(e){return m.hasOwnProperty(e)&&s(m[e],e)||(m[e]=E.findReactNodeByID(e)),m[e]}function s(e,t){if(e){c(o(e)===t);var n=E.findReactContainerForID(t);if(n&&u(n,e))return!0}return!1}function u(e,t){if(e.contains)return e.contains(t);if(t===e)return!0;for(3===t.nodeType&&(t=t.parentNode);t&&1===t.nodeType;){if(t===e)return!0;t=t.parentNode}return!1}function l(e){delete m[e]}var c=e("./invariant"),p=e("./getReactRootElementInContainer"),d=e("./ReactEventEmitter"),h=e("./ReactInstanceHandles"),f=h.SEPARATOR,v="data-reactid",m={},g=e("./$"),y={},C={},E={totalInstantiationTime:0,totalInjectionTime:0,useTouchEvents:!1,scrollMonitor:function(e,t){t()},prepareTopLevelEvents:function(){d.ensureListening(E.useTouchEvents)},_updateRootComponent:function(e,t,n,r){var o=t.props;return E.scrollMonitor(n,function(){e.replaceProps(o,r)}),e},_registerComponent:function(e,t){E.prepareTopLevelEvents();var n=E.registerContainer(t);return y[n]=e,n},_renderNewRootComponent:function(e,t,n){var r=E._registerComponent(e,t);return e.mountComponentIntoNode(r,t,n),e},renderComponent:function(e,t,r){var o=y[n(t)];if(o){if(o.constructor===e.constructor)return E._updateRootComponent(o,e,t,r);E.unmountAndReleaseReactRootNode(t)}var i=p(t),a=i&&E.isRenderedByReact(i),s=a&&!o,u=E._renderNewRootComponent(e,t,s);return r&&r(),u},constructAndRenderComponent:function(e,t,n){return E.renderComponent(e(t),n)},constructAndRenderComponentByID:function(e,t,n){return E.constructAndRenderComponent(e,t,g(n))},registerContainer:function(e){var t=n(e);return t&&(t=h.getReactRootIDFromNodeID(t)),t||(t=h.createReactRootID()),C[t]=e,t},unmountAndReleaseReactRootNode:function(e){var t=n(e),r=y[t];return r?(r.unmountComponentFromNode(e),delete y[t],delete C[t],!0):!1},findReactContainerForID:function(e){var t=h.getReactRootIDFromNodeID(e),n=C[t];return n},findReactNodeByID:function(e){var t=E.findReactContainerForID(e);return E.findComponentRoot(t,e)},isRenderedByReact:function(e){if(1!==e.nodeType)return!1;var t=E.getID(e);return t?t.charAt(0)===f:!1},getFirstReactDOM:function(e){for(var t=e;t&&t.parentNode!==t;){if(E.isRenderedByReact(t))return t;t=t.parentNode}return null},findComponentRoot:function(e,t){for(var n=[e.firstChild],r=0;r",this.tagName=e.toUpperCase()}var o=e("./CSSPropertyOperations"),i=e("./DOMProperty"),a=e("./DOMPropertyOperations"),s=e("./ReactComponent"),u=e("./ReactEventEmitter"),l=e("./ReactMultiChild"),c=e("./ReactMount"),p=e("./escapeTextForBrowser"),d=e("./flattenChildren"),h=e("./invariant"),f=e("./keyOf"),v=e("./merge"),m=e("./mixInto"),g=u.putListener,y=u.deleteListener,C=u.registrationNames,E={string:!0,number:!0},M=f({dangerouslySetInnerHTML:null}),D=f({style:null});r.Mixin={mountComponent:function(e,t){return s.Mixin.mountComponent.call(this,e,t),n(this.props),this._createOpenTagMarkup()+this._createContentMarkup(t)+this._tagClose},_createOpenTagMarkup:function(){var e=this.props,t=this._tagOpen;for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];if(null!=r)if(C[n])g(this._rootNodeID,n,r);else{n===D&&(r&&(r=e.style=v(e.style)),r=o.createMarkupForStyles(r));var i=a.createMarkupForProperty(n,r);i&&(t+=" "+i)}}var s=p(this._rootNodeID);return t+" "+c.ATTR_NAME+'="'+s+'">'},_createContentMarkup:function(e){var t=this.props.dangerouslySetInnerHTML;if(null!=t){if(null!=t.__html)return t.__html}else{var n=E[typeof this.props.children]?this.props.children:null,r=null!=n?null:this.props.children;if(null!=n)return p(n);if(null!=r)return this.mountMultiChild(d(r),e)}return""},receiveProps:function(e,t){n(e),s.Mixin.receiveProps.call(this,e,t)},updateComponent:function(e,t){s.Mixin.updateComponent.call(this,e,t),this._updateDOMProperties(t),this._updateDOMChildren(t,e)},_updateDOMProperties:function(e){var t,n,r,o=this.props;for(t in e)if(!o.hasOwnProperty(t)&&e.hasOwnProperty(t))if(t===D){var a=e[t];for(n in a)a.hasOwnProperty(n)&&(r=r||{},r[n]="")}else t===M?s.DOMIDOperations.updateTextContentByID(this._rootNodeID,""):C[t]?y(this._rootNodeID,t):s.DOMIDOperations.deletePropertyByID(this._rootNodeID,t);for(t in o){var u=o[t],l=e[t];if(o.hasOwnProperty(t)&&u!==l)if(t===D)if(u&&(u=o.style=v(u)),l){for(n in l)l.hasOwnProperty(n)&&!u.hasOwnProperty(n)&&(r=r||{},r[n]="");for(n in u)u.hasOwnProperty(n)&&l[n]!==u[n]&&(r=r||{},r[n]=u[n])}else r=u;else if(t===M){var c=l&&l.__html,p=u&&u.__html;c!==p&&s.DOMIDOperations.updateInnerHTMLByID(this._rootNodeID,u)}else C[t]?g(this._rootNodeID,t,u):(i.isStandardName[t]||i.isCustomAttribute(t))&&s.DOMIDOperations.updatePropertyByID(this._rootNodeID,t,u)}r&&s.DOMIDOperations.updateStylesByID(this._rootNodeID,r)},_updateDOMChildren:function(e,t){var n=this.props,r=E[typeof e.children]?e.children:null,o=E[typeof n.children]?n.children:null,i=null!=r?null:e.children,a=null!=o?null:n.children;if(null!=o){var u=null!=i&&null==a;u&&this.updateMultiChild(null,t),r!==o&&s.DOMIDOperations.updateTextContentByID(this._rootNodeID,""+o)}else{var l=null!=r&&null==o;l&&s.DOMIDOperations.updateTextContentByID(this._rootNodeID,""),this.updateMultiChild(d(n.children),t)}},unmountComponent:function(){u.deleteAllListeners(this._rootNodeID),s.Mixin.unmountComponent.call(this),this.unmountMultiChild()}},m(r,s.Mixin),m(r,r.Mixin),m(r,l.Mixin),t.exports=r},{"./CSSPropertyOperations":3,"./DOMProperty":7,"./DOMPropertyOperations":8,"./ReactComponent":23,"./ReactEventEmitter":34,"./ReactMount":39,"./ReactMultiChild":40,"./escapeTextForBrowser":67,"./flattenChildren":69,"./invariant":78,"./keyOf":82,"./merge":84,"./mixInto":87}],42:[function(e,t){"use strict";function n(e){this._queue=e||null}var r=e("./PooledClass"),o=e("./mixInto");o(n,{enqueue:function(e,t){this._queue=this._queue||[],this._queue.push({component:e,callback:t})},notifyAll:function(){var e=this._queue;if(e){this._queue=null;for(var t=0,n=e.length;n>t;t++){var r=e[t].component,o=e[t].callback;o.call(r,r.getDOMNode())}e.length=0}},reset:function(){this._queue=null},destructor:function(){this.reset()}}),r.addPoolingTo(n),t.exports=n},{"./PooledClass":21,"./mixInto":87}],43:[function(e,t){"use strict";var n=e("./invariant"),r={isValidOwner:function(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)},addComponentAsRefTo:function(e,t,o){n(r.isValidOwner(o)),o.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,o){n(r.isValidOwner(o)),o.refs[t]===e&&o.detachRef(t)},Mixin:{attachRef:function(e,t){n(t.isOwnedBy(this));var r=this.refs||(this.refs={});r[e]=t},detachRef:function(e){delete this.refs[e]}}};t.exports=r},{"./invariant":78}],44:[function(e,t){"use strict";function n(e){return function(t,n,r){t[n]=t.hasOwnProperty(n)?e(t[n],r):r}}var r=e("./emptyFunction"),o=e("./joinClasses"),i=e("./merge"),a={children:r,className:n(o),ref:r,style:n(i)},s={TransferStrategies:a,Mixin:{transferPropsTo:function(e){var t={};for(var n in e.props)e.props.hasOwnProperty(n)&&(t[n]=e.props[n]);for(var r in this.props)if(this.props.hasOwnProperty(r)){var o=a[r];o?o(t,r,this.props[r]):t.hasOwnProperty(r)||(t[r]=this.props[r])}return e.props=t,e}}};t.exports=s},{"./emptyFunction":66,"./joinClasses":80,"./merge":84}],45:[function(e,t){"use strict";function n(e){function t(t){var n=typeof t;"object"===n&&Array.isArray(t)&&(n="array"),s(n===e)}return i(t)}function r(e){function t(e){s(n[e])}var n=a(e);return i(t)}function o(e){function t(t){s(t instanceof e)}return i(t)}function i(e){function t(n){function r(t,r,o){var i=t[r];null!=i?e(i,r,o||l):s(!n)}return n||(r.isRequired=t(!0)),r}return t(!1)}var a=e("./createObjectFrom"),s=e("./invariant"),u={array:n("array"),bool:n("boolean"),func:n("function"),number:n("number"),object:n("object"),string:n("string"),oneOf:r,instanceOf:o},l="<>";t.exports=u},{"./createObjectFrom":64,"./invariant":78}],46:[function(e,t){"use strict";function n(){this.reinitializeTransaction(),this.reactOnDOMReady=s.getPooled(null)}var r=e("./ExecutionEnvironment"),o=e("./PooledClass"),i=e("./ReactEventEmitter"),a=e("./ReactInputSelection"),s=e("./ReactOnDOMReady"),u=e("./Transaction"),l=e("./mixInto"),c={initialize:a.getSelectionInformation,close:a.restoreSelection},p={initialize:function(){var e=i.isEnabled();return i.setEnabled(!1),e},close:function(e){i.setEnabled(e)}},d={initialize:function(){this.reactOnDOMReady.reset()},close:function(){this.reactOnDOMReady.notifyAll()}},h=[c,p,d],f={getTransactionWrappers:function(){return r.canUseDOM?h:[]},getReactOnDOMReady:function(){return this.reactOnDOMReady},destructor:function(){s.release(this.reactOnDOMReady),this.reactOnDOMReady=null}};l(n,u.Mixin),l(n,f),o.addPoolingTo(n),t.exports=n},{"./ExecutionEnvironment":19,"./PooledClass":21,"./ReactEventEmitter":34,"./ReactInputSelection":36,"./ReactOnDOMReady":42,"./Transaction":59,"./mixInto":87}],47:[function(e,t){"use strict";function n(e,t){var n=i.createReactRootID(),a=o.getPooled();a.reinitializeTransaction();try{a.perform(function(){var o=e.mountComponent(n,a);o=r.addChecksumToMarkup(o),t(o)},null)}finally{o.release(a)}}var r=e("./ReactMarkupChecksum"),o=e("./ReactReconcileTransaction"),i=e("./ReactInstanceHandles");t.exports={renderComponentToString:n}},{"./ReactInstanceHandles":37,"./ReactMarkupChecksum":38,"./ReactReconcileTransaction":46}],48:[function(e,t){"use strict";var n=e("./ReactComponent"),r=e("./ReactMount"),o=e("./escapeTextForBrowser"),i=e("./mixInto"),a=function(e){this.construct({text:e})};i(a,n.Mixin),i(a,{mountComponent:function(e){return n.Mixin.mountComponent.call(this,e),"'+o(this.props.text)+""},receiveProps:function(e){e.text!==this.props.text&&(this.props.text=e.text,n.DOMIDOperations.updateTextContentByID(this._rootNodeID,e.text))}}),t.exports=a},{"./ReactComponent":23,"./ReactMount":39,"./escapeTextForBrowser":67,"./mixInto":87}],49:[function(e,t){"use strict";function n(e){if(i)return e(),void 0;i=!0;try{e();for(var t=0;t<"'\/]/g,n):(""+e).replace(/[&><"'\/]/g,n)}var o=e("./invariant"),i={"&":"&",">":">","<":"<",'"':""","'":"'","/":"/"};t.exports=r},{"./invariant":78}],68:[function(e,t){var n=function(e){var t=Array.prototype.slice.call(arguments).map(function(e){return String(e)}),r=e.split("%s").length-1;return r!==t.length-1?n("ex args number mismatch: %s",JSON.stringify(t)):n._prefix+JSON.stringify(t)+n._suffix};n._prefix="",t.exports=n},{}],69:[function(e,t){"use strict";function n(e,t,n){var r=e;o(!r.hasOwnProperty(n)),r[n]=t}function r(e){if(null==e)return e;var t={};return i(e,n,t),t}var o=e("./invariant"),i=e("./traverseAllChildren");t.exports=r},{"./invariant":78,"./traverseAllChildren":90}],70:[function(e,t){"use strict";var n=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)};t.exports=n},{}],71:[function(e,t){function n(e,t,n){return"string"!=typeof e?e:t?r(e,t,n):document.getElementById(e)}function r(e,t,n){var i,a,s;if(o(t)==e)return t;if(t.getElementsByTagName){for(a=t.getElementsByTagName(n||"*"),s=0;s=r.length?e.appendChild(t):e.insertBefore(t,r[n]),t)}t.exports=n},{}],78:[function(e,t){function n(e){if(!e)throw new Error("Invariant Violation")}t.exports=n},{}],79:[function(e,t){"use strict";function n(e,t){if(!r||t&&!r.addEventListener)return!1;var n=document.createElement("div"),i="on"+e,a=i in n;return a||(n.setAttribute(i,""),a="function"==typeof n[i],"undefined"!=typeof n[i]&&(n[i]=void 0),n.removeAttribute(i)),!a&&o&&"wheel"===e&&(a=document.implementation.hasFeature("Events.wheel","3.0")),n=null,a}var r,o,i=e("./ExecutionEnvironment");i.canUseDOM&&(r=document.createElement("div"),o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=n},{"./ExecutionEnvironment":19}],80:[function(e,t){"use strict";function n(e){e||(e="");var t,n=arguments.length;if(n>1)for(var r=1;n>r;r++)t=arguments[r],t&&(e+=" "+t);return e}t.exports=n},{}],81:[function(e,t){"use strict";var n=e("./invariant"),r=function(e){var t,r={};n(e instanceof Object&&!Array.isArray(e));for(t in e)e.hasOwnProperty(t)&&(r[t]=t);return r};t.exports=r},{"./invariant":78}],82:[function(e,t){var n=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};t.exports=n},{}],83:[function(e,t){"use strict";function n(e){var t={};return function(n){return t.hasOwnProperty(n)?t[n]:t[n]=e.call(this,n)}}t.exports=n},{}],84:[function(e,t){"use strict";var n=e("./mergeInto"),r=function(e,t){var r={};return n(r,e),n(r,t),r};t.exports=r},{"./mergeInto":86}],85:[function(e,t){"use strict";var n=e("./invariant"),r=e("./keyMirror"),o=36,i=function(e){return"object"!=typeof e||null===e},a={MAX_MERGE_DEPTH:o,isTerminal:i,normalizeMergeArg:function(e){return void 0===e||null===e?{}:e},checkMergeArrayArgs:function(e,t){n(Array.isArray(e)&&Array.isArray(t))},checkMergeObjectArgs:function(e,t){a.checkMergeObjectArg(e),a.checkMergeObjectArg(t)},checkMergeObjectArg:function(e){n(!i(e)&&!Array.isArray(e))},checkMergeLevel:function(e){n(o>e)},checkArrayStrategy:function(e){n(void 0===e||e in a.ArrayStrategies)},ArrayStrategies:r({Clobber:!0,IndexByIndex:!0})};t.exports=a},{"./invariant":78,"./keyMirror":81}],86:[function(e,t){"use strict";function n(e,t){if(o(e),null!=t){o(t);for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}}var r=e("./mergeHelpers"),o=r.checkMergeObjectArg;t.exports=n},{"./mergeHelpers":85}],87:[function(e,t){"use strict";var n=function(e,t){var n;for(n in t)t.hasOwnProperty(n)&&(e.prototype[n]=t[n])};t.exports=n},{}],88:[function(e,t){"use strict";function n(e,t,n){if(!e)return null;var r=0,o={};for(var i in e)e.hasOwnProperty(i)&&(o[i]=t.call(n,i,e[i],r++));return o}t.exports=n},{}],89:[function(e,t){"use strict";var n=function(e,t){if(e)throw new Error(t)};t.exports=n},{}],90:[function(e,t){!function(){"use strict";function n(e,t,n){null!==e&&void 0!==e&&a(e,"",0,t,n)}var r=e("./ReactComponent"),o=e("./ReactTextComponent"),i=e("./invariant"),a=function(e,t,n,s,u){var l=0;if(Array.isArray(e))for(var c=0;c8));var O=!1;C.canUseDOM&&(O=M("input")&&(!("documentMode"in document)||document.documentMode>9));var S={get:function(){return x.get.call(this)},set:function(t){I=""+t,x.set.call(this,t)}},w={eventTypes:N,extractEvents:function(t,e,r,o){var i,u;if(n(e)?P?i=a:u=s:R(e)?O?i=p:(i=h,u=d):f(e)&&(i=m),i){var c=i(t,e,r);if(c){var l=E.getPooled(N.change,c,o);return y.accumulateTwoPhaseDispatches(l),l}}u&&u(t,e,r)}};e.exports=w},{"./EventConstants":14,"./EventPluginHub":16,"./EventPropagators":19,"./ExecutionEnvironment":20,"./SyntheticEvent":64,"./isEventSupported":95,"./isTextInputElement":97,"./keyOf":101}],6:[function(t,e){"use strict";function n(t){switch(t){case v.topCompositionStart:return y.compositionStart;case v.topCompositionEnd:return y.compositionEnd;case v.topCompositionUpdate:return y.compositionUpdate}}function r(t,e){return t===v.topKeyDown&&e.keyCode===f}function o(t,e){switch(t){case v.topKeyUp:return-1!==h.indexOf(e.keyCode);case v.topKeyDown:return e.keyCode!==f;case v.topKeyPress:case v.topMouseDown:case v.topBlur:return!0;default:return!1}}function i(t){this.root=t,this.startSelection=c.getSelection(t),this.startValue=this.getText()}var a=t("./EventConstants"),s=t("./EventPropagators"),u=t("./ExecutionEnvironment"),c=t("./ReactInputSelection"),l=t("./SyntheticCompositionEvent"),p=t("./getTextContentAccessor"),d=t("./keyOf"),h=[9,13,27,32],f=229,m=u.canUseDOM&&"CompositionEvent"in window,v=a.topLevelTypes,g=null,y={compositionEnd:{phasedRegistrationNames:{bubbled:d({onCompositionEnd:null}),captured:d({onCompositionEndCapture:null})}},compositionStart:{phasedRegistrationNames:{bubbled:d({onCompositionStart:null}),captured:d({onCompositionStartCapture:null})}},compositionUpdate:{phasedRegistrationNames:{bubbled:d({onCompositionUpdate:null}),captured:d({onCompositionUpdateCapture:null})}}};i.prototype.getText=function(){return this.root.value||this.root[p()]},i.prototype.getData=function(){var t=this.getText(),e=this.startSelection.start,n=this.startValue.length-this.startSelection.end;return t.substr(e,t.length-n-e)};var C={eventTypes:y,extractEvents:function(t,e,a,u){var c,p;if(m?c=n(t):g?o(t,u)&&(c=y.compositionEnd,p=g.getData(),g=null):r(t,u)&&(c=y.start,g=new i(e)),c){var d=l.getPooled(c,a,u);return p&&(d.data=p),s.accumulateTwoPhaseDispatches(d),d}}};e.exports=C},{"./EventConstants":14,"./EventPropagators":19,"./ExecutionEnvironment":20,"./ReactInputSelection":45,"./SyntheticCompositionEvent":63,"./getTextContentAccessor":92,"./keyOf":101}],7:[function(t,e){"use strict";function n(t,e,n){var r=t.childNodes;r[n]!==e&&(e.parentNode===t&&t.removeChild(e),n>=r.length?t.appendChild(e):t.insertBefore(e,r[n]))}var r=t("./Danger"),o=t("./ReactMultiChildUpdateTypes"),i=t("./getTextContentAccessor"),a=i()||"NA",s={dangerouslyReplaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup,processUpdates:function(t,e){for(var i,s=null,u=null,c=0;i=t[c];c++)if(i.type===o.MOVE_EXISTING||i.type===o.REMOVE_NODE){var l=i.fromIndex,p=i.parentNode.childNodes[l],d=i.parentID;s=s||{},s[d]=s[d]||[],s[d][l]=p,u=u||[],u.push(p)}var h=r.dangerouslyRenderMarkup(e);if(u)for(var f=0;f]+)/,l="data-danger-index",p={dangerouslyRenderMarkup:function(t){s(r.canUseDOM);for(var e,u={},p=0;pu;u++){var l=a[u];if(l){var p=l.extractEvents(t,e,n,o);p&&(i=s(i,p))}}return i},enqueueEvents:function(t){t&&(l=s(l,t))},processEventQueue:function(){var t=l;l=null,u(t,p),c(!l)}};a.canUseDOM&&(window.EventPluginHub=d),e.exports=d},{"./CallbackRegistry":4,"./EventPluginRegistry":17,"./EventPluginUtils":18,"./EventPropagators":19,"./ExecutionEnvironment":20,"./accumulate":73,"./forEachAccumulated":85,"./invariant":94}],17:[function(t,e){"use strict";function n(){if(a)for(var t in s){var e=s[t],n=a.indexOf(t);if(i(n>-1),!u.plugins[n]){i(e.extractEvents),u.plugins[n]=e;var o=e.eventTypes;for(var c in o)i(r(o[c],e))}}}function r(t,e){var n=t.phasedRegistrationNames;if(n){for(var r in n)if(n.hasOwnProperty(r)){var i=n[r];o(i,e)}return!0}return t.registrationName?(o(t.registrationName,e),!0):!1}function o(t,e){i(!u.registrationNames[t]),u.registrationNames[t]=e,u.registrationNamesKeys.push(t)}var i=t("./invariant"),a=null,s={},u={plugins:[],registrationNames:{},registrationNamesKeys:[],injectEventPluginOrder:function(t){i(!a),a=Array.prototype.slice.call(t),n()},injectEventPluginsByName:function(t){var e=!1;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];s[r]!==o&&(i(!s[r]),s[r]=o,e=!0)}e&&n()},getPluginModuleForEvent:function(t){var e=t.dispatchConfig;if(e.registrationName)return u.registrationNames[e.registrationName]||null;for(var n in e.phasedRegistrationNames)if(e.phasedRegistrationNames.hasOwnProperty(n)){var r=u.registrationNames[e.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){a=null;for(var t in s)s.hasOwnProperty(t)&&delete s[t];u.plugins.length=0;var e=u.registrationNames;for(var n in e)e.hasOwnProperty(n)&&delete e[n];u.registrationNamesKeys.length=0}};e.exports=u},{"./invariant":94}],18:[function(t,e){"use strict";function n(t){return t===h.topMouseUp||t===h.topTouchEnd||t===h.topTouchCancel}function r(t){return t===h.topMouseMove||t===h.topTouchMove}function o(t){return t===h.topMouseDown||t===h.topTouchStart}function i(t,e){var n=t._dispatchListeners,r=t._dispatchIDs;if(Array.isArray(n))for(var o=0;o1){for(var o=Array(n),i=0;n>i;i++)o[i]=arguments[i+1];this.props.children=o}},mountComponent:function(t,e,n){a(!this.isMounted());var r=this.props;null!=r.ref&&o.addComponentAsRefTo(this,r.ref,r.__owner__),this._rootNodeID=t,this._lifeCycleState=c.MOUNTED,this._mountDepth=n},unmountComponent:function(){a(this.isMounted());var t=this.props;null!=t.ref&&o.removeComponentAsRefFrom(this,t.ref,t.__owner__),l.unmountIDFromEnvironment(this._rootNodeID),this._rootNodeID=null,this._lifeCycleState=c.UNMOUNTED},receiveProps:function(t,e){a(this.isMounted()),this._pendingProps=t,this._performUpdateIfNecessary(e)},performUpdateIfNecessary:function(){var t=l.ReactReconcileTransaction.getPooled();t.perform(this._performUpdateIfNecessary,this,t),l.ReactReconcileTransaction.release(t)},_performUpdateIfNecessary:function(t){if(null!=this._pendingProps){var e=this.props;this.props=this._pendingProps,this._pendingProps=null,this.updateComponent(t,e)}},updateComponent:function(t,e){var n=this.props;(n.__owner__!==e.__owner__||n.ref!==e.ref)&&(null!=e.ref&&o.removeComponentAsRefFrom(this,e.ref,e.__owner__),null!=n.ref&&o.addComponentAsRefTo(this,n.ref,n.__owner__))},mountComponentIntoNode:function(t,e,n){var r=l.ReactReconcileTransaction.getPooled();r.perform(this._mountComponentIntoNode,this,t,e,r,n),l.ReactReconcileTransaction.release(r)},_mountComponentIntoNode:function(t,e,n,r){var o=this.mountComponent(t,n,0);l.mountImageIntoNode(o,e,r)},isOwnedBy:function(t){return this.props.__owner__===t},getSiblingByRef:function(t){var e=this.props.__owner__;return e&&e.refs?e.refs[t]:null}})};e.exports=l},{"./ReactComponentEnvironment":27,"./ReactCurrentOwner":29,"./ReactOwner":52,"./ReactUpdates":59,"./invariant":94,"./keyMirror":100,"./merge":103}],26:[function(t,e){"use strict";var n=t("./ReactDOMIDOperations"),r=t("./ReactMarkupChecksum"),o=t("./ReactMount"),i=t("./ReactReconcileTransaction"),a=t("./getReactRootElementInContainer"),s=t("./invariant"),u=t("./mutateHTMLNodeWithMarkup"),c=1,l=9,p={Mixin:{getDOMNode:function(){return s(this.isMounted()),o.getNode(this._rootNodeID)}},ReactReconcileTransaction:i,DOMIDOperations:n,unmountIDFromEnvironment:function(t){o.purgeID(t)},mountImageIntoNode:function(t,e,n){if(s(e&&(e.nodeType===c||e.nodeType===l&&o.allowFullPageRender)),!n||!r.canReuseMarkup(t,a(e))){if(e.nodeType===l)return u(e.documentElement,t),void 0;var i=e.parentNode;if(i){var p=e.nextSibling;i.removeChild(e),e.innerHTML=t,p?i.insertBefore(e,p):i.appendChild(e)}else e.innerHTML=t}}};e.exports=p},{"./ReactDOMIDOperations":34,"./ReactMarkupChecksum":47,"./ReactMount":48,"./ReactReconcileTransaction":56,"./getReactRootElementInContainer":91,"./invariant":94,"./mutateHTMLNodeWithMarkup":107}],27:[function(t,e){var n=t("./ReactComponentBrowserEnvironment"),r=n;e.exports=r},{"./ReactComponentBrowserEnvironment":26}],28:[function(t,e){"use strict";function n(t,e){var n=E[e];D.hasOwnProperty(e)&&f(n===C.OVERRIDE_BASE),t.hasOwnProperty(e)&&f(n===C.DEFINE_MANY||n===C.DEFINE_MANY_MERGED)}function r(t){var e=t._compositeLifeCycleState;f(t.isMounted()||e===R.MOUNTING),f(e!==R.RECEIVING_STATE&&e!==R.UNMOUNTING)}function o(t,e){var r=t.prototype;for(var o in e){var i=e[o];if(e.hasOwnProperty(o)&&i)if(n(r,o),M.hasOwnProperty(o))M[o](t,i);else{var u=o in E,c=o in r,l=i.__reactDontBind,p="function"==typeof i,d=p&&!u&&!c&&!l;d?(r.__reactAutoBindMap||(r.__reactAutoBindMap={}),r.__reactAutoBindMap[o]=i,r[o]=i):r[o]=c?E[o]===C.DEFINE_MANY_MERGED?a(r[o],i):s(r[o],i):i}}}function i(t,e){return f(t&&e&&"object"==typeof t&&"object"==typeof e),y(e,function(e,n){f(void 0===t[n]),t[n]=e}),t}function a(t,e){return function(){return i(t.apply(this,arguments),e.apply(this,arguments))}}function s(t,e){return function(){t.apply(this,arguments),e.apply(this,arguments)}}var u=t("./ReactComponent"),c=t("./ReactCurrentOwner"),l=t("./ReactOwner"),p=t("./ReactPerf"),d=t("./ReactPropTransferer"),h=t("./ReactUpdates"),f=t("./invariant"),m=t("./keyMirror"),v=t("./merge"),g=t("./mixInto"),y=t("./objMap"),C=m({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),E={mixins:C.DEFINE_MANY,propTypes:C.DEFINE_ONCE,getDefaultProps:C.DEFINE_MANY_MERGED,getInitialState:C.DEFINE_MANY_MERGED,render:C.DEFINE_ONCE,componentWillMount:C.DEFINE_MANY,componentDidMount:C.DEFINE_MANY,componentWillReceiveProps:C.DEFINE_MANY,shouldComponentUpdate:C.DEFINE_ONCE,componentWillUpdate:C.DEFINE_MANY,componentDidUpdate:C.DEFINE_MANY,componentWillUnmount:C.DEFINE_MANY,updateComponent:C.OVERRIDE_BASE},M={displayName:function(t,e){t.displayName=e},mixins:function(t,e){if(e)for(var n=0;n",this.tagName=t.toUpperCase()}var o=t("./CSSPropertyOperations"),i=t("./DOMProperty"),a=t("./DOMPropertyOperations"),s=t("./ReactComponent"),u=t("./ReactEventEmitter"),c=t("./ReactMultiChild"),l=t("./ReactMount"),p=t("./ReactPerf"),d=t("./escapeTextForBrowser"),h=t("./invariant"),f=t("./keyOf"),m=t("./merge"),v=t("./mixInto"),g=u.putListener,y=u.deleteListener,C=u.registrationNames,E={string:!0,number:!0},M=f({style:null});r.Mixin={mountComponent:p.measure("ReactDOMComponent","mountComponent",function(t,e,r){return s.Mixin.mountComponent.call(this,t,e,r),n(this.props),this._createOpenTagMarkup()+this._createContentMarkup(e)+this._tagClose}),_createOpenTagMarkup:function(){var t=this.props,e=this._tagOpen;for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];if(null!=r)if(C[n])g(this._rootNodeID,n,r);else{n===M&&(r&&(r=t.style=m(t.style)),r=o.createMarkupForStyles(r));var i=a.createMarkupForProperty(n,r);i&&(e+=" "+i)}}var s=d(this._rootNodeID);return e+" "+l.ATTR_NAME+'="'+s+'">'},_createContentMarkup:function(t){var e=this.props.dangerouslySetInnerHTML;if(null!=e){if(null!=e.__html)return e.__html}else{var n=E[typeof this.props.children]?this.props.children:null,r=null!=n?null:this.props.children;if(null!=n)return d(n);if(null!=r){var o=this.mountChildren(r,t);return o.join("")}}return""},receiveProps:function(t,e){n(t),s.Mixin.receiveProps.call(this,t,e)},updateComponent:p.measure("ReactDOMComponent","updateComponent",function(t,e){s.Mixin.updateComponent.call(this,t,e),this._updateDOMProperties(e),this._updateDOMChildren(e,t)}),_updateDOMProperties:function(t){var e,n,r,o=this.props;for(e in t)if(!o.hasOwnProperty(e)&&t.hasOwnProperty(e))if(e===M){var a=t[e];for(n in a)a.hasOwnProperty(n)&&(r=r||{},r[n]="")}else C[e]?y(this._rootNodeID,e):(i.isStandardName[e]||i.isCustomAttribute(e))&&s.DOMIDOperations.deletePropertyByID(this._rootNodeID,e);for(e in o){var u=o[e],c=t[e];if(o.hasOwnProperty(e)&&u!==c)if(e===M)if(u&&(u=o.style=m(u)),c){for(n in c)c.hasOwnProperty(n)&&!u.hasOwnProperty(n)&&(r=r||{},r[n]="");for(n in u)u.hasOwnProperty(n)&&c[n]!==u[n]&&(r=r||{},r[n]=u[n])}else r=u;else C[e]?g(this._rootNodeID,e,u):(i.isStandardName[e]||i.isCustomAttribute(e))&&s.DOMIDOperations.updatePropertyByID(this._rootNodeID,e,u)}r&&s.DOMIDOperations.updateStylesByID(this._rootNodeID,r)},_updateDOMChildren:function(t,e){var n=this.props,r=E[typeof t.children]?t.children:null,o=E[typeof n.children]?n.children:null,i=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,a=n.dangerouslySetInnerHTML&&n.dangerouslySetInnerHTML.__html,u=null!=r?null:t.children,c=null!=o?null:n.children,l=null!=r||null!=i,p=null!=o||null!=a;null!=u&&null==c?this.updateChildren(null,e):l&&!p&&this.updateTextContent(""),null!=o?r!==o&&this.updateTextContent(""+o):null!=a?i!==a&&s.DOMIDOperations.updateInnerHTMLByID(this._rootNodeID,a):null!=c&&this.updateChildren(c,e)},unmountComponent:function(){u.deleteAllListeners(this._rootNodeID),s.Mixin.unmountComponent.call(this),this.unmountChildren()}},v(r,s.Mixin),v(r,r.Mixin),v(r,c.Mixin),e.exports=r},{"./CSSPropertyOperations":3,"./DOMProperty":8,"./DOMPropertyOperations":9,"./ReactComponent":25,"./ReactEventEmitter":42,"./ReactMount":48,"./ReactMultiChild":50,"./ReactPerf":53,"./escapeTextForBrowser":81,"./invariant":94,"./keyOf":101,"./merge":103,"./mixInto":106}],33:[function(t,e){"use strict";var n=t("./ReactCompositeComponent"),r=t("./ReactDOM"),o=t("./ReactEventEmitter"),i=t("./EventConstants"),a=r.form,s=n.createClass({render:function(){return this.transferPropsTo(a(null,this.props.children))},componentDidMount:function(t){o.trapBubbledEvent(i.topLevelTypes.topSubmit,"submit",t)}});e.exports=s},{"./EventConstants":14,"./ReactCompositeComponent":28,"./ReactDOM":30,"./ReactEventEmitter":42}],34:[function(t,e){"use strict";var n=t("./CSSPropertyOperations"),r=t("./DOMChildrenOperations"),o=t("./DOMPropertyOperations"),i=t("./ReactMount"),a=t("./getTextContentAccessor"),s=t("./invariant"),u={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},c=a()||"NA",l=/^ /,p={updatePropertyByID:function(t,e,n){var r=i.getNode(t);s(!u.hasOwnProperty(e)),null!=n?o.setValueForProperty(r,e,n):o.deleteValueForProperty(r,e)},deletePropertyByID:function(t,e,n){var r=i.getNode(t);s(!u.hasOwnProperty(e)),o.deleteValueForProperty(r,e,n)},updatePropertiesByID:function(t,e){for(var n in e)e.hasOwnProperty(n)&&p.updatePropertiesByID(t,n,e[n])},updateStylesByID:function(t,e){var r=i.getNode(t);n.setValueForStyles(r,e)},updateInnerHTMLByID:function(t,e){var n=i.getNode(t);n.innerHTML=e.replace(l," ")},updateTextContentByID:function(t,e){var n=i.getNode(t);n[c]=e},dangerouslyReplaceNodeWithMarkupByID:function(t,e){var n=i.getNode(t);r.dangerouslyReplaceNodeWithMarkup(n,e)},dangerouslyProcessChildrenUpdates:function(t,e){for(var n=0;nu;u++){var p=i[u];if(p!==o&&"INPUT"===p.nodeName&&"radio"===p.type&&p.form===o.form){var d=a.getID(p);s(d);var h=l[d];s(h),h.setState({checked:!1})}}return e}});e.exports=p},{"./DOMPropertyOperations":9,"./LinkedValueMixin":21,"./ReactCompositeComponent":28,"./ReactDOM":30,"./ReactMount":48,"./invariant":94,"./merge":103}],36:[function(t,e){"use strict";var n=t("./ReactCompositeComponent"),r=t("./ReactDOM"),o=r.option,i=n.createClass({componentWillMount:function(){null!=this.props.selected},render:function(){return o(this.props,this.props.children)}});e.exports=i},{"./ReactCompositeComponent":28,"./ReactDOM":30}],37:[function(t,e){"use strict";function n(t,e){null!=t[e]&&(t.multiple?s(Array.isArray(t[e])):s(!Array.isArray(t[e])))}function r(){for(var t=this.getValue(),e=null!=t?t:this.state.value,n=this.getDOMNode().options,r=""+e,o=0,i=n.length;i>o;o++){var a=this.props.multiple?r.indexOf(n[o].value)>=0:a=n[o].value===r;a!==n[o].selected&&(n[o].selected=a)}}var o=t("./LinkedValueMixin"),i=t("./ReactCompositeComponent"),a=t("./ReactDOM"),s=t("./invariant"),u=t("./merge"),c=a.select,l=i.createClass({mixins:[o],propTypes:{defaultValue:n,value:n},getInitialState:function(){return{value:this.props.defaultValue||(this.props.multiple?[]:"")}},componentWillReceiveProps:function(t){!this.props.multiple&&t.multiple?this.setState({value:[this.state.value]}):this.props.multiple&&!t.multiple&&this.setState({value:this.state.value[0]})},shouldComponentUpdate:function(){return!this._isChanging},render:function(){var t=u(this.props);return t.onChange=this._handleChange,t.value=null,c(t,this.props.children)},componentDidMount:r,componentDidUpdate:r,_handleChange:function(t){var e,n=this.getOnChange();n&&(this._isChanging=!0,e=n(t),this._isChanging=!1);var r;if(this.props.multiple){r=[];for(var o=t.target.options,i=0,a=o.length;a>i;i++)o[i].selected&&r.push(o[i].value)}else r=t.target.value;return this.setState({value:r}),e}});e.exports=l},{"./LinkedValueMixin":21,"./ReactCompositeComponent":28,"./ReactDOM":30,"./invariant":94,"./merge":103}],38:[function(t,e){"use strict";function n(t){var e=document.selection,n=e.createRange(),r=n.text.length,o=n.duplicate();o.moveToElementText(t),o.setEndPoint("EndToStart",n);var i=o.text.length,a=i+r;return{start:i,end:a}}function r(t){var e=window.getSelection();if(0===e.rangeCount)return null;var n=e.anchorNode,r=e.anchorOffset,o=e.focusNode,i=e.focusOffset,a=e.getRangeAt(0),s=a.toString().length,u=a.cloneRange();u.selectNodeContents(t),u.setEnd(a.startContainer,a.startOffset);var c=u.toString().length,l=c+s,p=document.createRange();p.setStart(n,r),p.setEnd(o,i);var d=p.collapsed;return p.detach(),{start:d?l:c,end:d?c:l}}function o(t,e){var n,r,o=document.selection.createRange().duplicate();"undefined"==typeof e.end?(n=e.start,r=n):e.start>e.end?(n=e.end,r=e.start):(n=e.start,r=e.end),o.moveToElementText(t),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function i(t,e){var n=window.getSelection(),r=t[s()].length,o=Math.min(e.start,r),i="undefined"==typeof e.end?o:Math.min(e.end,r),u=a(t,o),c=a(t,i);if(u&&c){var l=document.createRange();l.setStart(u.node,u.offset),n.removeAllRanges(),n.addRange(l),n.extend(c.node,c.offset),l.detach()}}var a=t("./getNodeForCharacterOffset"),s=t("./getTextContentAccessor"),u={getOffsets:function(t){var e=document.selection?n:r;return e(t)},setOffsets:function(t,e){var n=document.selection?o:i;n(t,e)}};e.exports=u},{"./getNodeForCharacterOffset":90,"./getTextContentAccessor":92}],39:[function(t,e){"use strict";var n=t("./DOMPropertyOperations"),r=t("./LinkedValueMixin"),o=t("./ReactCompositeComponent"),i=t("./ReactDOM"),a=t("./invariant"),s=t("./merge"),u=i.textarea,c=o.createClass({mixins:[r],getInitialState:function(){var t=this.props.defaultValue,e=this.props.children;null!=e&&(a(null==t),Array.isArray(e)&&(a(e.length<=1),e=e[0]),t=""+e),null==t&&(t="");var n=this.getValue();return{initialValue:""+(null!=n?n:t),value:t}},shouldComponentUpdate:function(){return!this._isChanging},render:function(){var t=s(this.props),e=this.getValue();return a(null==t.dangerouslySetInnerHTML),t.defaultValue=null,t.value=null!=e?e:this.state.value,t.onChange=this._handleChange,u(t,this.state.initialValue)},componentDidUpdate:function(t,e,r){var o=this.getValue();null!=o&&n.setValueForProperty(r,"value",""+o)},_handleChange:function(t){var e,n=this.getOnChange();return n&&(this._isChanging=!0,e=n(t),this._isChanging=!1),this.setState({value:t.target.value}),e}});e.exports=c},{"./DOMPropertyOperations":9,"./LinkedValueMixin":21,"./ReactCompositeComponent":28,"./ReactDOM":30,"./invariant":94,"./merge":103}],40:[function(t,e){"use strict";function n(){this.reinitializeTransaction()}var r=t("./ReactUpdates"),o=t("./Transaction"),i=t("./emptyFunction"),a=t("./mixInto"),s={initialize:i,close:function(){p.isBatchingUpdates=!1}},u={initialize:i,close:r.flushBatchedUpdates.bind(r)},c=[u,s];a(n,o.Mixin),a(n,{getTransactionWrappers:function(){return c}});var l=new n,p={isBatchingUpdates:!1,batchedUpdates:function(t,e){var n=p.isBatchingUpdates;p.isBatchingUpdates=!0,n?t(e):l.perform(t,null,e)}};e.exports=p},{"./ReactUpdates":59,"./Transaction":71,"./emptyFunction":80,"./mixInto":106}],41:[function(t,e){"use strict";function n(){l.TopLevelCallbackCreator=p,y.injection.injectEventPluginOrder(v),y.injection.injectInstanceHandle(E),y.injection.injectEventPluginsByName({SimpleEventPlugin:R,EnterLeaveEventPlugin:g,ChangeEventPlugin:f,CompositionEventPlugin:m,MobileSafariClickEventPlugin:C,SelectEventPlugin:M}),r.injection.injectComponentClasses({button:o,form:i,input:a,option:s,select:u,textarea:c}),h.injection.injectDOMPropertyConfig(d),b.injection.injectBatchingStrategy(D)}var r=t("./ReactDOM"),o=t("./ReactDOMButton"),i=t("./ReactDOMForm"),a=t("./ReactDOMInput"),s=t("./ReactDOMOption"),u=t("./ReactDOMSelect"),c=t("./ReactDOMTextarea"),l=t("./ReactEventEmitter"),p=t("./ReactEventTopLevelCallback");t("./ReactPerf");var d=t("./DefaultDOMPropertyConfig"),h=t("./DOMProperty"),f=t("./ChangeEventPlugin"),m=t("./CompositionEventPlugin"),v=t("./DefaultEventPluginOrder"),g=t("./EnterLeaveEventPlugin"),y=t("./EventPluginHub"),C=t("./MobileSafariClickEventPlugin"),E=t("./ReactInstanceHandles"),M=t("./SelectEventPlugin"),R=t("./SimpleEventPlugin"),D=t("./ReactDefaultBatchingStrategy"),b=t("./ReactUpdates");e.exports={inject:n}},{"./ChangeEventPlugin":5,"./CompositionEventPlugin":6,"./DOMProperty":8,"./DefaultDOMPropertyConfig":11,"./DefaultEventPluginOrder":12,"./EnterLeaveEventPlugin":13,"./EventPluginHub":16,"./MobileSafariClickEventPlugin":22,"./ReactDOM":30,"./ReactDOMButton":31,"./ReactDOMForm":33,"./ReactDOMInput":35,"./ReactDOMOption":36,"./ReactDOMSelect":37,"./ReactDOMTextarea":39,"./ReactDefaultBatchingStrategy":40,"./ReactEventEmitter":42,"./ReactEventTopLevelCallback":44,"./ReactInstanceHandles":46,"./ReactPerf":53,"./ReactUpdates":59,"./SelectEventPlugin":60,"./SimpleEventPlugin":61}],42:[function(t,e){"use strict";function n(t,e,n){a.listen(n,e,f.TopLevelCallbackCreator.createTopLevelCallback(t))}function r(t,e,n){a.capture(n,e,f.TopLevelCallbackCreator.createTopLevelCallback(t))}function o(){var t=l.refreshScrollValues;a.listen(window,"scroll",t),a.listen(window,"resize",t)}var i=t("./EventConstants"),a=t("./EventListener"),s=t("./EventPluginHub"),u=t("./ExecutionEnvironment"),c=t("./ReactEventEmitterMixin"),l=t("./ViewportMetrics"),p=t("./invariant"),d=t("./isEventSupported"),h=t("./merge"),f=h(c,{TopLevelCallbackCreator:null,ensureListening:function(t,e){p(u.canUseDOM),p(f.TopLevelCallbackCreator),c.ensureListening.call(f,{touchNotMouse:t,contentDocument:e})},setEnabled:function(t){p(u.canUseDOM),f.TopLevelCallbackCreator&&f.TopLevelCallbackCreator.setEnabled(t)},isEnabled:function(){return!(!f.TopLevelCallbackCreator||!f.TopLevelCallbackCreator.isEnabled())},listenAtTopLevel:function(t,e){p(!e._isListening);var a=i.topLevelTypes,s=e;o(),n(a.topMouseOver,"mouseover",s),n(a.topMouseDown,"mousedown",s),n(a.topMouseUp,"mouseup",s),n(a.topMouseMove,"mousemove",s),n(a.topMouseOut,"mouseout",s),n(a.topClick,"click",s),n(a.topDoubleClick,"dblclick",s),t&&(n(a.topTouchStart,"touchstart",s),n(a.topTouchEnd,"touchend",s),n(a.topTouchMove,"touchmove",s),n(a.topTouchCancel,"touchcancel",s)),n(a.topKeyUp,"keyup",s),n(a.topKeyPress,"keypress",s),n(a.topKeyDown,"keydown",s),n(a.topInput,"input",s),n(a.topChange,"change",s),n(a.topSelectionChange,"selectionchange",s),n(a.topCompositionEnd,"compositionend",s),n(a.topCompositionStart,"compositionstart",s),n(a.topCompositionUpdate,"compositionupdate",s),d("drag")&&(n(a.topDrag,"drag",s),n(a.topDragEnd,"dragend",s),n(a.topDragEnter,"dragenter",s),n(a.topDragExit,"dragexit",s),n(a.topDragLeave,"dragleave",s),n(a.topDragOver,"dragover",s),n(a.topDragStart,"dragstart",s),n(a.topDrop,"drop",s)),d("wheel")?n(a.topWheel,"wheel",s):d("mousewheel")?n(a.topWheel,"mousewheel",s):n(a.topWheel,"DOMMouseScroll",s),d("scroll",!0)?r(a.topScroll,"scroll",s):n(a.topScroll,"scroll",window),d("focus",!0)?(r(a.topFocus,"focus",s),r(a.topBlur,"blur",s)):d("focusin")&&(n(a.topFocus,"focusin",s),n(a.topBlur,"focusout",s)),d("copy")&&(n(a.topCopy,"copy",s),n(a.topCut,"cut",s),n(a.topPaste,"paste",s))},registrationNames:s.registrationNames,putListener:s.putListener,getListener:s.getListener,deleteListener:s.deleteListener,deleteAllListeners:s.deleteAllListeners,trapBubbledEvent:n,trapCapturedEvent:r});e.exports=f},{"./EventConstants":14,"./EventListener":15,"./EventPluginHub":16,"./ExecutionEnvironment":20,"./ReactEventEmitterMixin":43,"./ViewportMetrics":72,"./invariant":94,"./isEventSupported":95,"./merge":103}],43:[function(t,e){"use strict";function n(t){r.enqueueEvents(t),r.processEventQueue()}var r=t("./EventPluginHub"),o=t("./ReactUpdates"),i={_isListening:!1,ensureListening:function(t){t.contentDocument._reactIsListening||(this.listenAtTopLevel(t.touchNotMouse,t.contentDocument),t.contentDocument._reactIsListening=!0)},handleTopLevel:function(t,e,i,a){var s=r.extractEvents(t,e,i,a);o.batchedUpdates(n,s)}};e.exports=i},{"./EventPluginHub":16,"./ReactUpdates":59}],44:[function(t,e){"use strict";var n=t("./ReactEventEmitter"),r=t("./ReactMount"),o=t("./getEventTarget"),i=!0,a={setEnabled:function(t){i=!!t},isEnabled:function(){return i},createTopLevelCallback:function(t){return function(e){if(i){e.srcElement&&e.srcElement!==e.target&&(e.target=e.srcElement);var a=r.getFirstReactDOM(o(e))||window,s=r.getID(a)||"";n.handleTopLevel(t,a,s,e)}}}};e.exports=a},{"./ReactEventEmitter":42,"./ReactMount":48,"./getEventTarget":88}],45:[function(t,e){"use strict";function n(t){return i(document.documentElement,t)}var r=t("./ReactDOMSelection"),o=t("./getActiveElement"),i=t("./nodeContains"),a={hasSelectionCapabilities:function(t){return t&&("INPUT"===t.nodeName&&"text"===t.type||"TEXTAREA"===t.nodeName||"true"===t.contentEditable)},getSelectionInformation:function(){var t=o();return{focusedElem:t,selectionRange:a.hasSelectionCapabilities(t)?a.getSelection(t):null}},restoreSelection:function(t){var e=o(),r=t.focusedElem,i=t.selectionRange;e!==r&&n(r)&&(a.hasSelectionCapabilities(r)&&a.setSelection(r,i),r.focus())},getSelection:function(t){var e;if("selectionStart"in t)e={start:t.selectionStart,end:t.selectionEnd};else if(document.selection&&"INPUT"===t.nodeName){var n=document.selection.createRange();n.parentElement()===t&&(e={start:-n.moveStart("character",-t.value.length),end:-n.moveEnd("character",-t.value.length)})}else e=r.getOffsets(t);return e||{start:0,end:0}},setSelection:function(t,e){var n=e.start,o=e.end;if("undefined"==typeof o&&(o=n),"selectionStart"in t)t.selectionStart=n,t.selectionEnd=Math.min(o,t.value.length);else if(document.selection&&"INPUT"===t.nodeName){var i=t.createTextRange();i.collapse(!0),i.moveStart("character",n),i.moveEnd("character",o-n),i.select()}else r.setOffsets(t,e)}};e.exports=a},{"./ReactDOMSelection":38,"./getActiveElement":87,"./nodeContains":108}],46:[function(t,e){"use strict";function n(t){return p+"r["+t.toString(36)+"]"}function r(t,e){return t.charAt(e)===p||e===t.length}function o(t){return""===t||t.charAt(0)===p&&t.charAt(t.length-1)!==p}function i(t,e){return 0===e.indexOf(t)&&r(e,t.length)}function a(t){return t?t.substr(0,t.lastIndexOf(p)):""}function s(t,e){if(l(o(t)&&o(e)),l(i(t,e)),t===e)return t;for(var n=t.length+d,a=n;a=a;a++)if(r(t,a)&&r(e,a))i=a;else if(t.charAt(a)!==e.charAt(a))break;var s=t.substr(0,i);return l(o(s)),s}function c(t,e,n,r,o,u){t=t||"",e=e||"",l(t!==e);var c=i(e,t);l(c||i(t,e));for(var p=0,d=c?a:s,f=t;o&&f===t||u&&f===e||n(f,c,r),f!==e;f=d(f,e))l(p++"," "+r.CHECKSUM_ATTR_NAME+'="'+e+'">')},canReuseMarkup:function(t,e){var o=e.getAttribute(r.CHECKSUM_ATTR_NAME);o=o&&parseInt(o,10);var i=n(t);return i===o}};e.exports=r},{"./adler32":74}],48:[function(t,e){"use strict";function n(t){var e=d(t);return e&&R.getID(e)}function r(t){var e=o(t);if(e)if(g.hasOwnProperty(e)){var n=g[e];n!==t&&(h(!s(n,e)),g[e]=t)}else g[e]=t;return e}function o(t){return t&&t.getAttribute&&t.getAttribute(v)||""}function i(t,e){var n=o(t);n!==e&&delete g[n],t.setAttribute(v,e),g[e]=t}function a(t){return g.hasOwnProperty(t)&&s(g[t],t)||(g[t]=R.findReactNodeByID(t)),g[t]}function s(t,e){if(t){h(o(t)===e);var n=R.findReactContainerForID(e);if(n&&f(n,t))return!0}return!1}function u(t){delete g[t]}var c=t("./ReactEventEmitter"),l=t("./ReactInstanceHandles"),p=t("./$"),d=t("./getReactRootElementInContainer"),h=t("./invariant"),f=t("./nodeContains"),m=l.SEPARATOR,v="data-reactid",g={},y=1,C=9,E={},M={},R={allowFullPageRender:!1,totalInstantiationTime:0,totalInjectionTime:0,useTouchEvents:!1,_instancesByReactRootID:E,scrollMonitor:function(t,e){e()},prepareEnvironmentForDOM:function(t){h(t&&(t.nodeType===y||t.nodeType===C));var e=t.nodeType===y?t.ownerDocument:t;c.ensureListening(R.useTouchEvents,e)},_updateRootComponent:function(t,e,n,r){var o=e.props;return R.scrollMonitor(n,function(){t.replaceProps(o,r)}),t},_registerComponent:function(t,e){R.prepareEnvironmentForDOM(e);var n=R.registerContainer(e);return E[n]=t,n},_renderNewRootComponent:function(t,e,n){var r=R._registerComponent(t,e);return t.mountComponentIntoNode(r,e,n),t},renderComponent:function(t,e,r){var o=E[n(e)];if(o){if(o.constructor===t.constructor)return R._updateRootComponent(o,t,e,r);R.unmountComponentAtNode(e)}var i=d(e),a=i&&R.isRenderedByReact(i),s=a&&!o,u=R._renderNewRootComponent(t,e,s);return r&&r(),u},constructAndRenderComponent:function(t,e,n){return R.renderComponent(t(e),n)},constructAndRenderComponentByID:function(t,e,n){return R.constructAndRenderComponent(t,e,p(n))},registerContainer:function(t){var e=n(t);return e&&(e=l.getReactRootIDFromNodeID(e)),e||(e=l.createReactRootID()),M[e]=t,e},unmountComponentAtNode:function(t){var e=n(t),r=E[e];return r?(R.unmountComponentFromNode(r,t),delete E[e],delete M[e],!0):!1},unmountAndReleaseReactRootNode:function(){return R.unmountComponentAtNode.apply(this,arguments)},unmountComponentFromNode:function(t,e){for(t.unmountComponent();e.lastChild;)e.removeChild(e.lastChild)},findReactContainerForID:function(t){var e=l.getReactRootIDFromNodeID(t),n=M[e];return n},findReactNodeByID:function(t){var e=R.findReactContainerForID(t);return R.findComponentRoot(e,t)},isRenderedByReact:function(t){if(1!==t.nodeType)return!1;var e=R.getID(t);return e?e.charAt(0)===m:!1},getFirstReactDOM:function(t){for(var e=t;e&&e.parentNode!==e;){if(R.isRenderedByReact(e))return e;e=e.parentNode}return null},findComponentRoot:function(t,e){for(var n=[t.firstChild],r=0;re;e++){var r=t[e].component,o=t[e].callback;o.call(r,r.getDOMNode())}t.length=0}},reset:function(){this._queue=null},destructor:function(){this.reset()}}),r.addPoolingTo(n),e.exports=n},{"./PooledClass":23,"./mixInto":106}],50:[function(t,e){"use strict";function n(t,e){return t&&e&&t.constructor===e.constructor}function r(t,e,n){h.push({parentID:t,parentNode:null,type:l.INSERT_MARKUP,markupIndex:f.push(e)-1,fromIndex:null,textContent:null,toIndex:n})}function o(t,e,n){h.push({parentID:t,parentNode:null,type:l.MOVE_EXISTING,markupIndex:null,textContent:null,fromIndex:e,toIndex:n})}function i(t,e){h.push({parentID:t,parentNode:null,type:l.REMOVE_NODE,markupIndex:null,textContent:null,fromIndex:e,toIndex:null})}function a(t,e){h.push({parentID:t,parentNode:null,type:l.TEXT_CONTENT,markupIndex:null,textContent:e,fromIndex:null,toIndex:null})}function s(){h.length&&(c.DOMIDOperations.dangerouslyProcessChildrenUpdates(h,f),u())}function u(){h.length=0,f.length=0}var c=t("./ReactComponent"),l=t("./ReactMultiChildUpdateTypes"),p=t("./flattenChildren"),d=0,h=[],f=[],m={Mixin:{mountChildren:function(t,e){var n=p(t),r=[],o=0;this._renderedChildren=n;for(var i in n){var a=n[i];if(n.hasOwnProperty(i)&&a){var s=this._rootNodeID+"."+i,u=a.mountComponent(s,e,this._mountDepth+1);a._mountImage=u,a._mountIndex=o,r.push(u),o++}}return r},updateTextContent:function(t){d++;try{var e=this._renderedChildren;for(var n in e)e.hasOwnProperty(n)&&e[n]&&this._unmountChildByName(e[n],n);this.setTextContent(t)}catch(r){throw d--,d||u(),r}d--,d||s()},updateChildren:function(t,e){d++;try{this._updateChildren(t,e)}catch(n){throw d--,d||u(),n}d--,d||s()},_updateChildren:function(t,e){var r=p(t),o=this._renderedChildren;if(r||o){var i,a=0,s=0;for(i in r)if(r.hasOwnProperty(i)){var u=o&&o[i],c=r[i];n(u,c)?(this.moveChild(u,s,a),a=Math.max(u._mountIndex,a),u.receiveProps(c.props,e),u._mountIndex=s):(u&&(a=Math.max(u._mountIndex,a),this._unmountChildByName(u,i)),c&&this._mountChildByNameAtIndex(c,i,s,e)),c&&s++}for(i in o)!o.hasOwnProperty(i)||!o[i]||r&&r[i]||this._unmountChildByName(o[i],i)}},unmountChildren:function(){var t=this._renderedChildren;for(var e in t){var n=t[e];n&&n.unmountComponent&&n.unmountComponent()}this._renderedChildren=null},moveChild:function(t,e,n){t._mountIndex>";e.exports=u},{"./createObjectFrom":78,"./invariant":94}],56:[function(t,e){"use strict";function n(){this.reinitializeTransaction(),this.reactMountReady=s.getPooled(null)}var r=t("./ExecutionEnvironment"),o=t("./PooledClass"),i=t("./ReactEventEmitter"),a=t("./ReactInputSelection"),s=t("./ReactMountReady"),u=t("./Transaction"),c=t("./mixInto"),l={initialize:a.getSelectionInformation,close:a.restoreSelection},p={initialize:function(){var t=i.isEnabled();return i.setEnabled(!1),t},close:function(t){i.setEnabled(t)}},d={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},h=[l,p,d],f={getTransactionWrappers:function(){return r.canUseDOM?h:[]},getReactMountReady:function(){return this.reactMountReady},destructor:function(){s.release(this.reactMountReady),this.reactMountReady=null}};c(n,u.Mixin),c(n,f),o.addPoolingTo(n),e.exports=n},{"./ExecutionEnvironment":20,"./PooledClass":23,"./ReactEventEmitter":42,"./ReactInputSelection":45,"./ReactMountReady":49,"./Transaction":71,"./mixInto":106}],57:[function(t,e){"use strict";function n(t,e){var n=i.createReactRootID(),a=o.getPooled();a.reinitializeTransaction();try{a.perform(function(){var o=t.mountComponent(n,a,0);o=r.addChecksumToMarkup(o),e(o)},null)}finally{o.release(a)}}var r=t("./ReactMarkupChecksum"),o=t("./ReactReconcileTransaction"),i=t("./ReactInstanceHandles");e.exports={renderComponentToString:n}},{"./ReactInstanceHandles":46,"./ReactMarkupChecksum":47,"./ReactReconcileTransaction":56}],58:[function(t,e){"use strict";var n=t("./ReactComponent"),r=t("./ReactMount"),o=t("./escapeTextForBrowser"),i=t("./mixInto"),a=function(t){this.construct({text:t})};i(a,n.Mixin),i(a,{mountComponent:function(t,e,i){return n.Mixin.mountComponent.call(this,t,e,i),"'+o(this.props.text)+""},receiveProps:function(t){t.text!==this.props.text&&(this.props.text=t.text,n.DOMIDOperations.updateTextContentByID(this._rootNodeID,t.text))}}),e.exports=a},{"./ReactComponent":25,"./ReactMount":48,"./escapeTextForBrowser":81,"./mixInto":106}],59:[function(t,e){"use strict";function n(){c(p)}function r(t,e){n(),p.batchedUpdates(t,e)}function o(t,e){return t._mountDepth-e._mountDepth}function i(){l.sort(o);for(var t=0;t":">","<":"<",'"':""","'":"'","/":"/"},i=/[&><"'\/]/g;e.exports=r},{}],82:[function(t,e){var n=function(t){var e=Array.prototype.slice.call(arguments).map(function(t){return String(t)}),r=t.split("%s").length-1;return r!==e.length-1?n("ex args number mismatch: %s",JSON.stringify(e)):n._prefix+JSON.stringify(e)+n._suffix};n._prefix="",e.exports=n},{}],83:[function(t,e){"use strict";function n(t,e,n){for(var r=t.attributes,o=r.length,i=[],a=0;o>a;a++){var s=r.item(a);e.call(n,s)&&i.push(s)}return i}e.exports=n},{}],84:[function(t,e){"use strict";function n(t,e,n){var r=t;o(!r.hasOwnProperty(n)),r[n]=e}function r(t){if(null==t)return t;var e={};return i(t,n,e),e}var o=t("./invariant"),i=t("./traverseAllChildren");e.exports=r},{"./invariant":94,"./traverseAllChildren":112}],85:[function(t,e){"use strict";var n=function(t,e,n){Array.isArray(t)?t.forEach(e,n):t&&e.call(n,t)};e.exports=n},{}],86:[function(t,e){function n(t,e,n){return"string"!=typeof t?t:e?r(t,e,n):document.getElementById(t)}function r(t,e,n){var i,a,s;if(o(e)==t)return e;if(e.getElementsByTagName){for(a=e.getElementsByTagName(n||"*"),s=0;s":"<"+t+">",a[t]=!i.firstChild),a[t]?p[t]:null}var r=t("./ExecutionEnvironment"),o=t("./invariant"),i=r.canUseDOM?document.createElement("div"):null,a={circle:!0,g:!0,line:!0,path:!0,polyline:!0,rect:!0,text:!0},s=[1,'"],u=[1,"","
    "],c=[3,"","
    "],l=[1,"",""],p={"*":[1,"?
    ","
    "],area:[1,"",""],col:[2,"","
    "],legend:[1,"
    ","
    "],param:[1,"",""],tr:[2,"","
    "],optgroup:s,option:s,caption:u,colgroup:u,tbody:u,tfoot:u,thead:u,td:c,th:c,circle:l,g:l,line:l,path:l,polyline:l,rect:l,text:l};e.exports=n},{"./ExecutionEnvironment":20,"./invariant":94}],90:[function(t,e){"use strict";function n(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function r(t){for(;t;){if(t.nextSibling)return t.nextSibling;t=t.parentNode}}function o(t,e){for(var o=n(t),i=0,a=0;o;){if(3==o.nodeType){if(a=i+o.textContent.length,e>=i&&a>=e)return{node:o,offset:e-i};i=a}o=n(r(o))}}e.exports=o},{}],91:[function(t,e){"use strict";function n(t){return t&&t.firstChild}e.exports=n},{}],92:[function(t,e){"use strict";function n(){return!o&&r.canUseDOM&&(o="innerText"in document.createElement("div")?"innerText":"textContent"),o}var r=t("./ExecutionEnvironment"),o=null;e.exports=n},{"./ExecutionEnvironment":20}],93:[function(t,e){function n(t){return t.replace(r,"-$1").toLowerCase()}var r=/([A-Z])/g;e.exports=n},{}],94:[function(t,e){function n(t){if(!t)throw new Error("Invariant Violation")}e.exports=n},{}],95:[function(t,e){"use strict";function n(t,e){if(!r||e&&!r.addEventListener)return!1;var n=document.createElement("div"),i="on"+t,a=i in n;return a||(n.setAttribute(i,"return;"),a="function"==typeof n[i],"undefined"!=typeof n[i]&&(n[i]=void 0),n.removeAttribute(i)),!a&&o&&"wheel"===t&&(a=document.implementation.hasFeature("Events.wheel","3.0")),n=null,a}var r,o,i=t("./ExecutionEnvironment");i.canUseDOM&&(r=document.createElement("div"),o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),e.exports=n},{"./ExecutionEnvironment":20}],96:[function(t,e){function n(t){return!(!t||!("undefined"!=typeof Node?t instanceof Node:"object"==typeof t&&"number"==typeof t.nodeType&&"string"==typeof t.nodeName))}e.exports=n},{}],97:[function(t,e){"use strict";function n(t){return t&&("INPUT"===t.nodeName&&r[t.type]||"TEXTAREA"===t.nodeName)}var r={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=n},{}],98:[function(t,e){function n(t){return r(t)&&3==t.nodeType}var r=t("./isNode");e.exports=n},{"./isNode":96}],99:[function(t,e){"use strict";function n(t){t||(t="");var e,n=arguments.length;if(n>1)for(var r=1;n>r;r++)e=arguments[r],e&&(t+=" "+e);return t}e.exports=n},{}],100:[function(t,e){"use strict";var n=t("./invariant"),r=function(t){var e,r={};n(t instanceof Object&&!Array.isArray(t));for(e in t)t.hasOwnProperty(e)&&(r[e]=e);return r};e.exports=r},{"./invariant":94}],101:[function(t,e){var n=function(t){var e;for(e in t)if(t.hasOwnProperty(e))return e;return null};e.exports=n},{}],102:[function(t,e){"use strict";function n(t){var e={};return function(n){return e.hasOwnProperty(n)?e[n]:e[n]=t.call(this,n)}}e.exports=n},{}],103:[function(t,e){"use strict";var n=t("./mergeInto"),r=function(t,e){var r={};return n(r,t),n(r,e),r};e.exports=r},{"./mergeInto":105}],104:[function(t,e){"use strict";var n=t("./invariant"),r=t("./keyMirror"),o=36,i=function(t){return"object"!=typeof t||null===t},a={MAX_MERGE_DEPTH:o,isTerminal:i,normalizeMergeArg:function(t){return void 0===t||null===t?{}:t},checkMergeArrayArgs:function(t,e){n(Array.isArray(t)&&Array.isArray(e))},checkMergeObjectArgs:function(t,e){a.checkMergeObjectArg(t),a.checkMergeObjectArg(e)},checkMergeObjectArg:function(t){n(!i(t)&&!Array.isArray(t))},checkMergeLevel:function(t){n(o>t)},checkArrayStrategy:function(t){n(void 0===t||t in a.ArrayStrategies)},ArrayStrategies:r({Clobber:!0,IndexByIndex:!0})};e.exports=a},{"./invariant":94,"./keyMirror":100}],105:[function(t,e){"use strict";function n(t,e){if(o(t),null!=e){o(e);for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])}}var r=t("./mergeHelpers"),o=r.checkMergeObjectArg;e.exports=n},{"./mergeHelpers":104}],106:[function(t,e){"use strict";var n=function(t,e){var n;for(n in e)e.hasOwnProperty(n)&&(t.prototype[n]=e[n])};e.exports=n},{}],107:[function(t,e){"use strict";function n(t,e){i("html"===t.tagName.toLowerCase()),e=e.trim(),i(0===e.toLowerCase().indexOf("")+1,a=e.lastIndexOf("<"),s=e.substring(0,n),u=e.substring(n,a),c=s.indexOf(" ")>-1,l=null;if(c){l=r(s.replace("html ","span ")+"")[0];var p=o(l,function(e){return t.getAttributeNS(e.namespaceURI,e.name)!==e.value});p.forEach(function(e){t.setAttributeNS(e.namespaceURI,e.name,e.value)})}var d=o(t,function(t){return!(l&&l.hasAttributeNS(t.namespaceURI,t.name))});d.forEach(function(e){t.removeAttributeNS(e.namespaceURI,e.name)}),t.innerHTML=u}var r=t("./createNodesFromMarkup"),o=t("./filterAttributes"),i=t("./invariant");e.exports=n},{"./createNodesFromMarkup":77,"./filterAttributes":83,"./invariant":94}],108:[function(t,e){function n(t,e){return t&&e?t===e?!0:r(t)?!1:r(e)?n(t,e.parentNode):t.contains?t.contains(e):t.compareDocumentPosition?!!(16&t.compareDocumentPosition(e)):!1:!1}var r=t("./isTextNode");e.exports=n},{"./isTextNode":98}],109:[function(t,e){"use strict";function n(t,e,n){if(!t)return null;var r=0,o={};for(var i in t)t.hasOwnProperty(i)&&(o[i]=e.call(n,t[i],i,r++));return o}e.exports=n},{}],110:[function(t,e){"use strict";function n(t,e,n){if(!t)return null;var r=0,o={};for(var i in t)t.hasOwnProperty(i)&&(o[i]=e.call(n,i,t[i],r++));return o}e.exports=n},{}],111:[function(t,e){"use strict";function n(t,e){if(t===e)return!0;var n;for(n in t)if(t.hasOwnProperty(n)&&(!e.hasOwnProperty(n)||t[n]!==e[n]))return!1;for(n in e)if(e.hasOwnProperty(n)&&!t.hasOwnProperty(n))return!1;return!0}e.exports=n},{}],112:[function(t,e){"use strict";function n(t,e,n){null!==t&&void 0!==t&&a(t,"",0,e,n)}var r=t("./ReactComponent"),o=t("./ReactTextComponent"),i=t("./invariant"),a=function(t,e,n,s,u){var c=0;if(Array.isArray(t))for(var l=0;l