mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
ReactClass is now composed by ReactCompositeComponent rather than inherit from it. The state transition functions currently use ReactInstanceMap to map an instance back to an internal representation. I updated some tests to use public APIs. Other unit tests still reach into internals but now we can find them using ReactInstanceMap. I will do more cleanup in follow ups. The purpose of this diff is to preserve semantics and most of the existing code. This effectively enables support for ES6 classes. All you would need to expose is ReactClassMixin.
48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
/**
|
|
* Copyright 2013-2014, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*
|
|
* @providesModule ReactInstanceMap
|
|
*/
|
|
|
|
"use strict";
|
|
|
|
/**
|
|
* `ReactInstanceMap` maintains a mapping from a public facing stateful
|
|
* instance (key) and the internal representation (value). This allows public
|
|
* methods to accept the user facing instance as an argument and map them back
|
|
* to internal methods.
|
|
*/
|
|
|
|
// TODO: Replace this with ES6: var ReactInstanceMap = new Map();
|
|
var ReactInstanceMap = {
|
|
|
|
/**
|
|
* This API should be called `delete` but we'd have to make sure to always
|
|
* transform these to strings for IE support. When this transform is fully
|
|
* supported we can rename it.
|
|
*/
|
|
remove: function(key) {
|
|
key._reactInternalInstance = undefined;
|
|
},
|
|
|
|
get: function(key) {
|
|
return key._reactInternalInstance;
|
|
},
|
|
|
|
has: function(key) {
|
|
return key._reactInternalInstance !== undefined;
|
|
},
|
|
|
|
set: function(key, value) {
|
|
key._reactInternalInstance = value;
|
|
}
|
|
|
|
};
|
|
|
|
module.exports = ReactInstanceMap;
|