From 4d142ad5f163a941c56ebf78af5bb9d526a9e77a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 13 Apr 2015 15:45:54 -0700 Subject: [PATCH 01/23] Version bump for dev --- npm-react/package.json | 2 +- package.json | 2 +- src/browser/ui/React.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-react/package.json b/npm-react/package.json index 23d8fe99321a1..7d95c92f031ee 100644 --- a/npm-react/package.json +++ b/npm-react/package.json @@ -1,7 +1,7 @@ { "name": "react", "description": "React is a JavaScript library for building user interfaces.", - "version": "0.13.1", + "version": "0.13.2-alpha", "keywords": [ "react" ], diff --git a/package.json b/package.json index 4b11ba48ccd00..ce10833f6c144 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "react-tools", "description": "A set of complementary tools to React, including the JSX transformer.", - "version": "0.13.1", + "version": "0.13.2-alpha", "keywords": [ "react", "jsx", diff --git a/src/browser/ui/React.js b/src/browser/ui/React.js index e6b2ca7408193..e8a89b4cfbc9f 100644 --- a/src/browser/ui/React.js +++ b/src/browser/ui/React.js @@ -143,6 +143,6 @@ if (__DEV__) { } } -React.version = '0.13.1'; +React.version = '0.13.2-alpha'; module.exports = React; From 28483ea245afa7fe72c59d7335c526baf4aa52fa Mon Sep 17 00:00:00 2001 From: Jim Date: Wed, 25 Mar 2015 11:55:35 -0700 Subject: [PATCH 02/23] Merge pull request #3494 from letiemble/B_Context_Rerender Fix the context handling when updating a rendered component. --- src/core/ReactCompositeComponent.js | 2 +- .../__tests__/ReactCompositeComponent-test.js | 60 +++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/src/core/ReactCompositeComponent.js b/src/core/ReactCompositeComponent.js index f91b3c119b23a..15afc9952314d 100644 --- a/src/core/ReactCompositeComponent.js +++ b/src/core/ReactCompositeComponent.js @@ -743,7 +743,7 @@ var ReactCompositeComponentMixin = { this._renderedComponent, thisID, transaction, - context + this._processChildContext(context) ); this._replaceNodeWithMarkupByID(prevComponentID, nextMarkup); } diff --git a/src/core/__tests__/ReactCompositeComponent-test.js b/src/core/__tests__/ReactCompositeComponent-test.js index c2fa177ff22d6..6ef09a29fb128 100644 --- a/src/core/__tests__/ReactCompositeComponent-test.js +++ b/src/core/__tests__/ReactCompositeComponent-test.js @@ -20,6 +20,7 @@ var ReactMount; var ReactPropTypes; var ReactServerRendering; var ReactTestUtils; +var ReactUpdates; var reactComponentExpect; var mocks; @@ -37,6 +38,7 @@ describe('ReactCompositeComponent', function() { ReactTestUtils = require('ReactTestUtils'); ReactMount = require('ReactMount'); ReactServerRendering = require('ReactServerRendering'); + ReactUpdates = require('ReactUpdates'); MorphingComponent = React.createClass({ getInitialState: function() { @@ -604,6 +606,64 @@ describe('ReactCompositeComponent', function() { reactComponentExpect(grandchildInstance).scalarContextEqual({foo: 'bar', depth: 1}); }); + it('should pass context when re-rendered', function() { + var parentInstance = null; + var childInstance = null; + + var Parent = React.createClass({ + childContextTypes: { + foo: ReactPropTypes.string, + depth: ReactPropTypes.number + }, + + getChildContext: function() { + return { + foo: 'bar', + depth: 0 + }; + }, + + getInitialState: function() { + return { + flag: false + } + }, + + render: function() { + var output = ; + if (!this.state.flag) { + output = Child; + } + return output; + } + }); + + var Child = React.createClass({ + contextTypes: { + foo: ReactPropTypes.string, + depth: ReactPropTypes.number + }, + + render: function() { + childInstance = this; + return Child; + } + }); + + parentInstance = ReactTestUtils.renderIntoDocument(); + expect(childInstance).toBeNull(); + + expect(parentInstance.state.flag).toBe(false); + ReactUpdates.batchedUpdates(function() { + parentInstance.setState({flag: true}); + }); + expect(parentInstance.state.flag).toBe(true); + + expect(console.warn.argsForCall.length).toBe(0); + + reactComponentExpect(childInstance).scalarContextEqual({foo: 'bar', depth: 0}); + }); + it('warn if context keys differ', function() { var Component = React.createClass({ contextTypes: { From 440d7b9fd0280bfd45c265eb4d490f13f0e810ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 24 Mar 2015 13:57:02 -0700 Subject: [PATCH 03/23] Merge pull request #3499 from sverrejoh/patch-1 Don't add 'px' to strokeDashoffset CSS Properties --- src/browser/ui/dom/CSSProperty.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/browser/ui/dom/CSSProperty.js b/src/browser/ui/dom/CSSProperty.js index 50f0802300545..93b5468438b0f 100644 --- a/src/browser/ui/dom/CSSProperty.js +++ b/src/browser/ui/dom/CSSProperty.js @@ -33,7 +33,9 @@ var isUnitlessNumber = { // SVG-related properties fillOpacity: true, - strokeOpacity: true + strokeDashoffset: true, + strokeOpacity: true, + strokeWidth: true }; /** From ed8b4d65337057dae84934e0323aff6013726d91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Wed, 25 Mar 2015 10:54:29 -0700 Subject: [PATCH 04/23] Merge pull request #3507 from dpellier/master Add scoped property to the list of DOM standard properties --- docs/docs/ref-04-tags-and-attributes.md | 2 +- src/browser/ui/dom/HTMLDOMPropertyConfig.js | 1 + src/browser/ui/dom/__tests__/DOMPropertyOperations-test.js | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/docs/ref-04-tags-and-attributes.md b/docs/docs/ref-04-tags-and-attributes.md index f4d2a6dfdc625..dbff8d2ec6ca3 100644 --- a/docs/docs/ref-04-tags-and-attributes.md +++ b/docs/docs/ref-04-tags-and-attributes.md @@ -60,7 +60,7 @@ formAction formEncType formMethod formNoValidate formTarget frameBorder height hidden href hrefLang htmlFor httpEquiv icon id label lang list loop manifest marginHeight marginWidth max maxLength media mediaGroup method min multiple muted name noValidate open pattern placeholder poster preload radioGroup -readOnly rel required role rows rowSpan sandbox scope scrolling seamless +readOnly rel required role rows rowSpan sandbox scope scoped scrolling seamless selected shape size sizes span spellCheck src srcDoc srcSet start step style tabIndex target title type useMap value width wmode ``` diff --git a/src/browser/ui/dom/HTMLDOMPropertyConfig.js b/src/browser/ui/dom/HTMLDOMPropertyConfig.js index 0cd3aa369c9e0..18a34dd83a456 100644 --- a/src/browser/ui/dom/HTMLDOMPropertyConfig.js +++ b/src/browser/ui/dom/HTMLDOMPropertyConfig.js @@ -134,6 +134,7 @@ var HTMLDOMPropertyConfig = { rowSpan: null, sandbox: null, scope: null, + scoped: HAS_BOOLEAN_VALUE, scrolling: null, seamless: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, diff --git a/src/browser/ui/dom/__tests__/DOMPropertyOperations-test.js b/src/browser/ui/dom/__tests__/DOMPropertyOperations-test.js index 8ff6c1aaaf0c4..3fc81fa4f9a92 100644 --- a/src/browser/ui/dom/__tests__/DOMPropertyOperations-test.js +++ b/src/browser/ui/dom/__tests__/DOMPropertyOperations-test.js @@ -89,6 +89,11 @@ describe('DOMPropertyOperations', function() { 'checked', false )).toBe(''); + + expect(DOMPropertyOperations.createMarkupForProperty( + 'scoped', + true + )).toBe('scoped=""'); }); it('should create markup for booleanish properties', function() { From 6d021d31ef9c08ed1a363306e591a28c801a44a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Wed, 25 Mar 2015 12:17:07 -0700 Subject: [PATCH 05/23] Merge pull request #3513 from agelter/master Added support for the 'low', 'high', and 'optimum' attributes that are missing from the tag. --- src/browser/ui/dom/HTMLDOMPropertyConfig.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/browser/ui/dom/HTMLDOMPropertyConfig.js b/src/browser/ui/dom/HTMLDOMPropertyConfig.js index 18a34dd83a456..0b5a816881345 100644 --- a/src/browser/ui/dom/HTMLDOMPropertyConfig.js +++ b/src/browser/ui/dom/HTMLDOMPropertyConfig.js @@ -97,6 +97,7 @@ var HTMLDOMPropertyConfig = { headers: null, height: MUST_USE_ATTRIBUTE, hidden: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, + high: null, href: null, hrefLang: null, htmlFor: null, @@ -107,6 +108,7 @@ var HTMLDOMPropertyConfig = { lang: null, list: MUST_USE_ATTRIBUTE, loop: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, + low: null, manifest: MUST_USE_ATTRIBUTE, marginHeight: null, marginWidth: null, @@ -121,6 +123,7 @@ var HTMLDOMPropertyConfig = { name: null, noValidate: HAS_BOOLEAN_VALUE, open: HAS_BOOLEAN_VALUE, + optimum: null, pattern: null, placeholder: null, poster: null, From 7b07d85398edcbd5addfea4ab173cdd89e4b8db0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 30 Mar 2015 15:27:13 -0700 Subject: [PATCH 06/23] Merge pull request #3519 from jonchester/patch-1 Add IE-specific 'unselectable' attribute --- src/browser/ui/dom/HTMLDOMPropertyConfig.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/browser/ui/dom/HTMLDOMPropertyConfig.js b/src/browser/ui/dom/HTMLDOMPropertyConfig.js index 0b5a816881345..b814f3b611936 100644 --- a/src/browser/ui/dom/HTMLDOMPropertyConfig.js +++ b/src/browser/ui/dom/HTMLDOMPropertyConfig.js @@ -179,7 +179,9 @@ var HTMLDOMPropertyConfig = { itemID: MUST_USE_ATTRIBUTE, itemRef: MUST_USE_ATTRIBUTE, // property is supported for OpenGraph in meta tags. - property: null + property: null, + // IE-only attribute that controls focus behavior + unselectable: MUST_USE_ATTRIBUTE }, DOMAttributeNames: { acceptCharset: 'accept-charset', From 9b2176fc23e385a8f7eaa370cd286c6ac7652fc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Wed, 1 Apr 2015 12:38:04 -0700 Subject: [PATCH 07/23] Merge pull request #3563 from quizlet/fix-addons-hasownproperty Fix immutability helper to check hasOwnProperty safely --- src/addons/__tests__/update-test.js | 6 ++++++ src/addons/update.js | 15 +++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/addons/__tests__/update-test.js b/src/addons/__tests__/update-test.js index d36e427ca814c..67ef8efb406c4 100644 --- a/src/addons/__tests__/update-test.js +++ b/src/addons/__tests__/update-test.js @@ -93,4 +93,10 @@ describe('update', function() { '$apply. Did you forget to include {$set: ...}?' ); }); + + it('should perform safe hasOwnProperty check', function() { + expect(update({}, {'hasOwnProperty': {$set: 'a'}})).toEqual({ + 'hasOwnProperty': 'a' + }); + }); }); diff --git a/src/addons/update.js b/src/addons/update.js index 4c5d9e2ac40ed..d249f8196d290 100644 --- a/src/addons/update.js +++ b/src/addons/update.js @@ -9,11 +9,14 @@ * @providesModule update */ + /* global hasOwnProperty:true */ + 'use strict'; var assign = require('Object.assign'); var keyOf = require('keyOf'); var invariant = require('invariant'); +var hasOwnProperty = {}.hasOwnProperty; function shallowCopy(x) { if (Array.isArray(x)) { @@ -73,7 +76,7 @@ function update(value, spec) { COMMAND_SET ); - if (spec.hasOwnProperty(COMMAND_SET)) { + if (hasOwnProperty.call(spec, COMMAND_SET)) { invariant( Object.keys(spec).length === 1, 'Cannot have more than one key in an object with %s', @@ -85,7 +88,7 @@ function update(value, spec) { var nextValue = shallowCopy(value); - if (spec.hasOwnProperty(COMMAND_MERGE)) { + if (hasOwnProperty.call(spec, COMMAND_MERGE)) { var mergeObj = spec[COMMAND_MERGE]; invariant( mergeObj && typeof mergeObj === 'object', @@ -102,21 +105,21 @@ function update(value, spec) { assign(nextValue, spec[COMMAND_MERGE]); } - if (spec.hasOwnProperty(COMMAND_PUSH)) { + if (hasOwnProperty.call(spec, COMMAND_PUSH)) { invariantArrayCase(value, spec, COMMAND_PUSH); spec[COMMAND_PUSH].forEach(function(item) { nextValue.push(item); }); } - if (spec.hasOwnProperty(COMMAND_UNSHIFT)) { + if (hasOwnProperty.call(spec, COMMAND_UNSHIFT)) { invariantArrayCase(value, spec, COMMAND_UNSHIFT); spec[COMMAND_UNSHIFT].forEach(function(item) { nextValue.unshift(item); }); } - if (spec.hasOwnProperty(COMMAND_SPLICE)) { + if (hasOwnProperty.call(spec, COMMAND_SPLICE)) { invariant( Array.isArray(value), 'Expected %s target to be an array; got %s', @@ -142,7 +145,7 @@ function update(value, spec) { }); } - if (spec.hasOwnProperty(COMMAND_APPLY)) { + if (hasOwnProperty.call(spec, COMMAND_APPLY)) { invariant( typeof spec[COMMAND_APPLY] === 'function', 'update(): expected spec of %s to be a function; got %s.', From 717ad76529eaf6985c3976d6126328719db431fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 7 Apr 2015 13:13:31 -0700 Subject: [PATCH 08/23] Merge pull request #3614 from kassens/set_style_null Fix for style not always reset when set to null --- src/browser/ui/ReactDOMComponent.js | 2 ++ .../ui/__tests__/ReactDOMComponent-test.js | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/browser/ui/ReactDOMComponent.js b/src/browser/ui/ReactDOMComponent.js index be2b3c7b48a9a..a29a8c2bf7d6a 100644 --- a/src/browser/ui/ReactDOMComponent.js +++ b/src/browser/ui/ReactDOMComponent.js @@ -373,6 +373,8 @@ ReactDOMComponent.Mixin = { if (propKey === STYLE) { if (nextProp) { nextProp = this._previousStyleCopy = assign({}, nextProp); + } else { + this._previousStyleCopy = null; } if (lastProp) { // Unset styles on `lastProp` but not on `nextProp`. diff --git a/src/browser/ui/__tests__/ReactDOMComponent-test.js b/src/browser/ui/__tests__/ReactDOMComponent-test.js index efcfb3c01a236..dbbf4d02ac8d1 100644 --- a/src/browser/ui/__tests__/ReactDOMComponent-test.js +++ b/src/browser/ui/__tests__/ReactDOMComponent-test.js @@ -109,6 +109,27 @@ describe('ReactDOMComponent', function() { expect(stubStyle.display).toEqual('block'); }); + it("should update styles if updated to null multiple times", function() { + var styles = null; + var container = document.createElement('div'); + React.render(
, container); + + styles = {display: 'block'}; + var stubStyle = container.firstChild.style; + + React.render(
, container); + expect(stubStyle.display).toEqual('block'); + + React.render(
, container); + expect(stubStyle.display).toEqual(''); + + React.render(
, container); + expect(stubStyle.display).toEqual('block'); + + React.render(
, container); + expect(stubStyle.display).toEqual(''); + }); + it("should remove attributes", function() { var container = document.createElement('div'); React.render(, container); From 2c7e818c7c526ac2dd03475bb661ca6d1c0d4db0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Wed, 8 Apr 2015 10:31:24 -0700 Subject: [PATCH 09/23] Merge pull request #3618 from TimeBomb/master Document new es6module flag in react-tools README --- npm-react-tools/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/npm-react-tools/README.md b/npm-react-tools/README.md index 516482783afe3..5ff888239a11c 100644 --- a/npm-react-tools/README.md +++ b/npm-react-tools/README.md @@ -30,6 +30,8 @@ By default JSX files with a `.js` extension are transformed. Use the `-x` option --harmony Turns on JS transformations such as ES6 Classes etc. --source-map-inline Embed inline sourcemap in transformed source --strip-types Strips out type annotations + --es6module Parses the file as a valid ES6 module + --non-strict-es6module Parses the file as an ES6 module, except disables implicit strict-mode (i.e. CommonJS modules et al are allowed) ## API @@ -41,6 +43,8 @@ option | values | default `harmony` | `true`: enable ES6 features | `false` `sourceFilename` | the output filename for the source map | `"source.js"` `stripTypes` | `true`: strips out type annotations | `false` +`es6module` | `true`: parses the file as an ES6 module | `false` +`nonStrictEs6module` | `true`: parses the file as an ES6 module, except disables implicit strict-mode (i.e. CommonJS modules et al are allowed) | `false` ```js var reactTools = require('react-tools'); From 8b4377ed681e6a41d3ddd0e2fb168d29524b5b97 Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Wed, 8 Apr 2015 15:33:56 -0700 Subject: [PATCH 10/23] Merge pull request #3627 from spicyj/mut-warn-clone Refer to cloneElement in mutation warning --- src/classic/element/ReactElementValidator.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/classic/element/ReactElementValidator.js b/src/classic/element/ReactElementValidator.js index 026bf3ce11c5f..afc8004495cad 100644 --- a/src/classic/element/ReactElementValidator.js +++ b/src/classic/element/ReactElementValidator.js @@ -290,9 +290,9 @@ function warnForPropsMutation(propName, element) { warning( false, - 'Don\'t set .props.%s of the React component%s. ' + - 'Instead, specify the correct value when ' + - 'initially creating the element.%s', + 'Don\'t set .props.%s of the React component%s. Instead, specify the ' + + 'correct value when initially creating the element or use ' + + 'React.cloneElement to make a new element with updated props.%s', propName, elementInfo, ownerInfo From 1c03cd6fd97666e7d8e41bd40a7a499c1291521d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Thu, 9 Apr 2015 10:27:06 -0700 Subject: [PATCH 11/23] Merge pull request #3636 from cody/jsx-target Add target option to npm readme --- npm-react-tools/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/npm-react-tools/README.md b/npm-react-tools/README.md index 5ff888239a11c..0cdcb02be1136 100644 --- a/npm-react-tools/README.md +++ b/npm-react-tools/README.md @@ -32,6 +32,7 @@ By default JSX files with a `.js` extension are transformed. Use the `-x` option --strip-types Strips out type annotations --es6module Parses the file as a valid ES6 module --non-strict-es6module Parses the file as an ES6 module, except disables implicit strict-mode (i.e. CommonJS modules et al are allowed) + --target Target version of ECMAScript. Valid values are "es3" and "es5". Use "es3" for legacy browsers like IE8. ## API @@ -45,6 +46,7 @@ option | values | default `stripTypes` | `true`: strips out type annotations | `false` `es6module` | `true`: parses the file as an ES6 module | `false` `nonStrictEs6module` | `true`: parses the file as an ES6 module, except disables implicit strict-mode (i.e. CommonJS modules et al are allowed) | `false` +`target` | `"es3"`: ECMAScript 3
`"es5"`: ECMAScript 5| `"es5"` ```js var reactTools = require('react-tools'); From 742d8567e8ee59f7a4c1c776004c94c53612e41d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 13 Apr 2015 13:18:30 -0700 Subject: [PATCH 12/23] Merge pull request #3662 from zpao/update-uglify Update uglify dependency --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ce10833f6c144..eb82f93311512 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "sauce-tunnel": "~1.1.0", "tmp": "~0.0.18", "typescript": "^1.4.0", - "uglify-js": "~2.4.0", + "uglify-js": "^2.4.20", "uglifyify": "^3.0.1", "wd": "~0.2.6" }, From 3509628c22c3060b63930e40393ff5e95fa0a59f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 13 Apr 2015 15:56:24 -0700 Subject: [PATCH 13/23] re-shrinkwrap --- npm-shrinkwrap.json | 562 ++++++++++++++++++++++++-------------------- 1 file changed, 306 insertions(+), 256 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index f1534e2a767e0..faed6be36f138 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "react-tools", - "version": "0.13.0", + "version": "0.13.2", "dependencies": { "benchmark": { "version": "1.0.0", @@ -8,9 +8,9 @@ "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-1.0.0.tgz" }, "browserify": { - "version": "9.0.3", + "version": "9.0.8", "from": "browserify@>=9.0.3 <10.0.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-9.0.3.tgz", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-9.0.8.tgz", "dependencies": { "JSONStream": { "version": "0.10.0", @@ -23,9 +23,9 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz" }, "through": { - "version": "2.3.6", + "version": "2.3.7", "from": "through@>=2.2.7 <3.0.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.6.tgz" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" } } }, @@ -50,9 +50,9 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz" }, "through": { - "version": "2.3.6", + "version": "2.3.7", "from": "through@>=2.2.7 <3.0.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.6.tgz" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" } } }, @@ -126,9 +126,9 @@ } }, "browser-resolve": { - "version": "1.8.0", + "version": "1.8.2", "from": "browser-resolve@>=1.7.1 <2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.8.0.tgz" + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.8.2.tgz" }, "browserify-zlib": { "version": "0.1.4", @@ -136,16 +136,16 @@ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "dependencies": { "pako": { - "version": "0.2.5", + "version": "0.2.6", "from": "pako@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.5.tgz" + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.6.tgz" } } }, "buffer": { - "version": "3.1.0", + "version": "3.1.2", "from": "buffer@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.1.2.tgz", "dependencies": { "base64-js": { "version": "0.0.8", @@ -175,9 +175,9 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-0.0.1.tgz" }, "concat-stream": { - "version": "1.4.7", + "version": "1.4.8", "from": "concat-stream@>=1.4.1 <1.5.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.7.tgz", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.8.tgz", "dependencies": { "typedarray": { "version": "0.0.6", @@ -306,9 +306,9 @@ } }, "create-hash": { - "version": "1.1.0", + "version": "1.1.1", "from": "create-hash@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.1.tgz", "dependencies": { "ripemd160": { "version": "1.0.0", @@ -316,9 +316,9 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.0.tgz" }, "sha.js": { - "version": "2.3.6", + "version": "2.4.0", "from": "sha.js@>=2.3.6 <3.0.0", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.3.6.tgz" + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.0.tgz" } } }, @@ -425,9 +425,9 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz" }, "through": { - "version": "2.3.6", + "version": "2.3.7", "from": "through@>=2.2.7 <3.0.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.6.tgz" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" } } }, @@ -473,9 +473,9 @@ "resolved": "https://registry.npmjs.org/events/-/events-1.0.2.tgz" }, "glob": { - "version": "4.5.1", - "from": "glob@>=4.3.5 <5.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.1.tgz", + "version": "4.5.3", + "from": "glob@>=4.0.5 <5.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", "dependencies": { "inflight": { "version": "1.0.4", @@ -490,9 +490,9 @@ } }, "minimatch": { - "version": "2.0.3", + "version": "2.0.4", "from": "minimatch@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz", "dependencies": { "brace-expansion": { "version": "1.1.0", @@ -551,7 +551,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "inherits@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "insert-module-globals": { @@ -639,9 +639,9 @@ "resolved": "https://registry.npmjs.org/process/-/process-0.6.0.tgz" }, "through": { - "version": "2.3.6", + "version": "2.3.7", "from": "through@>=2.3.4 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.6.tgz" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" } } }, @@ -675,9 +675,9 @@ } }, "module-deps": { - "version": "3.7.2", + "version": "3.7.6", "from": "module-deps@>=3.7.0 <4.0.0", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-3.7.2.tgz", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-3.7.6.tgz", "dependencies": { "JSONStream": { "version": "0.7.4", @@ -690,9 +690,9 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz" }, "through": { - "version": "2.3.6", + "version": "2.3.7", "from": "through@>=2.2.7 <3.0.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.6.tgz" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" } } }, @@ -902,9 +902,21 @@ "from": "querystring-es3@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" }, + "read-only-stream": { + "version": "1.1.1", + "from": "read-only-stream@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-1.1.1.tgz", + "dependencies": { + "readable-wrap": { + "version": "1.0.0", + "from": "readable-wrap@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/readable-wrap/-/readable-wrap-1.0.0.tgz" + } + } + }, "readable-stream": { "version": "1.1.13", - "from": "readable-stream@>=1.1.9 <1.2.0", + "from": "readable-stream@>=1.1.13 <2.0.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "dependencies": { "core-util-is": { @@ -915,9 +927,9 @@ } }, "resolve": { - "version": "1.1.5", + "version": "1.1.6", "from": "resolve@>=1.1.4 <2.0.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.5.tgz" + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz" }, "shallow-copy": { "version": "0.0.1", @@ -969,9 +981,9 @@ "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", "dependencies": { "minimist": { - "version": "1.1.0", + "version": "1.1.1", "from": "minimist@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.0.tgz" + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.1.tgz" } } }, @@ -1016,7 +1028,7 @@ "dependencies": { "punycode": { "version": "1.3.2", - "from": "punycode@1.3.2", + "from": "punycode@>=0.2.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" }, "querystring": { @@ -1071,9 +1083,9 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz" }, "through": { - "version": "2.3.6", + "version": "2.3.7", "from": "through@>=2.2.7 <3.0.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.6.tgz" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" } } }, @@ -1213,9 +1225,9 @@ } }, "concat-stream": { - "version": "1.4.7", + "version": "1.4.8", "from": "concat-stream@>=1.4.6 <2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.7.tgz", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.8.tgz", "dependencies": { "inherits": { "version": "2.0.1", @@ -1330,9 +1342,9 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz" }, "graceful-fs": { - "version": "3.0.5", + "version": "3.0.6", "from": "graceful-fs@>=3.0.4 <3.1.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz" + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.6.tgz" }, "glob": { "version": "4.2.2", @@ -1353,7 +1365,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.0 <3.0.0", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "minimatch": { @@ -1362,9 +1374,9 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", "dependencies": { "lru-cache": { - "version": "2.5.0", + "version": "2.5.2", "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.2.tgz" }, "sigmund": { "version": "1.0.0", @@ -1375,7 +1387,7 @@ }, "once": { "version": "1.3.1", - "from": "once@>=1.3.0 <1.4.0", + "from": "once@>=1.3.0 <2.0.0", "resolved": "https://registry.npmjs.org/once/-/once-1.3.1.tgz", "dependencies": { "wrappy": { @@ -1456,9 +1468,9 @@ } }, "through": { - "version": "2.3.6", + "version": "2.3.7", "from": "through@>=2.3.4 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.6.tgz" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" } } }, @@ -1473,9 +1485,9 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-0.12.0.tgz" }, "concat-stream": { - "version": "1.4.7", + "version": "1.4.8", "from": "concat-stream@>=1.4.6 <2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.7.tgz", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.8.tgz", "dependencies": { "inherits": { "version": "2.0.1", @@ -1489,7 +1501,7 @@ }, "readable-stream": { "version": "1.1.13", - "from": "readable-stream@>=1.1.9 <1.2.0", + "from": "readable-stream@>=1.1.13-1 <1.2.0-0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "dependencies": { "core-util-is": { @@ -1568,9 +1580,9 @@ } }, "es6-weak-map": { - "version": "0.1.2", + "version": "0.1.4", "from": "es6-weak-map@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", "dependencies": { "d": { "version": "0.1.1", @@ -1579,32 +1591,18 @@ }, "es5-ext": { "version": "0.10.6", - "from": "es5-ext@>=0.10.4 <0.11.0", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz", - "dependencies": { - "es6-symbol": { - "version": "2.0.1", - "from": "es6-symbol@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" - } - } + "from": "es5-ext@>=0.10.6 <0.11.0", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz" }, "es6-iterator": { "version": "0.1.3", - "from": "es6-iterator@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", - "dependencies": { - "es6-symbol": { - "version": "2.0.1", - "from": "es6-symbol@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" - } - } + "from": "es6-iterator@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz" }, "es6-symbol": { - "version": "0.1.1", - "from": "es6-symbol@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-0.1.1.tgz" + "version": "2.0.1", + "from": "es6-symbol@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" } } }, @@ -1626,9 +1624,9 @@ } }, "through2": { - "version": "0.6.3", + "version": "0.6.5", "from": "through2@>=0.6.3 <0.7.0", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.3.tgz", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "dependencies": { "readable-stream": { "version": "1.0.33", @@ -1665,9 +1663,9 @@ } }, "yargs": { - "version": "3.5.3", + "version": "3.7.1", "from": "yargs@>=3.4.5 <4.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.3.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.7.1.tgz", "dependencies": { "camelcase": { "version": "1.0.2", @@ -1694,14 +1692,14 @@ } }, "envify": { - "version": "3.3.0", + "version": "3.4.0", "from": "envify@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/envify/-/envify-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "dependencies": { "through": { - "version": "2.3.6", + "version": "2.3.7", "from": "through@>=2.3.4 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.6.tgz" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" } } }, @@ -1740,16 +1738,16 @@ } }, "through": { - "version": "2.3.6", + "version": "2.3.7", "from": "through@>=2.3.4 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.6.tgz" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" } } }, "es5-shim": { - "version": "4.1.0", + "version": "4.1.1", "from": "es5-shim@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.0.tgz" + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.1.tgz" }, "eslint": { "version": "0.14.1", @@ -1798,9 +1796,9 @@ } }, "concat-stream": { - "version": "1.4.7", + "version": "1.4.8", "from": "concat-stream@>=1.4.6 <2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.7.tgz", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.8.tgz", "dependencies": { "inherits": { "version": "2.0.1", @@ -1837,9 +1835,9 @@ } }, "debug": { - "version": "2.1.2", + "version": "2.1.3", "from": "debug@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz", "dependencies": { "ms": { "version": "0.7.0", @@ -1927,9 +1925,9 @@ } }, "es6-weak-map": { - "version": "0.1.2", + "version": "0.1.4", "from": "es6-weak-map@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", "dependencies": { "d": { "version": "0.1.1", @@ -1938,32 +1936,18 @@ }, "es5-ext": { "version": "0.10.6", - "from": "es5-ext@>=0.10.4 <0.11.0", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz", - "dependencies": { - "es6-symbol": { - "version": "2.0.1", - "from": "es6-symbol@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" - } - } + "from": "es5-ext@>=0.10.6 <0.11.0", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz" }, "es6-iterator": { "version": "0.1.3", - "from": "es6-iterator@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", - "dependencies": { - "es6-symbol": { - "version": "2.0.1", - "from": "es6-symbol@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" - } - } + "from": "es6-iterator@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz" }, "es6-symbol": { - "version": "0.1.1", - "from": "es6-symbol@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-0.1.1.tgz" + "version": "2.0.1", + "from": "es6-symbol@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" } } }, @@ -1980,9 +1964,9 @@ } }, "espree": { - "version": "1.11.0", + "version": "1.12.3", "from": "espree@>=1.8.1 <2.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-1.11.0.tgz" + "resolved": "https://registry.npmjs.org/espree/-/espree-1.12.3.tgz" }, "estraverse": { "version": "1.9.3", @@ -1995,9 +1979,9 @@ "resolved": "https://registry.npmjs.org/estraverse-fb/-/estraverse-fb-1.3.1.tgz" }, "globals": { - "version": "6.2.0", + "version": "6.4.1", "from": "globals@>=6.1.0 <7.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-6.2.0.tgz" + "resolved": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz" }, "js-yaml": { "version": "3.2.7", @@ -2005,14 +1989,14 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.2.7.tgz", "dependencies": { "argparse": { - "version": "1.0.1", + "version": "1.0.2", "from": "argparse@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.2.tgz", "dependencies": { "lodash": { - "version": "3.2.0", - "from": "lodash@>=3.2.0 <3.3.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.2.0.tgz" + "version": "3.6.0", + "from": "lodash@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.6.0.tgz" }, "sprintf-js": { "version": "1.0.2", @@ -2029,9 +2013,9 @@ } }, "minimatch": { - "version": "2.0.3", + "version": "2.0.4", "from": "minimatch@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz", "dependencies": { "brace-expansion": { "version": "1.1.0", @@ -2184,9 +2168,9 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", "dependencies": { "lru-cache": { - "version": "2.5.0", + "version": "2.5.2", "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.2.tgz" }, "sigmund": { "version": "1.0.0", @@ -2237,9 +2221,9 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", "dependencies": { "lru-cache": { - "version": "2.5.0", + "version": "2.5.2", "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.2.tgz" }, "sigmund": { "version": "1.0.0", @@ -2372,7 +2356,7 @@ "dependencies": { "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.0 <3.0.0", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "minimatch": { @@ -2381,9 +2365,9 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", "dependencies": { "lru-cache": { - "version": "2.5.0", + "version": "2.5.2", "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.2.tgz" }, "sigmund": { "version": "1.0.0", @@ -2468,9 +2452,9 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "minimatch": { - "version": "2.0.3", + "version": "2.0.4", "from": "minimatch@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz", "dependencies": { "brace-expansion": { "version": "1.1.0", @@ -2537,15 +2521,15 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.0 <3.0.0", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "tar-stream": { - "version": "1.1.2", + "version": "1.1.3", "from": "tar-stream@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.1.3.tgz", "dependencies": { "bl": { "version": "0.9.4", @@ -2584,14 +2568,14 @@ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-0.5.1.tgz", "dependencies": { "compress-commons": { - "version": "0.2.7", + "version": "0.2.8", "from": "compress-commons@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-0.2.7.tgz", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-0.2.8.tgz", "dependencies": { "crc32-stream": { - "version": "0.3.2", + "version": "0.3.3", "from": "crc32-stream@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-0.3.2.tgz" + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-0.3.3.tgz" }, "node-int64": { "version": "0.3.3", @@ -2807,64 +2791,6 @@ } } }, - "grunt-contrib-copy": { - "version": "0.8.0", - "from": "grunt-contrib-copy@>=0.8.0 <0.9.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-0.8.0.tgz", - "dependencies": { - "chalk": { - "version": "0.5.1", - "from": "chalk@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", - "dependencies": { - "ansi-styles": { - "version": "1.1.0", - "from": "ansi-styles@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz" - }, - "escape-string-regexp": { - "version": "1.0.3", - "from": "escape-string-regexp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" - }, - "has-ansi": { - "version": "0.1.0", - "from": "has-ansi@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "0.2.1", - "from": "ansi-regex@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz" - } - } - }, - "strip-ansi": { - "version": "0.3.0", - "from": "strip-ansi@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "0.2.1", - "from": "ansi-regex@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz" - } - } - }, - "supports-color": { - "version": "0.2.0", - "from": "supports-color@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz" - } - } - }, - "file-sync-cmp": { - "version": "0.1.1", - "from": "file-sync-cmp@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz" - } - } - }, "grunt-contrib-jshint": { "version": "0.10.0", "from": "grunt-contrib-jshint@>=0.10.0 <0.11.0", @@ -2876,9 +2802,9 @@ "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.5.11.tgz", "dependencies": { "cli": { - "version": "0.6.5", + "version": "0.6.6", "from": "cli@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/cli/-/cli-0.6.5.tgz", + "resolved": "https://registry.npmjs.org/cli/-/cli-0.6.6.tgz", "dependencies": { "glob": { "version": "3.2.11", @@ -2896,9 +2822,9 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", "dependencies": { "lru-cache": { - "version": "2.5.0", + "version": "2.5.2", "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.2.tgz" }, "sigmund": { "version": "1.0.0", @@ -3007,9 +2933,9 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", "dependencies": { "lru-cache": { - "version": "2.5.0", + "version": "2.5.2", "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.2.tgz" }, "sigmund": { "version": "1.0.0", @@ -3219,9 +3145,9 @@ "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.3.4.tgz" }, "request": { - "version": "2.53.0", + "version": "2.55.0", "from": "request@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.53.0.tgz", + "resolved": "https://registry.npmjs.org/request/-/request-2.55.0.tgz", "dependencies": { "bl": { "version": "0.9.4", @@ -3263,9 +3189,9 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.9.0.tgz" }, "forever-agent": { - "version": "0.5.2", - "from": "forever-agent@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" + "version": "0.6.1", + "from": "forever-agent@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, "form-data": { "version": "0.2.0", @@ -3285,14 +3211,14 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz" }, "mime-types": { - "version": "2.0.9", + "version": "2.0.10", "from": "mime-types@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.9.tgz", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.10.tgz", "dependencies": { "mime-db": { - "version": "1.7.0", - "from": "mime-db@>=1.7.0 <1.8.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.7.0.tgz" + "version": "1.8.0", + "from": "mime-db@>=1.8.0 <1.9.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.8.0.tgz" } } }, @@ -3302,9 +3228,9 @@ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" }, "qs": { - "version": "2.3.3", - "from": "qs@>=2.3.1 <2.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz" + "version": "2.4.1", + "from": "qs@>=2.4.0 <2.5.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-2.4.1.tgz" }, "tunnel-agent": { "version": "0.4.0", @@ -3356,14 +3282,14 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz", "dependencies": { "hoek": { - "version": "2.11.1", + "version": "2.12.0", "from": "hoek@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.11.1.tgz" + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.12.0.tgz" }, "boom": { - "version": "2.6.1", + "version": "2.7.0", "from": "boom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.6.1.tgz" + "resolved": "https://registry.npmjs.org/boom/-/boom-2.7.0.tgz" }, "cryptiles": { "version": "2.0.4", @@ -3389,7 +3315,7 @@ }, "combined-stream": { "version": "0.0.7", - "from": "combined-stream@>=0.0.4 <0.1.0", + "from": "combined-stream@>=0.0.5 <0.1.0", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", "dependencies": { "delayed-stream": { @@ -3403,6 +3329,115 @@ "version": "0.1.2", "from": "isstream@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "har-validator": { + "version": "1.6.1", + "from": "har-validator@>=1.4.0 <2.0.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.6.1.tgz", + "dependencies": { + "bluebird": { + "version": "2.9.24", + "from": "bluebird@>=2.9.21 <3.0.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.9.24.tgz" + }, + "chalk": { + "version": "1.0.0", + "from": "chalk@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz", + "dependencies": { + "ansi-styles": { + "version": "2.0.1", + "from": "ansi-styles@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.0.1.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "has-ansi": { + "version": "1.0.3", + "from": "has-ansi@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz", + "dependencies": { + "ansi-regex": { + "version": "1.1.1", + "from": "ansi-regex@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz" + }, + "get-stdin": { + "version": "4.0.1", + "from": "get-stdin@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" + } + } + }, + "strip-ansi": { + "version": "2.0.1", + "from": "strip-ansi@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz", + "dependencies": { + "ansi-regex": { + "version": "1.1.1", + "from": "ansi-regex@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz" + } + } + }, + "supports-color": { + "version": "1.3.1", + "from": "supports-color@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz" + } + } + }, + "commander": { + "version": "2.7.1", + "from": "commander@>=2.7.1 <3.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.7.1.tgz", + "dependencies": { + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>=1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + } + } + }, + "is-my-json-valid": { + "version": "2.10.1", + "from": "is-my-json-valid@>=2.10.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.10.1.tgz", + "dependencies": { + "generate-function": { + "version": "2.0.0", + "from": "generate-function@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.1.1", + "from": "generate-object-property@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.1.1.tgz", + "dependencies": { + "is-property": { + "version": "1.0.2", + "from": "is-property@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + } + } + }, + "jsonpointer": { + "version": "1.1.0", + "from": "jsonpointer@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-1.1.0.tgz" + }, + "xtend": { + "version": "4.0.0", + "from": "xtend@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" + } + } + } + } } } }, @@ -3441,9 +3476,9 @@ } }, "node-find-files": { - "version": "0.0.2", + "version": "0.0.4", "from": "node-find-files@>=0.0.2 <0.1.0", - "resolved": "https://registry.npmjs.org/node-find-files/-/node-find-files-0.0.2.tgz", + "resolved": "https://registry.npmjs.org/node-find-files/-/node-find-files-0.0.4.tgz", "dependencies": { "async": { "version": "0.2.6", @@ -3480,9 +3515,9 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz" }, "through": { - "version": "2.3.6", + "version": "2.3.7", "from": "through@>=2.3.4 <3.0.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.6.tgz" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" }, "underscore": { "version": "1.2.4", @@ -3548,9 +3583,9 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.16.5.tgz", "dependencies": { "graceful-fs": { - "version": "3.0.5", + "version": "3.0.6", "from": "graceful-fs@>=3.0.5 <4.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz" + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.6.tgz" }, "jsonfile": { "version": "2.0.0", @@ -3563,9 +3598,9 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.3.2.tgz", "dependencies": { "glob": { - "version": "4.5.1", + "version": "4.5.3", "from": "glob@>=4.4.2 <5.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.1.tgz", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", "dependencies": { "inflight": { "version": "1.0.4", @@ -3585,9 +3620,9 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "minimatch": { - "version": "2.0.3", + "version": "2.0.4", "from": "minimatch@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz", "dependencies": { "brace-expansion": { "version": "1.1.0", @@ -3700,9 +3735,9 @@ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.0.tgz" }, "semver": { - "version": "4.3.1", + "version": "4.3.3", "from": "semver@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0||>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.1.tgz" + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.3.tgz" }, "uid-number": { "version": "0.0.5", @@ -3970,7 +4005,7 @@ }, "async": { "version": "0.9.0", - "from": "async@>=0.1.18", + "from": "async@>=0.9.0 <0.10.0", "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz" }, "magic-templates": { @@ -4004,9 +4039,9 @@ "resolved": "https://registry.npmjs.org/logmagic/-/logmagic-0.1.4.tgz" }, "underscore": { - "version": "1.8.2", + "version": "1.8.3", "from": "underscore@>=1.4.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz" + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz" } } } @@ -4208,9 +4243,9 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-1.4.1.tgz" }, "uglify-js": { - "version": "2.4.16", - "from": "uglify-js@>=2.4.0 <2.5.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.16.tgz", + "version": "2.4.20", + "from": "uglify-js@>=2.4.20 <3.0.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.20.tgz", "dependencies": { "async": { "version": "0.2.10", @@ -4229,14 +4264,29 @@ } } }, - "optimist": { - "version": "0.3.7", - "from": "optimist@>=0.3.5 <0.4.0", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "yargs": { + "version": "3.5.4", + "from": "yargs@>=3.5.4 <3.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", "dependencies": { + "camelcase": { + "version": "1.0.2", + "from": "camelcase@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.0.2.tgz" + }, + "decamelize": { + "version": "1.0.0", + "from": "decamelize@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.0.0.tgz" + }, + "window-size": { + "version": "0.1.0", + "from": "window-size@0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" + }, "wordwrap": { "version": "0.0.2", - "from": "wordwrap@>=0.0.2 <0.1.0", + "from": "wordwrap@0.0.2", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" } } @@ -4269,9 +4319,9 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", "dependencies": { "lru-cache": { - "version": "2.5.0", + "version": "2.5.2", "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.2.tgz" }, "sigmund": { "version": "1.0.0", @@ -4281,9 +4331,9 @@ } }, "through": { - "version": "2.3.6", + "version": "2.3.7", "from": "through@>=2.3.4 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.6.tgz" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" } } }, @@ -4448,9 +4498,9 @@ } }, "glob": { - "version": "4.5.1", + "version": "4.5.3", "from": "glob@>=4.3.5 <5.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.1.tgz", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", "dependencies": { "inflight": { "version": "1.0.4", @@ -4494,9 +4544,9 @@ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-2.0.3.tgz" }, "minimatch": { - "version": "2.0.3", + "version": "2.0.4", "from": "minimatch@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz", "dependencies": { "brace-expansion": { "version": "1.1.0", From 2e3ac9b68341c544063572cea1326e7f322442f3 Mon Sep 17 00:00:00 2001 From: Jim Date: Thu, 9 Apr 2015 12:35:57 -0700 Subject: [PATCH 14/23] Merge pull request #3638 from devicehubnet/master check if type.prototype is object in instantiateReactComponent --- src/core/instantiateReactComponent.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/core/instantiateReactComponent.js b/src/core/instantiateReactComponent.js index 69732ce2bb98e..1348dbaf905f3 100644 --- a/src/core/instantiateReactComponent.js +++ b/src/core/instantiateReactComponent.js @@ -40,6 +40,7 @@ assign( function isInternalComponentType(type) { return ( typeof type === 'function' && + typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function' ); From 16cb74816167bcc76060294932f936bd4da7a2ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 14 Apr 2015 14:42:52 -0700 Subject: [PATCH 15/23] Update test for backporting #3507 --- src/browser/ui/dom/__tests__/DOMPropertyOperations-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/browser/ui/dom/__tests__/DOMPropertyOperations-test.js b/src/browser/ui/dom/__tests__/DOMPropertyOperations-test.js index 3fc81fa4f9a92..9db95f2e1e2d4 100644 --- a/src/browser/ui/dom/__tests__/DOMPropertyOperations-test.js +++ b/src/browser/ui/dom/__tests__/DOMPropertyOperations-test.js @@ -93,7 +93,7 @@ describe('DOMPropertyOperations', function() { expect(DOMPropertyOperations.createMarkupForProperty( 'scoped', true - )).toBe('scoped=""'); + )).toBe('scoped'); }); it('should create markup for booleanish properties', function() { From db6dcd695f7c96849bab189f007f5f6603c7e6d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 14 Apr 2015 16:31:13 -0700 Subject: [PATCH 16/23] Merge pull request #3485 from jnu/ie10-flex-unitless Treat flexPositive, flexNegative as unitless styles --- docs/tips/06-style-props-value-px.md | 4 ++++ src/browser/ui/dom/CSSProperty.js | 2 ++ 2 files changed, 6 insertions(+) diff --git a/docs/tips/06-style-props-value-px.md b/docs/tips/06-style-props-value-px.md index aeb2cb3e3f92a..3f308cbc69d43 100644 --- a/docs/tips/06-style-props-value-px.md +++ b/docs/tips/06-style-props-value-px.md @@ -18,11 +18,15 @@ See [Inline Styles](/react/tips/inline-styles.html) for more info. Sometimes you _do_ want to keep the CSS properties unitless. Here's a list of properties that won't get the automatic "px" suffix: +- `boxFlex` +- `boxFlexGroup` - `columnCount` - `fillOpacity` - `flex` - `flexGrow` +- `flexPositive` - `flexShrink` +- `flexNegative` - `fontWeight` - `lineClamp` - `lineHeight` diff --git a/src/browser/ui/dom/CSSProperty.js b/src/browser/ui/dom/CSSProperty.js index 93b5468438b0f..3dc5a40e8a5b7 100644 --- a/src/browser/ui/dom/CSSProperty.js +++ b/src/browser/ui/dom/CSSProperty.js @@ -20,7 +20,9 @@ var isUnitlessNumber = { columnCount: true, flex: true, flexGrow: true, + flexPositive: true, flexShrink: true, + flexNegative: true, fontWeight: true, lineClamp: true, lineHeight: true, From 4cecb729653f360a8d1cfadc251f32b9227b59f5 Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Wed, 15 Apr 2015 17:40:47 -0700 Subject: [PATCH 17/23] Merge pull request #3675 from spicyj/gh-3655 Add warning for getDefaultProps on ES6 classes --- src/core/ReactCompositeComponent.js | 8 ++++++++ .../__tests__/ReactCoffeeScriptClass-test.coffee | 13 +++++++++++-- src/modern/class/__tests__/ReactES6Class-test.js | 13 +++++++++++-- .../class/__tests__/ReactTypeScriptClass-test.ts | 15 +++++++++++++-- 4 files changed, 43 insertions(+), 6 deletions(-) diff --git a/src/core/ReactCompositeComponent.js b/src/core/ReactCompositeComponent.js index 15afc9952314d..e6da1de640c05 100644 --- a/src/core/ReactCompositeComponent.js +++ b/src/core/ReactCompositeComponent.js @@ -174,6 +174,14 @@ var ReactCompositeComponentMixin = { 'Did you mean to define a state property instead?', this.getName() || 'a component' ); + warning( + !inst.getDefaultProps || + inst.getDefaultProps.isReactClassApproved, + 'getDefaultProps was defined on %s, a plain JavaScript class. ' + + 'This is only supported for classes created using React.createClass. ' + + 'Use a static property to define defaultProps instead.', + this.getName() || 'a component' + ); warning( !inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + diff --git a/src/modern/class/__tests__/ReactCoffeeScriptClass-test.coffee b/src/modern/class/__tests__/ReactCoffeeScriptClass-test.coffee index 268e4368fe0f3..e01a081d029cf 100644 --- a/src/modern/class/__tests__/ReactCoffeeScriptClass-test.coffee +++ b/src/modern/class/__tests__/ReactCoffeeScriptClass-test.coffee @@ -266,6 +266,7 @@ describe 'ReactCoffeeScriptClass', -> but does not invoke them.', -> spyOn console, 'warn' getInitialStateWasCalled = false + getDefaultPropsWasCalled = false class Foo extends React.Component constructor: -> @contextTypes = {} @@ -275,20 +276,28 @@ describe 'ReactCoffeeScriptClass', -> getInitialStateWasCalled = true {} + getDefaultProps: -> + getDefaultPropsWasCalled = true + {} + render: -> span className: 'foo' test React.createElement(Foo), 'SPAN', 'foo' expect(getInitialStateWasCalled).toBe false - expect(console.warn.calls.length).toBe 3 + expect(getDefaultPropsWasCalled).toBe false + expect(console.warn.calls.length).toBe 4 expect(console.warn.calls[0].args[0]).toContain( 'getInitialState was defined on Foo, a plain JavaScript class.' ) expect(console.warn.calls[1].args[0]).toContain( - 'propTypes was defined as an instance property on Foo.' + 'getDefaultProps was defined on Foo, a plain JavaScript class.' ) expect(console.warn.calls[2].args[0]).toContain( + 'propTypes was defined as an instance property on Foo.' + ) + expect(console.warn.calls[3].args[0]).toContain( 'contextTypes was defined as an instance property on Foo.' ) diff --git a/src/modern/class/__tests__/ReactES6Class-test.js b/src/modern/class/__tests__/ReactES6Class-test.js index d4e7bc6343627..69d5a6e1196d4 100644 --- a/src/modern/class/__tests__/ReactES6Class-test.js +++ b/src/modern/class/__tests__/ReactES6Class-test.js @@ -297,6 +297,7 @@ describe('ReactES6Class', function() { it('warns when classic properties are defined on the instance, ' + 'but does not invoke them.', function() { spyOn(console, 'warn'); + var getDefaultPropsWasCalled = false; var getInitialStateWasCalled = false; class Foo extends React.Component { constructor() { @@ -307,20 +308,28 @@ describe('ReactES6Class', function() { getInitialStateWasCalled = true; return {}; } + getDefaultProps() { + getDefaultPropsWasCalled = true; + return {}; + } render() { return ; } } test(, 'SPAN', 'foo'); expect(getInitialStateWasCalled).toBe(false); - expect(console.warn.calls.length).toBe(3); + expect(getDefaultPropsWasCalled).toBe(false); + expect(console.warn.calls.length).toBe(4); expect(console.warn.calls[0].args[0]).toContain( 'getInitialState was defined on Foo, a plain JavaScript class.' ); expect(console.warn.calls[1].args[0]).toContain( - 'propTypes was defined as an instance property on Foo.' + 'getDefaultProps was defined on Foo, a plain JavaScript class.' ); expect(console.warn.calls[2].args[0]).toContain( + 'propTypes was defined as an instance property on Foo.' + ); + expect(console.warn.calls[3].args[0]).toContain( 'contextTypes was defined as an instance property on Foo.' ); }); diff --git a/src/modern/class/__tests__/ReactTypeScriptClass-test.ts b/src/modern/class/__tests__/ReactTypeScriptClass-test.ts index b0e45629458b9..4c60545efdd4f 100644 --- a/src/modern/class/__tests__/ReactTypeScriptClass-test.ts +++ b/src/modern/class/__tests__/ReactTypeScriptClass-test.ts @@ -235,9 +235,14 @@ class NormalLifeCycles { // warns when classic properties are defined on the instance, // but does not invoke them. var getInitialStateWasCalled = false; +var getDefaultPropsWasCalled = false; class ClassicProperties extends React.Component { contextTypes = {}; propTypes = {}; + getDefaultProps() { + getDefaultPropsWasCalled = true; + return {}; + } getInitialState() { getInitialStateWasCalled = true; return {}; @@ -410,17 +415,23 @@ describe('ReactTypeScriptClass', function() { var warn = jest.genMockFn(); console.warn = warn; getInitialStateWasCalled = false; + getDefaultPropsWasCalled = false; test(React.createElement(ClassicProperties), 'SPAN', 'foo'); expect(getInitialStateWasCalled).toBe(false); - expect(warn.mock.calls.length).toBe(3); + expect(getDefaultPropsWasCalled).toBe(false); + expect(warn.mock.calls.length).toBe(4); expect(warn.mock.calls[0][0]).toContain( 'getInitialState was defined on ClassicProperties, ' + 'a plain JavaScript class.' ); expect(warn.mock.calls[1][0]).toContain( - 'propTypes was defined as an instance property on ClassicProperties.' + 'getDefaultProps was defined on ClassicProperties, ' + + 'a plain JavaScript class.' ); expect(warn.mock.calls[2][0]).toContain( + 'propTypes was defined as an instance property on ClassicProperties.' + ); + expect(warn.mock.calls[3][0]).toContain( 'contextTypes was defined as an instance property on ClassicProperties.' ); }); From 4f1c61f915d4a2818eff2789b9afe67b8f127b15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 17 Apr 2015 10:08:27 -0700 Subject: [PATCH 18/23] Changelog for 0.13.2 --- CHANGELOG.md | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e279886cd9cdb..3ce7715f9d58d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,33 @@ +## 0.13.2 (April 18, 2015) + +### React Core + +#### New Features + +* Added `strokeDashoffset`, `flexPositive`, `flexNegative` to the list of unitless CSS properties +* Added support for more DOM properties: + * `scoped` - for `