UNPKG

prepack

Version:

Execute a JS bundle, serialize global state and side effects to a snapshot that can be quickly restored.

72 lines (55 loc) 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReactPropsSet = void 0; var _realm = require("../realm.js"); var _index = require("../values/index.js"); var _invariant = _interopRequireDefault(require("../invariant.js")); var _ReactEquivalenceSet = require("./ReactEquivalenceSet.js"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Copyright (c) 2017-present, 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. */ class ReactPropsSet { constructor(realm, reactEquivalenceSet) { this.realm = realm; this.reactEquivalenceSet = reactEquivalenceSet; } add(props, visitedValues) { if (!visitedValues) visitedValues = new Set(); let reactEquivalenceSet = this.reactEquivalenceSet; let currentMap = reactEquivalenceSet.reactPropsRoot; let result; for (let [propName] of props.properties) { currentMap = reactEquivalenceSet.getKey(propName, currentMap, visitedValues); result = reactEquivalenceSet.getEquivalentPropertyValue(props, propName, currentMap, visitedValues); currentMap = result.map; } let temporalAlias = props.temporalAlias; if (temporalAlias !== undefined) { currentMap = reactEquivalenceSet.getKey(_ReactEquivalenceSet.temporalAliasSymbol, currentMap, visitedValues); result = reactEquivalenceSet.getTemporalAliasValue(temporalAlias, currentMap, visitedValues); currentMap = result.map; } if (result === undefined) { // If we have a temporalAlias, we can never return an empty object if (temporalAlias === undefined && this.realm.react.emptyObject !== undefined) { return this.realm.react.emptyObject; } return props; } if (result.value === null) { result.value = props; } (0, _invariant.default)(result.value instanceof _index.ObjectValue); return result.value; } } exports.ReactPropsSet = ReactPropsSet; //# sourceMappingURL=ReactPropsSet.js.map