Merge pull request #2303 from sebmarkbage/dropmerge

Use Object.assign instead of merge, mergeInto, mixInto and copyPropertie...
This commit is contained in:
Sebastian Markbåge committed 2014-10-08 12:10:08 -07:00
commit 85597bf3aa
34 files changed
+103 -158

No files matched your search

@@ -28,8 +28,6 @@ var ReactCSSTransitionGroupChild = React.createFactory(
require('ReactCSSTransitionGroupChild')
);
var merge = require('merge');
var ReactCSSTransitionGroup = React.createClass({
displayName: 'ReactCSSTransitionGroup',
@@ -63,7 +61,7 @@ var ReactCSSTransitionGroup = React.createClass({
render: function() {
return (
ReactTransitionGroup(
merge(this.props, {childFactory: this._wrapChild})
Object.assign({}, this.props, {childFactory: this._wrapChild})
)
);
}
@@ -23,7 +23,6 @@ var ReactTransitionChildMapping = require('ReactTransitionChildMapping');
var cloneWithProps = require('cloneWithProps');
var emptyFunction = require('emptyFunction');
var merge = require('merge');
var ReactTransitionGroup = React.createClass({
displayName: 'ReactTransitionGroup',
@@ -159,7 +158,7 @@ var ReactTransitionGroup = React.createClass({
// This entered again before it fully left. Add it again.
this.performEnter(key);
} else {
var newChildren = merge(this.state.children);
var newChildren = Object.assign({}, this.state.children);
delete newChildren[key];
this.setState({children: newChildren});
}
+2 -3
View File
@@ -18,7 +18,6 @@
"use strict";
var copyProperties = require('copyProperties');
var keyOf = require('keyOf');
var invariant = require('invariant');
@@ -26,7 +25,7 @@ function shallowCopy(x) {
if (Array.isArray(x)) {
return x.concat();
} else if (x && typeof x === 'object') {
return copyProperties(new x.constructor(), x);
return Object.assign(new x.constructor(), x);
} else {
return x;
}
@@ -106,7 +105,7 @@ function update(value, spec) {
COMMAND_MERGE,
nextValue
);
copyProperties(nextValue, spec[COMMAND_MERGE]);
Object.assign(nextValue, spec[COMMAND_MERGE]);
}
if (spec.hasOwnProperty(COMMAND_PUSH)) {
+1 -2
View File
@@ -26,7 +26,6 @@ var ReactEventEmitterMixin = require('ReactEventEmitterMixin');
var ViewportMetrics = require('ViewportMetrics');
var isEventSupported = require('isEventSupported');
var merge = require('merge');
/**
* Summary of `ReactBrowserEventEmitter` event handling:
@@ -155,7 +154,7 @@ function getListeningForDocument(mountAt) {
*
* @internal
*/
var ReactBrowserEventEmitter = merge(ReactEventEmitterMixin, {
var ReactBrowserEventEmitter = Object.assign({}, ReactEventEmitterMixin, {
/**
* Injectable event backend
+1 -3
View File
@@ -21,13 +21,11 @@
var PooledClass = require('PooledClass');
var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter');
var mixInto = require('mixInto');
function ReactPutListenerQueue() {
this.listenersToPut = [];
}
mixInto(ReactPutListenerQueue, {
Object.assign(ReactPutListenerQueue.prototype, {
enqueuePutListener: function(rootNodeID, propKey, propValue) {
this.listenersToPut.push({
rootNodeID: rootNodeID,
+1 -4
View File
@@ -26,8 +26,6 @@ var ReactInputSelection = require('ReactInputSelection');
var ReactPutListenerQueue = require('ReactPutListenerQueue');
var Transaction = require('Transaction');
var mixInto = require('mixInto');
/**
* Ensures that, when possible, the selection range (currently selected text
* input) is not disturbed by performing the transaction.
@@ -174,8 +172,7 @@ var Mixin = {
};
mixInto(ReactReconcileTransaction, Transaction.Mixin);
mixInto(ReactReconcileTransaction, Mixin);
Object.assign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);
PooledClass.addPoolingTo(ReactReconcileTransaction);
+1 -3
View File
@@ -25,7 +25,6 @@ var ReactComponent = require('ReactComponent');
var ReactElement = require('ReactElement');
var escapeTextForBrowser = require('escapeTextForBrowser');
var mixInto = require('mixInto');
/**
* Text nodes violate a couple assumptions that React makes about components:
@@ -46,8 +45,7 @@ var ReactTextComponent = function(props) {
// This constructor and it's argument is currently used by mocks.
};
mixInto(ReactTextComponent, ReactComponent.Mixin);
mixInto(ReactTextComponent, {
Object.assign(ReactTextComponent.prototype, ReactComponent.Mixin, {
/**
* Creates the markup for this text node. This node is not intended to have
@@ -25,7 +25,6 @@ var ReactPutListenerQueue = require('ReactPutListenerQueue');
var Transaction = require('Transaction');
var emptyFunction = require('emptyFunction');
var mixInto = require('mixInto');
/**
* Provides a `CallbackQueue` queue for collecting `onDOMReady` callbacks
@@ -107,8 +106,11 @@ var Mixin = {
};
mixInto(ReactServerRenderingTransaction, Transaction.Mixin);
mixInto(ReactServerRenderingTransaction, Mixin);
Object.assign(
ReactServerRenderingTransaction.prototype,
Transaction.Mixin,
Mixin
);
PooledClass.addPoolingTo(ReactServerRenderingTransaction);
@@ -23,8 +23,6 @@ var PooledClass = require('PooledClass');
var emptyFunction = require('emptyFunction');
var getEventTarget = require('getEventTarget');
var merge = require('merge');
var mergeInto = require('mergeInto');
/**
* @interface Event
@@ -91,7 +89,7 @@ function SyntheticEvent(dispatchConfig, dispatchMarker, nativeEvent) {
this.isPropagationStopped = emptyFunction.thatReturnsFalse;
}
mergeInto(SyntheticEvent.prototype, {
Object.assign(SyntheticEvent.prototype, {
preventDefault: function() {
this.defaultPrevented = true;
@@ -149,11 +147,11 @@ SyntheticEvent.augmentClass = function(Class, Interface) {
var Super = this;
var prototype = Object.create(Super.prototype);
mergeInto(prototype, Class.prototype);
Object.assign(prototype, Class.prototype);
Class.prototype = prototype;
Class.prototype.constructor = Class;
Class.Interface = merge(Super.Interface, Interface);
Class.Interface = Object.assign({}, Super.Interface, Interface);
Class.augmentClass = Super.augmentClass;
PooledClass.addPoolingTo(Class, PooledClass.threeArgumentPooler);
+9 -8
View File
@@ -33,8 +33,6 @@ var escapeTextForBrowser = require('escapeTextForBrowser');
var invariant = require('invariant');
var isEventSupported = require('isEventSupported');
var keyOf = require('keyOf');
var merge = require('merge');
var mixInto = require('mixInto');
var monitorCodeUse = require('monitorCodeUse');
var deleteListener = ReactBrowserEventEmitter.deleteListener;
@@ -207,7 +205,7 @@ ReactDOMComponent.Mixin = {
} else {
if (propKey === STYLE) {
if (propValue) {
propValue = props.style = merge(props.style);
propValue = props.style = Object.assign({}, props.style);
}
propValue = CSSPropertyOperations.createMarkupForStyles(propValue);
}
@@ -356,7 +354,7 @@ ReactDOMComponent.Mixin = {
}
if (propKey === STYLE) {
if (nextProp) {
nextProp = nextProps.style = merge(nextProp);
nextProp = nextProps.style = Object.assign({}, nextProp);
}
if (lastProp) {
// Unset styles on `lastProp` but not on `nextProp`.
@@ -465,9 +463,12 @@ ReactDOMComponent.Mixin = {
};
mixInto(ReactDOMComponent, ReactComponent.Mixin);
mixInto(ReactDOMComponent, ReactDOMComponent.Mixin);
mixInto(ReactDOMComponent, ReactMultiChild.Mixin);
mixInto(ReactDOMComponent, ReactBrowserComponentMixin);
Object.assign(
ReactDOMComponent.prototype,
ReactComponent.Mixin,
ReactDOMComponent.Mixin,
ReactMultiChild.Mixin,
ReactBrowserComponentMixin
);
module.exports = ReactDOMComponent;
+1 -2
View File
@@ -28,7 +28,6 @@ var ReactUpdates = require('ReactUpdates');
var getEventTarget = require('getEventTarget');
var getUnboundedScrollPosition = require('getUnboundedScrollPosition');
var mixInto = require('mixInto');
/**
* Finds the parent React component of `node`.
@@ -54,7 +53,7 @@ function TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {
this.nativeEvent = nativeEvent;
this.ancestors = [];
}
mixInto(TopLevelCallbackBookKeeping, {
Object.assign(TopLevelCallbackBookKeeping.prototype, {
destructor: function() {
this.topLevelType = null;
this.nativeEvent = null;
@@ -224,7 +224,6 @@ describe('ReactDOMComponent', function() {
var ReactDefaultInjection = require('ReactDefaultInjection');
ReactDefaultInjection.inject();
var mixInto = require('mixInto');
var ReactDOMComponent = require('ReactDOMComponent');
var ReactReconcileTransaction = require('ReactReconcileTransaction');
@@ -232,7 +231,7 @@ describe('ReactDOMComponent', function() {
this.props = initialProps || {};
this._rootNodeID = 'test';
};
mixInto(NodeStub, ReactDOMComponent.Mixin);
Object.assign(NodeStub.prototype, ReactDOMComponent.Mixin);
genMarkup = function(props) {
var transaction = new ReactReconcileTransaction();
@@ -275,7 +274,6 @@ describe('ReactDOMComponent', function() {
beforeEach(function() {
require('mock-modules').dumpCache();
var mixInto = require('mixInto');
var ReactDOMComponent = require('ReactDOMComponent');
var ReactReconcileTransaction = require('ReactReconcileTransaction');
@@ -283,7 +281,7 @@ describe('ReactDOMComponent', function() {
this.props = initialProps || {};
this._rootNodeID = 'test';
};
mixInto(NodeStub, ReactDOMComponent.Mixin);
Object.assign(NodeStub.prototype, ReactDOMComponent.Mixin);
genMarkup = function(props) {
var transaction = new ReactReconcileTransaction();
@@ -312,7 +310,6 @@ describe('ReactDOMComponent', function() {
beforeEach(function() {
require('mock-modules').dumpCache();
var mixInto = require('mixInto');
var ReactComponent = require('ReactComponent');
var ReactMultiChild = require('ReactMultiChild');
var ReactDOMComponent = require('ReactDOMComponent');
@@ -321,9 +318,9 @@ describe('ReactDOMComponent', function() {
var StubNativeComponent = function(element) {
ReactComponent.Mixin.construct.call(this, element);
};
mixInto(StubNativeComponent, ReactComponent.Mixin);
mixInto(StubNativeComponent, ReactDOMComponent.Mixin);
mixInto(StubNativeComponent, ReactMultiChild.Mixin);
Object.assign(StubNativeComponent.prototype, ReactComponent.Mixin);
Object.assign(StubNativeComponent.prototype, ReactDOMComponent.Mixin);
Object.assign(StubNativeComponent.prototype, ReactMultiChild.Mixin);
mountComponent = function(props) {
var transaction = new ReactReconcileTransaction();
@@ -29,7 +29,6 @@ var ReactMount = require('ReactMount');
var ReactUpdates = require('ReactUpdates');
var invariant = require('invariant');
var merge = require('merge');
// Store a reference to the <input> `ReactDOMComponent`. TODO: use string
var input = ReactElement.createFactory(ReactDOM.input.type);
@@ -74,7 +73,7 @@ var ReactDOMInput = ReactCompositeComponent.createClass({
render: function() {
// Clone `this.props` so we don't mutate the input.
var props = merge(this.props);
var props = Object.assign({}, this.props);
props.defaultChecked = null;
props.defaultValue = null;
@@ -26,8 +26,6 @@ var ReactElement = require('ReactElement');
var ReactDOM = require('ReactDOM');
var ReactUpdates = require('ReactUpdates');
var merge = require('merge');
// Store a reference to the <select> `ReactDOMComponent`. TODO: use string
var select = ReactElement.createFactory(ReactDOM.select.type);
@@ -138,7 +136,7 @@ var ReactDOMSelect = ReactCompositeComponent.createClass({
render: function() {
// Clone `this.props` so we don't mutate the input.
var props = merge(this.props);
var props = Object.assign({}, this.props);
props.onChange = this._handleChange;
props.value = null;
@@ -28,7 +28,6 @@ var ReactDOM = require('ReactDOM');
var ReactUpdates = require('ReactUpdates');
var invariant = require('invariant');
var merge = require('merge');
var warning = require('warning');
@@ -103,7 +102,7 @@ var ReactDOMTextarea = ReactCompositeComponent.createClass({
render: function() {
// Clone `this.props` so we don't mutate the input.
var props = merge(this.props);
var props = Object.assign({}, this.props);
invariant(
props.dangerouslySetInnerHTML == null,
+2 -3
View File
@@ -24,7 +24,6 @@ var ReactUpdates = require('ReactUpdates');
var invariant = require('invariant');
var keyMirror = require('keyMirror');
var merge = require('merge');
/**
* Every React component is in one of these life cycles.
@@ -151,7 +150,7 @@ var ReactComponent = {
// element props.
var element = this._pendingElement || this._currentElement;
this.replaceProps(
merge(element.props, partialProps),
Object.assign({}, element.props, partialProps),
callback
);
},
@@ -200,7 +199,7 @@ var ReactComponent = {
var element = this._pendingElement || this._currentElement;
this._pendingElement = ReactElement.cloneAndReplaceProps(
element,
merge(element.props, partialProps)
Object.assign({}, element.props, partialProps)
);
ReactUpdates.enqueueUpdate(this, callback);
},
+22 -12
View File
@@ -37,8 +37,6 @@ var instantiateReactComponent = require('instantiateReactComponent');
var invariant = require('invariant');
var keyMirror = require('keyMirror');
var keyOf = require('keyOf');
var merge = require('merge');
var mixInto = require('mixInto');
var monitorCodeUse = require('monitorCodeUse');
var mapObject = require('mapObject');
var shouldUpdateReactComponent = require('shouldUpdateReactComponent');
@@ -349,7 +347,8 @@ var RESERVED_SPEC_KEYS = {
childContextTypes,
ReactPropTypeLocations.childContext
);
Constructor.childContextTypes = merge(
Constructor.childContextTypes = Object.assign(
{},
Constructor.childContextTypes,
childContextTypes
);
@@ -360,7 +359,11 @@ var RESERVED_SPEC_KEYS = {
contextTypes,
ReactPropTypeLocations.context
);
Constructor.contextTypes = merge(Constructor.contextTypes, contextTypes);
Constructor.contextTypes = Object.assign(
{},
Constructor.contextTypes,
contextTypes
);
},
/**
* Special case getDefaultProps which should move into statics but requires
@@ -382,7 +385,11 @@ var RESERVED_SPEC_KEYS = {
propTypes,
ReactPropTypeLocations.prop
);
Constructor.propTypes = merge(Constructor.propTypes, propTypes);
Constructor.propTypes = Object.assign(
{},
Constructor.propTypes,
propTypes
);
},
statics: function(Constructor, statics) {
mixStaticSpecIntoComponent(Constructor, statics);
@@ -462,7 +469,7 @@ function validateLifeCycleOnReplaceState(instance) {
}
/**
* Custom version of `mixInto` which handles policy validation and reserved
* Mixin helper which handles policy validation and reserved
* specification keys when building `ReactCompositeComponent` classses.
*/
function mixSpecIntoComponent(Constructor, spec) {
@@ -866,7 +873,7 @@ var ReactCompositeComponentMixin = {
}
// Merge with `_pendingState` if it exists, otherwise with existing state.
this.replaceState(
merge(this._pendingState || this.state, partialState),
Object.assign({}, this._pendingState || this.state, partialState),
callback
);
},
@@ -954,7 +961,7 @@ var ReactCompositeComponentMixin = {
name
);
}
return merge(currentContext, childContext);
return Object.assign({}, currentContext, childContext);
}
return currentContext;
},
@@ -1332,10 +1339,13 @@ var ReactCompositeComponentMixin = {
};
var ReactCompositeComponentBase = function() {};
mixInto(ReactCompositeComponentBase, ReactComponent.Mixin);
mixInto(ReactCompositeComponentBase, ReactOwner.Mixin);
mixInto(ReactCompositeComponentBase, ReactPropTransferer.Mixin);
mixInto(ReactCompositeComponentBase, ReactCompositeComponentMixin);
Object.assign(
ReactCompositeComponentBase.prototype,
ReactComponent.Mixin,
ReactOwner.Mixin,
ReactPropTransferer.Mixin,
ReactCompositeComponentMixin
);
/**
* Module for creating composite components.
+1 -3
View File
@@ -18,8 +18,6 @@
"use strict";
var merge = require('merge');
/**
* Keeps track of the current context.
*
@@ -53,7 +51,7 @@ var ReactContext = {
withContext: function(newContext, scopedCallback) {
var result;
var previousContext = ReactContext.current;
ReactContext.current = merge(previousContext, newContext);
ReactContext.current = Object.assign({}, previousContext, newContext);
try {
result = scopedCallback();
} finally {
+8 -6
View File
@@ -22,7 +22,6 @@ var ReactUpdates = require('ReactUpdates');
var Transaction = require('Transaction');
var emptyFunction = require('emptyFunction');
var mixInto = require('mixInto');
var RESET_BATCHED_UPDATES = {
initialize: emptyFunction,
@@ -42,12 +41,15 @@ function ReactDefaultBatchingStrategyTransaction() {
this.reinitializeTransaction();
}
mixInto(ReactDefaultBatchingStrategyTransaction, Transaction.Mixin);
mixInto(ReactDefaultBatchingStrategyTransaction, {
getTransactionWrappers: function() {
return TRANSACTION_WRAPPERS;
Object.assign(
ReactDefaultBatchingStrategyTransaction.prototype,
Transaction.Mixin,
{
getTransactionWrappers: function() {
return TRANSACTION_WRAPPERS;
}
}
});
);
var transaction = new ReactDefaultBatchingStrategyTransaction();
+1 -1
View File
@@ -99,7 +99,7 @@ function proxyStaticMethods(target, source) {
if (typeof value === 'function') {
var bound = value.bind(source);
// Copy any properties defined on the function, such as `isRequired` on
// a PropTypes validator. (mergeInto refuses to work on functions.)
// a PropTypes validator.
for (var k in value) {
if (value.hasOwnProperty(k)) {
bound[k] = value[k];
+1 -2
View File
@@ -19,7 +19,6 @@
"use strict";
var invariant = require('invariant');
var mergeInto = require('mergeInto');
var genericComponentClass = null;
// This registry keeps track of wrapper classes around native tags
@@ -34,7 +33,7 @@ var ReactNativeComponentInjection = {
// This accepts a keyed object with classes as values. Each key represents a
// tag. That particular tag will use this class instead of the generic one.
injectComponentClasses: function(componentClasses) {
mergeInto(tagToComponentClass, componentClasses);
Object.assign(tagToComponentClass, componentClasses);
}
};
+2 -3
View File
@@ -21,7 +21,6 @@
var emptyFunction = require('emptyFunction');
var invariant = require('invariant');
var joinClasses = require('joinClasses');
var merge = require('merge');
var warning = require('warning');
var didWarn = false;
@@ -47,7 +46,7 @@ var transferStrategyMerge = createTransferStrategy(function(a, b) {
// `merge` overrides the first object's (`props[key]` above) keys using the
// second object's (`value`) keys. An object's style's existing `propA` would
// get overridden. Flip the order here.
return merge(b, a);
return Object.assign({}, b, a);
});
/**
@@ -113,7 +112,7 @@ var ReactPropTransferer = {
* @return {object} a new object containing both sets of props merged.
*/
mergeProps: function(oldProps, newProps) {
return transferInto(merge(oldProps), newProps);
return transferInto(Object.assign({}, oldProps), newProps);
},
/**
+3 -3
View File
@@ -25,7 +25,6 @@ var ReactPerf = require('ReactPerf');
var Transaction = require('Transaction');
var invariant = require('invariant');
var mixInto = require('mixInto');
var warning = require('warning');
var dirtyComponents = [];
@@ -80,8 +79,9 @@ function ReactUpdatesFlushTransaction() {
ReactUpdates.ReactReconcileTransaction.getPooled();
}
mixInto(ReactUpdatesFlushTransaction, Transaction.Mixin);
mixInto(ReactUpdatesFlushTransaction, {
Object.assign(
ReactUpdatesFlushTransaction.prototype,
Transaction.Mixin, {
getTransactionWrappers: function() {
return TRANSACTION_WRAPPERS;
},
@@ -18,8 +18,6 @@
"use strict";
var merge = require('merge');
describe('EventPluginRegistry', function() {
var EventPluginRegistry;
var createPlugin;
@@ -29,7 +27,7 @@ describe('EventPluginRegistry', function() {
EventPluginRegistry._resetEventPlugins();
createPlugin = function(properties) {
return merge({extractEvents: function() {}}, properties);
return Object.assign({extractEvents: function() {}}, properties);
};
});
+11 -5
View File
@@ -16,8 +16,6 @@
* @providesModule ReactDefaultPerfAnalysis
*/
var merge = require('merge');
// Don't try to save users less than 1.2ms (a number I made up)
var DONT_CARE_THRESHOLD = 1.2;
var DOM_OPERATION_TYPES = {
@@ -71,7 +69,11 @@ function getExclusiveSummary(measurements) {
for (var i = 0; i < measurements.length; i++) {
var measurement = measurements[i];
var allIDs = merge(measurement.exclusive, measurement.inclusive);
var allIDs = Object.assign(
{},
measurement.exclusive,
measurement.inclusive
);
for (var id in allIDs) {
displayName = measurement.displayNames[id].current;
@@ -119,7 +121,11 @@ function getInclusiveSummary(measurements, onlyClean) {
for (var i = 0; i < measurements.length; i++) {
var measurement = measurements[i];
var allIDs = merge(measurement.exclusive, measurement.inclusive);
var allIDs = Object.assign(
{},
measurement.exclusive,
measurement.inclusive
);
var cleanComponents;
if (onlyClean) {
@@ -174,7 +180,7 @@ function getUnchangedComponents(measurement) {
// the amount of time it took to render the entire subtree.
var cleanComponents = {};
var dirtyLeafIDs = Object.keys(measurement.writes);
var allIDs = merge(measurement.exclusive, measurement.inclusive);
var allIDs = Object.assign({}, measurement.exclusive, measurement.inclusive);
for (var id in allIDs) {
var isDirty = false;
+2 -4
View File
@@ -29,8 +29,6 @@ var ReactTextComponent = require('ReactTextComponent');
var ReactUpdates = require('ReactUpdates');
var SyntheticEvent = require('SyntheticEvent');
var mergeInto = require('mergeInto');
var topLevelTypes = EventConstants.topLevelTypes;
function Event(suffix) {}
@@ -327,7 +325,7 @@ function makeSimulator(eventType) {
ReactMount.getID(node),
fakeNativeEvent
);
mergeInto(event, eventData);
Object.assign(event, eventData);
EventPropagators.accumulateTwoPhaseDispatches(event);
ReactUpdates.batchedUpdates(function() {
@@ -383,7 +381,7 @@ buildSimulators();
function makeNativeSimulator(eventType) {
return function(domComponentOrNode, nativeEventData) {
var fakeNativeEvent = new Event(eventType);
mergeInto(fakeNativeEvent, nativeEventData);
Object.assign(fakeNativeEvent, nativeEventData);
if (ReactTestUtils.isDOMComponent(domComponentOrNode)) {
ReactTestUtils.simulateNativeEventOnDOMComponent(
eventType,
+1 -3
View File
@@ -21,8 +21,6 @@
var ReactTestUtils = require('ReactTestUtils');
var mergeInto = require('mergeInto');
function reactComponentExpect(instance) {
if (instance instanceof reactComponentExpect) {
return instance;
@@ -38,7 +36,7 @@ function reactComponentExpect(instance) {
expect(ReactTestUtils.isElement(instance)).toBe(false);
}
mergeInto(reactComponentExpect.prototype, {
Object.assign(reactComponentExpect.prototype, {
// Getters -------------------------------------------------------------------
/**
+1 -2
View File
@@ -21,7 +21,6 @@
var PooledClass = require('PooledClass');
var invariant = require('invariant');
var mixInto = require('mixInto');
/**
* A specialized pseudo-event module to help keep track of components waiting to
@@ -39,7 +38,7 @@ function CallbackQueue() {
this._contexts = null;
}
mixInto(CallbackQueue, {
Object.assign(CallbackQueue.prototype, {
/**
* Enqueues a callback to be invoked when `notifyAll` is invoked.
+4 -6
View File
@@ -21,8 +21,6 @@
var invariant = require('invariant');
var isNode = require('isNode');
var merge = require('merge');
var mergeInto = require('mergeInto');
var mergeHelpers = require('mergeHelpers');
var checkMergeObjectArgs = mergeHelpers.checkMergeObjectArgs;
@@ -51,7 +49,7 @@ if (__DEV__) {
* @constructor
*/
LegacyImmutableObject = function LegacyImmutableObject(initialProperties) {
mergeInto(this, initialProperties);
Object.assign(this, initialProperties);
deepFreeze(this);
};
@@ -100,7 +98,7 @@ if (__DEV__) {
*/
LegacyImmutableObject.set = function(immutableObject, put) {
assertLegacyImmutableObject(immutableObject);
var totalNewFields = merge(immutableObject, put);
var totalNewFields = Object.assign({}, immutableObject, put);
return new LegacyImmutableObject(totalNewFields);
};
@@ -112,7 +110,7 @@ if (__DEV__) {
* @constructor
*/
LegacyImmutableObject = function LegacyImmutableObject(initialProperties) {
mergeInto(this, initialProperties);
Object.assign(this, initialProperties);
};
/**
@@ -126,7 +124,7 @@ if (__DEV__) {
LegacyImmutableObject.set = function(immutableObject, put) {
assertLegacyImmutableObject(immutableObject);
var newMap = new LegacyImmutableObject(immutableObject);
mergeInto(newMap, put);
Object.assign(newMap, put);
return newMap;
};
}
+1 -2
View File
@@ -19,7 +19,6 @@
"use strict";
var invariant = require('invariant');
var mixInto = require('mixInto');
var PREFIX = 'key:';
@@ -483,7 +482,7 @@ var OrderedMapMethods = {
}
};
mixInto(OrderedMapImpl, OrderedMapMethods);
Object.assign(OrderedMapImpl.prototype, OrderedMapMethods);
var OrderedMap = {
from: function(orderedMap) {
+6 -8
View File
@@ -19,14 +19,12 @@
"use strict";
var Transaction;
var mixInto;
var INIT_ERRORED = 'initErrored'; // Just a dummy value to check for.
describe('Transaction', function() {
beforeEach(function() {
require('mock-modules').dumpCache();
Transaction = require('Transaction');
mixInto = require('mixInto');
});
/**
@@ -53,7 +51,7 @@ describe('Transaction', function() {
this.secondCloseParam = INIT_ERRORED; // WILL be set to something else
this.lastCloseParam = INIT_ERRORED; // WON'T be set to something else
};
mixInto(TestTransaction, Transaction.Mixin);
Object.assign(TestTransaction.prototype, Transaction.Mixin);
TestTransaction.prototype.getTransactionWrappers = function() {
return [
{
@@ -102,7 +100,7 @@ describe('Transaction', function() {
this.secondCloseParam = INIT_ERRORED; // WILL be set to something else
this.lastCloseParam = INIT_ERRORED; // WILL be set to something else
};
mixInto(TestTransaction, Transaction.Mixin);
Object.assign(TestTransaction.prototype, Transaction.Mixin);
TestTransaction.prototype.getTransactionWrappers = function() {
return [
{
@@ -163,7 +161,7 @@ describe('Transaction', function() {
this.secondCloseParam = INIT_ERRORED; // WILL be set to something else
this.lastCloseParam = INIT_ERRORED; // WILL be set to something else
};
mixInto(TestTransaction, Transaction.Mixin);
Object.assign(TestTransaction.prototype, Transaction.Mixin);
// Now, none of the close/inits throw, but the operation we wrap will throw.
TestTransaction.prototype.getTransactionWrappers = function() {
return [
@@ -227,7 +225,7 @@ describe('Transaction', function() {
var TestTransaction = function() {
this.reinitializeTransaction();
};
mixInto(TestTransaction, Transaction.Mixin);
Object.assign(TestTransaction.prototype, Transaction.Mixin);
var exceptionMsg = 'This exception should throw.';
TestTransaction.prototype.getTransactionWrappers = function() {
return [
@@ -256,7 +254,7 @@ describe('Transaction', function() {
this.reinitializeTransaction();
this.firstCloseParam = INIT_ERRORED; // WILL be set to something else
};
mixInto(TestTransaction, Transaction.Mixin);
Object.assign(TestTransaction.prototype, Transaction.Mixin);
TestTransaction.prototype.getTransactionWrappers = function() {
return [
{
@@ -284,7 +282,7 @@ describe('Transaction', function() {
var NestedTransaction = function() {
this.reinitializeTransaction();
};
mixInto(NestedTransaction, Transaction.Mixin);
Object.assign(NestedTransaction.prototype, Transaction.Mixin);
NestedTransaction.prototype.getTransactionWrappers = function() {
return [{
initialize: function() {
-34
View File
@@ -1,34 +0,0 @@
/**
* Copyright 2013-2014 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.
*
* @providesModule mixInto
*/
"use strict";
/**
* Simply copies properties to the prototype.
*/
var mixInto = function(constructor, methodBag) {
var methodName;
for (methodName in methodBag) {
if (!methodBag.hasOwnProperty(methodName)) {
continue;
}
constructor.prototype[methodName] = methodBag[methodName];
}
};
module.exports = mixInto;
+1 -3
View File
@@ -16,8 +16,6 @@
* @providesModule emptyFunction
*/
var copyProperties = require('copyProperties');
function makeEmptyFunction(arg) {
return function() {
return arg;
@@ -31,7 +29,7 @@ function makeEmptyFunction(arg) {
*/
function emptyFunction() {}
copyProperties(emptyFunction, {
Object.assign(emptyFunction, {
thatReturns: makeEmptyFunction,
thatReturnsFalse: makeEmptyFunction(false),
thatReturnsTrue: makeEmptyFunction(true),
+1 -2
View File
@@ -19,7 +19,6 @@
var invariant = require('invariant');
var isNode = require('isNode');
var keyOf = require('keyOf');
var mergeInto = require('mergeInto');
var SECRET_KEY = keyOf({_DONT_EVER_TYPE_THIS_SECRET_KEY: null});
@@ -67,7 +66,7 @@ class Immutable {
static mergeAllPropertiesInto(destination, propertyObjects) {
var argLength = propertyObjects.length;
for (var i = 0; i < argLength; i++) {
mergeInto(destination, propertyObjects[i]);
Object.assign(destination, propertyObjects[i]);
}
}