UNPKG

31 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/react/components.js"],"names":["lifecycleMethods","Set","whitelistedProperties","getInitialProps","realm","componentType","modelString","componentModel","undefined","JSON","parse","shape","ShapeInformation","createForReactComponentProps","propsName","$FormalParameters","length","firstParam","t","isIdentifier","name","abstractPropsObject","AbstractValue","createAbstractObject","AbstractObjectValue","makeFinal","getInitialContext","contextName","superTypeParameters","$SuperTypeParameters","ExpectedBailOut","secondParam","value","visitClassMethodAstForThisUsage","method","formalParameters","code","$ECMAScriptCode","file","program","expressionStatement","functionExpression","ThisExpression","path","parentNode","parentPath","node","isMemberExpression","SimpleClassBailOut","createSimpleClassInstance","props","context","componentPrototype","ObjectValue","instance","allowedPropertyAccess","properties","has","add","ECMAScriptSourceFunctionValue","Properties","$GetOwnProperty","P","call","refuseSerialization","deeplyApplyInstancePrototypeProperties","classMetadata","instanceProperties","instanceSymbols","proto","$Prototype","intrinsics","ObjectPrototype","symbol","symbols","createClassInstanceForFirstRenderOnly","evaluatedNode","objectAssign","Object","ECMAScriptFunctionValue","objectAssignCall","$Call","state","setState","NativeFunctionValue","_context","stateToUpdate","callback","prevState","newState","key","binding","descriptor","enumerable","intrinsicName","createClassInstance","evaluateClassConstructor","constructorFunc","evaluatePure","evaluateForEffects","propertyName","getName","applyGetDerivedStateFromProps","getDerivedStateFromProps","getDerivedStateFromPropsCall","partialState","null","deriveState","kind","condition","args","a","b","Value","createFromConditionalOp","false","createFromLogicalOp","createFromBinaryOp","c","preludeGenerator","createTemporalObjectAssign","makeSimple","makePartial","conditional","e","isInPureScope","FatalError"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) 2017-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n/* @flow */\n\nimport { Realm } from \"../realm.js\";\nimport {\n ECMAScriptSourceFunctionValue,\n AbstractValue,\n ObjectValue,\n AbstractObjectValue,\n SymbolValue,\n NativeFunctionValue,\n ECMAScriptFunctionValue,\n Value,\n} from \"../values/index.js\";\nimport * as t from \"@babel/types\";\nimport type { BabelNodeIdentifier } from \"@babel/types\";\nimport {\n flagPropsWithNoPartialKeyOrRef,\n getProperty,\n getValueFromFunctionCall,\n hardModifyReactObjectPropertyBinding,\n valueIsClassComponent,\n} from \"./utils.js\";\nimport { ExpectedBailOut, SimpleClassBailOut } from \"./errors.js\";\nimport { Get, Construct } from \"../methods/index.js\";\nimport { Properties } from \"../singletons.js\";\nimport invariant from \"../invariant.js\";\nimport traverse from \"@babel/traverse\";\nimport type { ClassComponentMetadata, ReactComponentTreeConfig } from \"../types.js\";\nimport type { ReactEvaluatedNode } from \"../serializer/types.js\";\nimport { FatalError } from \"../errors.js\";\nimport { type ComponentModel, ShapeInformation } from \"../utils/ShapeInformation.js\";\n\nconst lifecycleMethods = new Set([\n \"componentWillUnmount\",\n \"componentDidMount\",\n \"componentWillMount\",\n \"componentDidUpdate\",\n \"componentWillUpdate\",\n \"componentDidCatch\",\n \"componentWillReceiveProps\",\n]);\n\nconst whitelistedProperties = new Set([\"props\", \"context\", \"refs\", \"setState\"]);\n\nexport function getInitialProps(\n realm: Realm,\n componentType: ECMAScriptSourceFunctionValue | null,\n { modelString }: ReactComponentTreeConfig\n): AbstractObjectValue {\n let componentModel = modelString !== undefined ? (JSON.parse(modelString): ComponentModel) : undefined;\n let shape = ShapeInformation.createForReactComponentProps(componentModel);\n let propsName = null;\n if (componentType !== null) {\n if (valueIsClassComponent(realm, componentType)) {\n propsName = \"this.props\";\n } else {\n // otherwise it's a functional component, where the first paramater of the function is \"props\" (if it exists)\n if (componentType.$FormalParameters.length > 0) {\n let firstParam = componentType.$FormalParameters[0];\n if (t.isIdentifier(firstParam)) {\n propsName = ((firstParam: any): BabelNodeIdentifier).name;\n }\n }\n }\n }\n let abstractPropsObject = AbstractValue.createAbstractObject(realm, propsName || \"props\", shape);\n invariant(abstractPropsObject instanceof AbstractObjectValue);\n flagPropsWithNoPartialKeyOrRef(realm, abstractPropsObject);\n abstractPropsObject.makeFinal();\n return abstractPropsObject;\n}\n\nexport function getInitialContext(realm: Realm, componentType: ECMAScriptSourceFunctionValue): AbstractObjectValue {\n let contextName = null;\n if (valueIsClassComponent(realm, componentType)) {\n // it's a class component, so we need to check the type on for context of the component prototype\n let superTypeParameters = componentType.$SuperTypeParameters;\n contextName = \"this.context\";\n\n if (superTypeParameters !== undefined) {\n throw new ExpectedBailOut(\"context on class components not yet supported\");\n }\n } else {\n // otherwise it's a functional component, where the second paramater of the function is \"context\" (if it exists)\n if (componentType.$FormalParameters.length > 1) {\n let secondParam = componentType.$FormalParameters[1];\n if (t.isIdentifier(secondParam)) {\n contextName = ((secondParam: any): BabelNodeIdentifier).name;\n }\n }\n }\n let value = AbstractValue.createAbstractObject(realm, contextName || \"context\");\n return value;\n}\n\nfunction visitClassMethodAstForThisUsage(realm: Realm, method: ECMAScriptSourceFunctionValue): void {\n let formalParameters = method.$FormalParameters;\n let code = method.$ECMAScriptCode;\n\n traverse(\n t.file(t.program([t.expressionStatement(t.functionExpression(null, formalParameters, code))])),\n {\n ThisExpression(path) {\n let parentNode = path.parentPath.node;\n\n if (!t.isMemberExpression(parentNode)) {\n throw new SimpleClassBailOut(`possible leakage of independent \"this\" reference found`);\n }\n },\n },\n null,\n {}\n );\n}\n\nexport function createSimpleClassInstance(\n realm: Realm,\n componentType: ECMAScriptSourceFunctionValue,\n props: ObjectValue | AbstractValue,\n context: ObjectValue | AbstractValue\n): AbstractObjectValue {\n let componentPrototype = Get(realm, componentType, \"prototype\");\n invariant(componentPrototype instanceof ObjectValue);\n // create an instance object and disable serialization as we don't want to output the internals we set below\n let instance = new ObjectValue(realm, componentPrototype, \"this\", true);\n let allowedPropertyAccess = new Set([\"props\", \"context\"]);\n for (let [name] of componentPrototype.properties) {\n if (lifecycleMethods.has(name)) {\n // this error will result in the simple class falling back to a complex class\n throw new SimpleClassBailOut(\"lifecycle methods are not supported on simple classes\");\n } else if (name !== \"constructor\") {\n allowedPropertyAccess.add(name);\n let method = Get(realm, componentPrototype, name);\n if (method instanceof ECMAScriptSourceFunctionValue) {\n visitClassMethodAstForThisUsage(realm, method);\n }\n Properties.Set(realm, instance, name, method, true);\n }\n }\n // assign props\n Properties.Set(realm, instance, \"props\", props, true);\n // assign context\n Properties.Set(realm, instance, \"context\", context, true);\n // as this object is simple, we want to check if any access to anything other than\n // \"this.props\" or \"this.context\" or methods on the class occur\n let $GetOwnProperty = instance.$GetOwnProperty;\n instance.$GetOwnProperty = P => {\n if (!allowedPropertyAccess.has(P)) {\n // this error will result in the simple class falling back to a complex class\n throw new SimpleClassBailOut(\"access to basic class instance properties is not supported on simple classes\");\n }\n return $GetOwnProperty.call(instance, P);\n };\n // enable serialization to support simple instance variables properties\n instance.refuseSerialization = false;\n // return the instance\n return instance;\n}\n\nfunction deeplyApplyInstancePrototypeProperties(\n realm: Realm,\n instance: ObjectValue,\n componentPrototype: ObjectValue,\n classMetadata: ClassComponentMetadata\n) {\n let { instanceProperties, instanceSymbols } = classMetadata;\n let proto = componentPrototype.$Prototype;\n\n if (proto instanceof ObjectValue && proto !== realm.intrinsics.ObjectPrototype) {\n deeplyApplyInstancePrototypeProperties(realm, instance, proto, classMetadata);\n }\n\n for (let [name] of componentPrototype.properties) {\n // ensure we don't set properties that were defined on the instance\n if (name !== \"constructor\" && !instanceProperties.has(name)) {\n Properties.Set(realm, instance, name, Get(realm, componentPrototype, name), true);\n }\n }\n for (let [symbol] of componentPrototype.symbols) {\n // ensure we don't set symbols that were defined on the instance\n if (!instanceSymbols.has(symbol)) {\n Properties.Set(realm, instance, symbol, Get(realm, componentPrototype, symbol), true);\n }\n }\n}\n\nexport function createClassInstanceForFirstRenderOnly(\n realm: Realm,\n componentType: ECMAScriptSourceFunctionValue,\n props: ObjectValue | AbstractValue,\n context: ObjectValue | AbstractValue,\n evaluatedNode: ReactEvaluatedNode\n): ObjectValue {\n let instance = getValueFromFunctionCall(realm, componentType, realm.intrinsics.undefined, [props, context], true);\n let objectAssign = Get(realm, realm.intrinsics.Object, \"assign\");\n invariant(objectAssign instanceof ECMAScriptFunctionValue);\n let objectAssignCall = objectAssign.$Call;\n invariant(objectAssignCall !== undefined);\n\n invariant(instance instanceof ObjectValue);\n instance.refuseSerialization = true;\n // assign props\n Properties.Set(realm, instance, \"props\", props, true);\n // assign context\n Properties.Set(realm, instance, \"context\", context, true);\n let state = Get(realm, instance, \"state\");\n if (state instanceof AbstractObjectValue || state instanceof ObjectValue) {\n state.makeFinal();\n }\n // assign a mocked setState\n let setState = new NativeFunctionValue(realm, undefined, `setState`, 1, (_context, [stateToUpdate, callback]) => {\n invariant(instance instanceof ObjectValue);\n let prevState = Get(realm, instance, \"state\");\n invariant(prevState instanceof ObjectValue);\n\n if (stateToUpdate instanceof ECMAScriptSourceFunctionValue && stateToUpdate.$Call) {\n stateToUpdate = stateToUpdate.$Call(instance, [prevState]);\n }\n if (stateToUpdate instanceof ObjectValue) {\n let newState = new ObjectValue(realm, realm.intrinsics.ObjectPrototype);\n objectAssignCall(realm.intrinsics.undefined, [newState, prevState]);\n newState.makeFinal();\n\n for (let [key, binding] of stateToUpdate.properties) {\n if (binding && binding.descriptor && binding.descriptor.enumerable) {\n let value = getProperty(realm, stateToUpdate, key);\n hardModifyReactObjectPropertyBinding(realm, newState, key, value);\n }\n }\n\n Properties.Set(realm, instance, \"state\", newState, true);\n }\n if (callback instanceof ECMAScriptSourceFunctionValue && callback.$Call) {\n callback.$Call(instance, []);\n }\n return realm.intrinsics.undefined;\n });\n setState.intrinsicName = \"(function() {})\";\n Properties.Set(realm, instance, \"setState\", setState, true);\n\n instance.refuseSerialization = false;\n return instance;\n}\n\nexport function createClassInstance(\n realm: Realm,\n componentType: ECMAScriptSourceFunctionValue,\n props: ObjectValue | AbstractValue,\n context: ObjectValue | AbstractValue,\n classMetadata: ClassComponentMetadata\n): AbstractObjectValue {\n let componentPrototype = Get(realm, componentType, \"prototype\");\n invariant(componentPrototype instanceof ObjectValue);\n // create an instance object and disable serialization as we don't want to output the internals we set below\n let instance = new ObjectValue(realm, componentPrototype, \"this\", true);\n deeplyApplyInstancePrototypeProperties(realm, instance, componentPrototype, classMetadata);\n\n // assign refs\n Properties.Set(realm, instance, \"refs\", AbstractValue.createAbstractObject(realm, \"this.refs\"), true);\n // assign props\n Properties.Set(realm, instance, \"props\", props, true);\n // assign context\n Properties.Set(realm, instance, \"context\", context, true);\n // enable serialization to support simple instance variables properties\n instance.refuseSerialization = false;\n // return the instance in an abstract object\n let value = AbstractValue.createAbstractObject(realm, \"this\", instance);\n invariant(value instanceof AbstractObjectValue);\n return value;\n}\n\nexport function evaluateClassConstructor(\n realm: Realm,\n constructorFunc: ECMAScriptSourceFunctionValue,\n props: ObjectValue | AbstractValue | AbstractObjectValue,\n context: ObjectValue | AbstractObjectValue\n): { instanceProperties: Set<string>, instanceSymbols: Set<SymbolValue> } {\n let instanceProperties = new Set();\n let instanceSymbols = new Set();\n\n realm.evaluatePure(\n () =>\n realm.evaluateForEffects(\n () => {\n let instance = Construct(realm, constructorFunc, [props, context]);\n invariant(instance instanceof ObjectValue);\n for (let [propertyName] of instance.properties) {\n if (!whitelistedProperties.has(propertyName)) {\n instanceProperties.add(propertyName);\n }\n }\n for (let [symbol] of instance.symbols) {\n instanceSymbols.add(symbol);\n }\n return instance;\n },\n /*state*/ null,\n `react component constructor: ${constructorFunc.getName()}`\n ),\n /*reportSideEffectFunc*/ null\n );\n\n return {\n instanceProperties,\n instanceSymbols,\n };\n}\n\nexport function applyGetDerivedStateFromProps(\n realm: Realm,\n getDerivedStateFromProps: ECMAScriptSourceFunctionValue,\n instance: ObjectValue,\n props: ObjectValue | AbstractValue | AbstractObjectValue\n): void {\n let prevState = Get(realm, instance, \"state\");\n let getDerivedStateFromPropsCall = getDerivedStateFromProps.$Call;\n invariant(getDerivedStateFromPropsCall !== undefined);\n let partialState = getDerivedStateFromPropsCall(realm.intrinsics.null, [props, prevState]);\n\n const deriveState = state => {\n let objectAssign = Get(realm, realm.intrinsics.Object, \"assign\");\n invariant(objectAssign instanceof ECMAScriptFunctionValue);\n let objectAssignCall = objectAssign.$Call;\n invariant(objectAssignCall !== undefined);\n\n if (state instanceof AbstractValue && !(state instanceof AbstractObjectValue)) {\n const kind = state.kind;\n\n if (kind === \"conditional\") {\n let condition = state.args[0];\n let a = deriveState(state.args[1]);\n let b = deriveState(state.args[2]);\n invariant(condition instanceof AbstractValue);\n if (a === null && b === null) {\n return null;\n } else if (a === null) {\n invariant(b instanceof Value);\n return AbstractValue.createFromConditionalOp(realm, condition, realm.intrinsics.false, b);\n } else if (b === null) {\n invariant(a instanceof Value);\n return AbstractValue.createFromConditionalOp(realm, condition, a, realm.intrinsics.false);\n } else {\n invariant(a instanceof Value);\n invariant(b instanceof Value);\n return AbstractValue.createFromConditionalOp(realm, condition, a, b);\n }\n } else if (kind === \"||\" || kind === \"&&\") {\n let a = deriveState(state.args[0]);\n let b = deriveState(state.args[1]);\n if (b === null) {\n invariant(a instanceof Value);\n return AbstractValue.createFromLogicalOp(realm, kind, a, realm.intrinsics.false);\n } else {\n invariant(a instanceof Value);\n invariant(b instanceof Value);\n return AbstractValue.createFromLogicalOp(realm, kind, a, b);\n }\n } else {\n invariant(state.args !== undefined, \"TODO: unknown abstract value passed to deriveState\");\n // as the value is completely abstract, we need to add a bunch of\n // operations to be emitted to ensure we do the right thing at runtime\n let a = AbstractValue.createFromBinaryOp(realm, \"!==\", state, realm.intrinsics.null);\n let b = AbstractValue.createFromBinaryOp(realm, \"!==\", state, realm.intrinsics.undefined);\n let c = AbstractValue.createFromLogicalOp(realm, \"&&\", a, b);\n invariant(c instanceof AbstractValue);\n let newState = new ObjectValue(realm, realm.intrinsics.ObjectPrototype);\n let preludeGenerator = realm.preludeGenerator;\n invariant(preludeGenerator !== undefined);\n // we cannot use the standard Object.assign as partial state\n // is not simple. however, given getDerivedStateFromProps is\n // meant to be pure, we can assume that there are no getters on\n // the partial abstract state\n AbstractValue.createTemporalObjectAssign(realm, newState, [prevState, state]);\n newState.makeSimple();\n newState.makePartial();\n newState.makeFinal();\n let conditional = AbstractValue.createFromLogicalOp(realm, \"&&\", c, newState);\n return conditional;\n }\n } else if (state !== realm.intrinsics.null && state !== realm.intrinsics.undefined) {\n let newState = new ObjectValue(realm, realm.intrinsics.ObjectPrototype);\n try {\n objectAssignCall(realm.intrinsics.undefined, [newState, prevState, state]);\n } catch (e) {\n if (realm.isInPureScope() && e instanceof FatalError) {\n let preludeGenerator = realm.preludeGenerator;\n invariant(preludeGenerator !== undefined);\n AbstractValue.createTemporalObjectAssign(realm, newState, [prevState, state]);\n newState.makeSimple();\n newState.makePartial();\n return newState;\n }\n throw e;\n }\n newState.makeFinal();\n return newState;\n } else {\n return null;\n }\n };\n\n let newState = deriveState(partialState);\n if (newState !== null) {\n if (newState instanceof AbstractValue) {\n newState = AbstractValue.createFromLogicalOp(realm, \"||\", newState, prevState);\n }\n invariant(newState instanceof Value);\n Properties.Set(realm, instance, \"state\", newState, true);\n }\n}\n"],"file":"components.js"}
\No newline at end of file