Best JavaScript code snippet using playwright-internal
create-react-class_v15.7.0-N1XVDJKEbjGgZJqirdPG_dist_es2019_mode_imports_optimized_create-react-class_57aa3e1ce3c168759c79.js
Source: create-react-class_v15.7.0-N1XVDJKEbjGgZJqirdPG_dist_es2019_mode_imports_optimized_create-react-class_57aa3e1ce3c168759c79.js
...366 Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes);367 },368 getDefaultProps: function(Constructor, getDefaultProps) {369 if (Constructor.getDefaultProps) {370 Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);371 } else {372 Constructor.getDefaultProps = getDefaultProps;373 }374 },375 propTypes: function(Constructor, propTypes) {376 Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);377 },378 statics: function(Constructor, statics) {379 mixStaticSpecIntoComponent(Constructor, statics);380 },381 autobind: function() {382 }383 };384 function validateMethodOverride(isAlreadyDefined, name) {385 var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;386 if (ReactClassMixin.hasOwnProperty(name)) {387 _invariant(specPolicy === "OVERRIDE_BASE", "ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.", name);388 }389 if (isAlreadyDefined) {390 _invariant(specPolicy === "DEFINE_MANY" || specPolicy === "DEFINE_MANY_MERGED", "ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.", name);391 }392 }393 function mixSpecIntoComponent(Constructor, spec) {394 if (!spec) {395 return;396 }397 _invariant(typeof spec !== "function", "ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object.");398 _invariant(!isValidElement(spec), "ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");399 var proto = Constructor.prototype;400 var autoBindPairs = proto.__reactAutoBindPairs;401 if (spec.hasOwnProperty(MIXINS_KEY)) {402 RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);403 }404 for (var name in spec) {405 if (!spec.hasOwnProperty(name)) {406 continue;407 }408 if (name === MIXINS_KEY) {409 continue;410 }411 var property = spec[name];412 var isAlreadyDefined = proto.hasOwnProperty(name);413 validateMethodOverride(isAlreadyDefined, name);414 if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {415 RESERVED_SPEC_KEYS[name](Constructor, property);416 } else {417 var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);418 var isFunction = typeof property === "function";419 var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;420 if (shouldAutoBind) {421 autoBindPairs.push(name, property);422 proto[name] = property;423 } else {424 if (isAlreadyDefined) {425 var specPolicy = ReactClassInterface[name];426 _invariant(isReactClassMethod && (specPolicy === "DEFINE_MANY_MERGED" || specPolicy === "DEFINE_MANY"), "ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.", specPolicy, name);427 if (specPolicy === "DEFINE_MANY_MERGED") {428 proto[name] = createMergedResultFunction(proto[name], property);429 } else if (specPolicy === "DEFINE_MANY") {430 proto[name] = createChainedFunction(proto[name], property);431 }432 } else {433 proto[name] = property;434 }435 }436 }437 }438 }439 function mixStaticSpecIntoComponent(Constructor, statics) {440 if (!statics) {441 return;442 }443 for (var name in statics) {444 var property = statics[name];445 if (!statics.hasOwnProperty(name)) {446 continue;447 }448 var isReserved = name in RESERVED_SPEC_KEYS;449 _invariant(!isReserved, 'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.', name);450 var isAlreadyDefined = name in Constructor;451 if (isAlreadyDefined) {452 var specPolicy = ReactClassStaticInterface.hasOwnProperty(name) ? ReactClassStaticInterface[name] : null;453 _invariant(specPolicy === "DEFINE_MANY_MERGED", "ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.", name);454 Constructor[name] = createMergedResultFunction(Constructor[name], property);455 return;456 }457 Constructor[name] = property;458 }459 }460 function mergeIntoWithNoDuplicateKeys(one, two) {461 _invariant(one && two && typeof one === "object" && typeof two === "object", "mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");462 for (var key in two) {463 if (two.hasOwnProperty(key)) {464 _invariant(one[key] === void 0, "mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.", key);465 one[key] = two[key];466 }467 }468 return one;469 }470 function createMergedResultFunction(one, two) {471 return function mergedResult() {472 var a = one.apply(this, arguments);473 var b = two.apply(this, arguments);474 if (a == null) {475 return b;476 } else if (b == null) {477 return a;478 }479 var c = {};480 mergeIntoWithNoDuplicateKeys(c, a);481 mergeIntoWithNoDuplicateKeys(c, b);482 return c;483 };484 }...
ReactClass.js
Source: ReactClass.js
...66 Constructor.contextTypes = assign({}, Constructor.contextTypes, contextTypes);67 },68 getDefaultProps: function(Constructor, getDefaultProps) {69 if (Constructor.getDefaultProps) {70 Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);71 } else {72 Constructor.getDefaultProps = getDefaultProps;73 }74 },75 propTypes: function(Constructor, propTypes) {76 if ("production" !== process.env.NODE_ENV) {77 validateTypeDef(Constructor, propTypes, ReactPropTypeLocations.prop);78 }79 Constructor.propTypes = assign({}, Constructor.propTypes, propTypes);80 },81 statics: function(Constructor, statics) {82 mixStaticSpecIntoComponent(Constructor, statics);83 }84 };85 function validateTypeDef(Constructor, typeDef, location) {86 for (var propName in typeDef) {87 if (typeDef.hasOwnProperty(propName)) {88 ("production" !== process.env.NODE_ENV ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : null);89 }90 }91 }92 function validateMethodOverride(proto, name) {93 var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;94 if (ReactClassMixin.hasOwnProperty(name)) {95 ("production" !== process.env.NODE_ENV ? invariant(specPolicy === SpecPolicy.OVERRIDE_BASE, 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name) : invariant(specPolicy === SpecPolicy.OVERRIDE_BASE));96 }97 if (proto.hasOwnProperty(name)) {98 ("production" !== process.env.NODE_ENV ? invariant(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED, 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name) : invariant(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED));99 }100 }101 function mixSpecIntoComponent(Constructor, spec) {102 if (!spec) {103 return;104 }105 ("production" !== process.env.NODE_ENV ? invariant(typeof spec !== 'function', 'ReactClass: You\'re attempting to ' + 'use a component class as a mixin. Instead, just use a regular object.') : invariant(typeof spec !== 'function'));106 ("production" !== process.env.NODE_ENV ? invariant(!ReactElement.isValidElement(spec), 'ReactClass: You\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.') : invariant(!ReactElement.isValidElement(spec)));107 var proto = Constructor.prototype;108 if (spec.hasOwnProperty(MIXINS_KEY)) {109 RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);110 }111 for (var name in spec) {112 if (!spec.hasOwnProperty(name)) {113 continue;114 }115 if (name === MIXINS_KEY) {116 continue;117 }118 var property = spec[name];119 validateMethodOverride(proto, name);120 if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {121 RESERVED_SPEC_KEYS[name](Constructor, property);122 } else {123 var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);124 var isAlreadyDefined = proto.hasOwnProperty(name);125 var markedDontBind = property && property.__reactDontBind;126 var isFunction = typeof property === 'function';127 var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && !markedDontBind;128 if (shouldAutoBind) {129 if (!proto.__reactAutoBindMap) {130 proto.__reactAutoBindMap = {};131 }132 proto.__reactAutoBindMap[name] = property;133 proto[name] = property;134 } else {135 if (isAlreadyDefined) {136 var specPolicy = ReactClassInterface[name];137 ("production" !== process.env.NODE_ENV ? invariant(isReactClassMethod && ((specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)), 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name) : invariant(isReactClassMethod && ((specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY))));138 if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) {139 proto[name] = createMergedResultFunction(proto[name], property);140 } else if (specPolicy === SpecPolicy.DEFINE_MANY) {141 proto[name] = createChainedFunction(proto[name], property);142 }143 } else {144 proto[name] = property;145 if ("production" !== process.env.NODE_ENV) {146 if (typeof property === 'function' && spec.displayName) {147 proto[name].displayName = spec.displayName + '_' + name;148 }149 }150 }151 }152 }153 }154 }155 function mixStaticSpecIntoComponent(Constructor, statics) {156 if (!statics) {157 return;158 }159 for (var name in statics) {160 var property = statics[name];161 if (!statics.hasOwnProperty(name)) {162 continue;163 }164 var isReserved = name in RESERVED_SPEC_KEYS;165 ("production" !== process.env.NODE_ENV ? invariant(!isReserved, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name) : invariant(!isReserved));166 var isInherited = name in Constructor;167 ("production" !== process.env.NODE_ENV ? invariant(!isInherited, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name) : invariant(!isInherited));168 Constructor[name] = property;169 }170 }171 function mergeIntoWithNoDuplicateKeys(one, two) {172 ("production" !== process.env.NODE_ENV ? invariant(one && two && typeof one === 'object' && typeof two === 'object', 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : invariant(one && two && typeof one === 'object' && typeof two === 'object'));173 for (var key in two) {174 if (two.hasOwnProperty(key)) {175 ("production" !== process.env.NODE_ENV ? invariant(one[key] === undefined, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key) : invariant(one[key] === undefined));176 one[key] = two[key];177 }178 }179 return one;180 }181 function createMergedResultFunction(one, two) {182 return function mergedResult() {183 var a = one.apply(this, arguments);184 var b = two.apply(this, arguments);185 if (a == null) {186 return b;187 } else if (b == null) {188 return a;189 }190 var c = {};191 mergeIntoWithNoDuplicateKeys(c, a);192 mergeIntoWithNoDuplicateKeys(c, b);193 return c;194 };195 }...
e6c8b6ReactClass.js
Source: e6c8b6ReactClass.js
...56 Constructor.contextTypes = _assign({}, Constructor.contextTypes, _contextTypes);57 },58 getDefaultProps: function getDefaultProps(Constructor, _getDefaultProps) {59 if (Constructor.getDefaultProps) {60 Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, _getDefaultProps);61 } else {62 Constructor.getDefaultProps = _getDefaultProps;63 }64 },65 propTypes: function propTypes(Constructor, _propTypes) {66 if (process.env.NODE_ENV !== 'production') {67 validateTypeDef(Constructor, _propTypes, 'prop');68 }69 Constructor.propTypes = _assign({}, Constructor.propTypes, _propTypes);70 },71 statics: function statics(Constructor, _statics) {72 mixStaticSpecIntoComponent(Constructor, _statics);73 },74 autobind: function autobind() {} };75function validateTypeDef(Constructor, typeDef, location) {76 for (var propName in typeDef) {77 if (typeDef.hasOwnProperty(propName)) {78 process.env.NODE_ENV !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0;79 }80 }81}82function validateMethodOverride(isAlreadyDefined, name) {83 var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;84 if (ReactClassMixin.hasOwnProperty(name)) {85 !(specPolicy === 'OVERRIDE_BASE') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.', name) : _prodInvariant('73', name) : void 0;86 }87 if (isAlreadyDefined) {88 !(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('74', name) : void 0;89 }90}91function mixSpecIntoComponent(Constructor, spec) {92 if (!spec) {93 if (process.env.NODE_ENV !== 'production') {94 var typeofSpec = typeof spec;95 var isMixinValid = typeofSpec === 'object' && spec !== null;96 process.env.NODE_ENV !== 'production' ? warning(isMixinValid, '%s: You\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0;97 }98 return;99 }100 !(typeof spec !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0;101 !!ReactElement.isValidElement(spec) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0;102 var proto = Constructor.prototype;103 var autoBindPairs = proto.__reactAutoBindPairs;104 if (spec.hasOwnProperty(MIXINS_KEY)) {105 RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);106 }107 for (var name in spec) {108 if (!spec.hasOwnProperty(name)) {109 continue;110 }111 if (name === MIXINS_KEY) {112 continue;113 }114 var property = spec[name];115 var isAlreadyDefined = proto.hasOwnProperty(name);116 validateMethodOverride(isAlreadyDefined, name);117 if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {118 RESERVED_SPEC_KEYS[name](Constructor, property);119 } else {120 var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);121 var isFunction = typeof property === 'function';122 var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;123 if (shouldAutoBind) {124 autoBindPairs.push(name, property);125 proto[name] = property;126 } else {127 if (isAlreadyDefined) {128 var specPolicy = ReactClassInterface[name];129 !(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0;130 if (specPolicy === 'DEFINE_MANY_MERGED') {131 proto[name] = createMergedResultFunction(proto[name], property);132 } else if (specPolicy === 'DEFINE_MANY') {133 proto[name] = createChainedFunction(proto[name], property);134 }135 } else {136 proto[name] = property;137 if (process.env.NODE_ENV !== 'production') {138 if (typeof property === 'function' && spec.displayName) {139 proto[name].displayName = spec.displayName + '_' + name;140 }141 }142 }143 }144 }145 }146}147function mixStaticSpecIntoComponent(Constructor, statics) {148 if (!statics) {149 return;150 }151 for (var name in statics) {152 var property = statics[name];153 if (!statics.hasOwnProperty(name)) {154 continue;155 }156 var isReserved = name in RESERVED_SPEC_KEYS;157 !!isReserved ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.', name) : _prodInvariant('78', name) : void 0;158 var isInherited = name in Constructor;159 !!isInherited ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('79', name) : void 0;160 Constructor[name] = property;161 }162}163function mergeIntoWithNoDuplicateKeys(one, two) {164 !(one && two && typeof one === 'object' && typeof two === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0;165 for (var key in two) {166 if (two.hasOwnProperty(key)) {167 !(one[key] === undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.', key) : _prodInvariant('81', key) : void 0;168 one[key] = two[key];169 }170 }171 return one;172}173function createMergedResultFunction(one, two) {174 return function mergedResult() {175 var a = one.apply(this, arguments);176 var b = two.apply(this, arguments);177 if (a == null) {178 return b;179 } else if (b == null) {180 return a;181 }182 var c = {};183 mergeIntoWithNoDuplicateKeys(c, a);184 mergeIntoWithNoDuplicateKeys(c, b);185 return c;186 };187}...
b572cfReactClass.js
Source: b572cfReactClass.js
...56 Constructor.contextTypes = _assign({}, Constructor.contextTypes, _contextTypes);57 },58 getDefaultProps: function getDefaultProps(Constructor, _getDefaultProps) {59 if (Constructor.getDefaultProps) {60 Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, _getDefaultProps);61 } else {62 Constructor.getDefaultProps = _getDefaultProps;63 }64 },65 propTypes: function propTypes(Constructor, _propTypes) {66 if (process.env.NODE_ENV !== 'production') {67 validateTypeDef(Constructor, _propTypes, 'prop');68 }69 Constructor.propTypes = _assign({}, Constructor.propTypes, _propTypes);70 },71 statics: function statics(Constructor, _statics) {72 mixStaticSpecIntoComponent(Constructor, _statics);73 },74 autobind: function autobind() {} };75function validateTypeDef(Constructor, typeDef, location) {76 for (var propName in typeDef) {77 if (typeDef.hasOwnProperty(propName)) {78 process.env.NODE_ENV !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0;79 }80 }81}82function validateMethodOverride(isAlreadyDefined, name) {83 var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;84 if (ReactClassMixin.hasOwnProperty(name)) {85 !(specPolicy === 'OVERRIDE_BASE') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.', name) : _prodInvariant('73', name) : void 0;86 }87 if (isAlreadyDefined) {88 !(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('74', name) : void 0;89 }90}91function mixSpecIntoComponent(Constructor, spec) {92 if (!spec) {93 if (process.env.NODE_ENV !== 'production') {94 var typeofSpec = typeof spec;95 var isMixinValid = typeofSpec === 'object' && spec !== null;96 process.env.NODE_ENV !== 'production' ? warning(isMixinValid, '%s: You\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0;97 }98 return;99 }100 !(typeof spec !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0;101 !!ReactElement.isValidElement(spec) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0;102 var proto = Constructor.prototype;103 var autoBindPairs = proto.__reactAutoBindPairs;104 if (spec.hasOwnProperty(MIXINS_KEY)) {105 RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);106 }107 for (var name in spec) {108 if (!spec.hasOwnProperty(name)) {109 continue;110 }111 if (name === MIXINS_KEY) {112 continue;113 }114 var property = spec[name];115 var isAlreadyDefined = proto.hasOwnProperty(name);116 validateMethodOverride(isAlreadyDefined, name);117 if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {118 RESERVED_SPEC_KEYS[name](Constructor, property);119 } else {120 var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);121 var isFunction = typeof property === 'function';122 var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;123 if (shouldAutoBind) {124 autoBindPairs.push(name, property);125 proto[name] = property;126 } else {127 if (isAlreadyDefined) {128 var specPolicy = ReactClassInterface[name];129 !(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0;130 if (specPolicy === 'DEFINE_MANY_MERGED') {131 proto[name] = createMergedResultFunction(proto[name], property);132 } else if (specPolicy === 'DEFINE_MANY') {133 proto[name] = createChainedFunction(proto[name], property);134 }135 } else {136 proto[name] = property;137 if (process.env.NODE_ENV !== 'production') {138 if (typeof property === 'function' && spec.displayName) {139 proto[name].displayName = spec.displayName + '_' + name;140 }141 }142 }143 }144 }145 }146}147function mixStaticSpecIntoComponent(Constructor, statics) {148 if (!statics) {149 return;150 }151 for (var name in statics) {152 var property = statics[name];153 if (!statics.hasOwnProperty(name)) {154 continue;155 }156 var isReserved = name in RESERVED_SPEC_KEYS;157 !!isReserved ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.', name) : _prodInvariant('78', name) : void 0;158 var isInherited = name in Constructor;159 !!isInherited ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('79', name) : void 0;160 Constructor[name] = property;161 }162}163function mergeIntoWithNoDuplicateKeys(one, two) {164 !(one && two && typeof one === 'object' && typeof two === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0;165 for (var key in two) {166 if (two.hasOwnProperty(key)) {167 !(one[key] === undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.', key) : _prodInvariant('81', key) : void 0;168 one[key] = two[key];169 }170 }171 return one;172}173function createMergedResultFunction(one, two) {174 return function mergedResult() {175 var a = one.apply(this, arguments);176 var b = two.apply(this, arguments);177 if (a == null) {178 return b;179 } else if (b == null) {180 return a;181 }182 var c = {};183 mergeIntoWithNoDuplicateKeys(c, a);184 mergeIntoWithNoDuplicateKeys(c, b);185 return c;186 };187}...
d34bd1ReactClass.js
Source: d34bd1ReactClass.js
...55 Constructor.contextTypes = _assign({}, Constructor.contextTypes, _contextTypes);56 },57 getDefaultProps: function getDefaultProps(Constructor, _getDefaultProps) {58 if (Constructor.getDefaultProps) {59 Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, _getDefaultProps);60 } else {61 Constructor.getDefaultProps = _getDefaultProps;62 }63 },64 propTypes: function propTypes(Constructor, _propTypes) {65 if (process.env.NODE_ENV !== 'production') {66 validateTypeDef(Constructor, _propTypes, 'prop');67 }68 Constructor.propTypes = _assign({}, Constructor.propTypes, _propTypes);69 },70 statics: function statics(Constructor, _statics) {71 mixStaticSpecIntoComponent(Constructor, _statics);72 },73 autobind: function autobind() {} };74function validateTypeDef(Constructor, typeDef, location) {75 for (var propName in typeDef) {76 if (typeDef.hasOwnProperty(propName)) {77 process.env.NODE_ENV !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', location, propName) : void 0;78 }79 }80}81function validateMethodOverride(isAlreadyDefined, name) {82 var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;83 if (ReactClassMixin.hasOwnProperty(name)) {84 !(specPolicy === 'OVERRIDE_BASE') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.', name) : _prodInvariant('73', name) : void 0;85 }86 if (isAlreadyDefined) {87 !(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('74', name) : void 0;88 }89}90function mixSpecIntoComponent(Constructor, spec) {91 if (!spec) {92 if (process.env.NODE_ENV !== 'production') {93 var typeofSpec = typeof spec;94 var isMixinValid = typeofSpec === 'object' && spec !== null;95 process.env.NODE_ENV !== 'production' ? warning(isMixinValid, "%s: You're attempting to include a mixin that is either null " + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0;96 }97 return;98 }99 !(typeof spec !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0;100 !!ReactElement.isValidElement(spec) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0;101 var proto = Constructor.prototype;102 var autoBindPairs = proto.__reactAutoBindPairs;103 if (spec.hasOwnProperty(MIXINS_KEY)) {104 RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);105 }106 for (var name in spec) {107 if (!spec.hasOwnProperty(name)) {108 continue;109 }110 if (name === MIXINS_KEY) {111 continue;112 }113 var property = spec[name];114 var isAlreadyDefined = proto.hasOwnProperty(name);115 validateMethodOverride(isAlreadyDefined, name);116 if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {117 RESERVED_SPEC_KEYS[name](Constructor, property);118 } else {119 var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);120 var isFunction = typeof property === 'function';121 var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;122 if (shouldAutoBind) {123 autoBindPairs.push(name, property);124 proto[name] = property;125 } else {126 if (isAlreadyDefined) {127 var specPolicy = ReactClassInterface[name];128 !(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0;129 if (specPolicy === 'DEFINE_MANY_MERGED') {130 proto[name] = createMergedResultFunction(proto[name], property);131 } else if (specPolicy === 'DEFINE_MANY') {132 proto[name] = createChainedFunction(proto[name], property);133 }134 } else {135 proto[name] = property;136 if (process.env.NODE_ENV !== 'production') {137 if (typeof property === 'function' && spec.displayName) {138 proto[name].displayName = spec.displayName + '_' + name;139 }140 }141 }142 }143 }144 }145}146function mixStaticSpecIntoComponent(Constructor, statics) {147 if (!statics) {148 return;149 }150 for (var name in statics) {151 var property = statics[name];152 if (!statics.hasOwnProperty(name)) {153 continue;154 }155 var isReserved = name in RESERVED_SPEC_KEYS;156 !!isReserved ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.', name) : _prodInvariant('78', name) : void 0;157 var isInherited = name in Constructor;158 !!isInherited ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('79', name) : void 0;159 Constructor[name] = property;160 }161}162function mergeIntoWithNoDuplicateKeys(one, two) {163 !(one && two && typeof one === 'object' && typeof two === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0;164 for (var key in two) {165 if (two.hasOwnProperty(key)) {166 !(one[key] === undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.', key) : _prodInvariant('81', key) : void 0;167 one[key] = two[key];168 }169 }170 return one;171}172function createMergedResultFunction(one, two) {173 return function mergedResult() {174 var a = one.apply(this, arguments);175 var b = two.apply(this, arguments);176 if (a == null) {177 return b;178 } else if (b == null) {179 return a;180 }181 var c = {};182 mergeIntoWithNoDuplicateKeys(c, a);183 mergeIntoWithNoDuplicateKeys(c, b);184 return c;185 };186}...
c1d7cbReactClass.js
Source: c1d7cbReactClass.js
...55Constructor.contextTypes=_assign({},Constructor.contextTypes,_contextTypes);56},57getDefaultProps:function getDefaultProps(Constructor,_getDefaultProps){58if(Constructor.getDefaultProps){59Constructor.getDefaultProps=createMergedResultFunction(Constructor.getDefaultProps,_getDefaultProps);60}else{61Constructor.getDefaultProps=_getDefaultProps;62}63},64propTypes:function propTypes(Constructor,_propTypes){65if(process.env.NODE_ENV!=='production'){66validateTypeDef(Constructor,_propTypes,'prop');67}68Constructor.propTypes=_assign({},Constructor.propTypes,_propTypes);69},70statics:function statics(Constructor,_statics){71mixStaticSpecIntoComponent(Constructor,_statics);72},73autobind:function autobind(){}};74function validateTypeDef(Constructor,typeDef,location){75for(var propName in typeDef){76if(typeDef.hasOwnProperty(propName)){77process.env.NODE_ENV!=='production'?warning(typeof typeDef[propName]==='function','%s: %s type `%s` is invalid; it must be a function, usually from '+'React.PropTypes.',Constructor.displayName||'ReactClass',ReactPropTypeLocationNames[location],propName):void 0;78}79}80}81function validateMethodOverride(isAlreadyDefined,name){82var specPolicy=ReactClassInterface.hasOwnProperty(name)?ReactClassInterface[name]:null;83if(ReactClassMixin.hasOwnProperty(name)){84!(specPolicy==='OVERRIDE_BASE')?process.env.NODE_ENV!=='production'?invariant(false,'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.',name):_prodInvariant('73',name):void 0;85}86if(isAlreadyDefined){87!(specPolicy==='DEFINE_MANY'||specPolicy==='DEFINE_MANY_MERGED')?process.env.NODE_ENV!=='production'?invariant(false,'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.',name):_prodInvariant('74',name):void 0;88}89}90function mixSpecIntoComponent(Constructor,spec){91if(!spec){92if(process.env.NODE_ENV!=='production'){93var typeofSpec=typeof spec;94var isMixinValid=typeofSpec==='object'&&spec!==null;95process.env.NODE_ENV!=='production'?warning(isMixinValid,'%s: You\'re attempting to include a mixin that is either null '+'or not an object. Check the mixins included by the component, '+'as well as any mixins they include themselves. '+'Expected object but got %s.',Constructor.displayName||'ReactClass',spec===null?null:typeofSpec):void 0;96}97return;98}99!(typeof spec!=='function')?process.env.NODE_ENV!=='production'?invariant(false,'ReactClass: You\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.'):_prodInvariant('75'):void 0;100!!ReactElement.isValidElement(spec)?process.env.NODE_ENV!=='production'?invariant(false,'ReactClass: You\'re attempting to use a component as a mixin. Instead, just use a regular object.'):_prodInvariant('76'):void 0;101var proto=Constructor.prototype;102var autoBindPairs=proto.__reactAutoBindPairs;103if(spec.hasOwnProperty(MIXINS_KEY)){104RESERVED_SPEC_KEYS.mixins(Constructor,spec.mixins);105}106for(var name in spec){107if(!spec.hasOwnProperty(name)){108continue;109}110if(name===MIXINS_KEY){111continue;112}113var property=spec[name];114var isAlreadyDefined=proto.hasOwnProperty(name);115validateMethodOverride(isAlreadyDefined,name);116if(RESERVED_SPEC_KEYS.hasOwnProperty(name)){117RESERVED_SPEC_KEYS[name](Constructor,property);118}else{119var isReactClassMethod=ReactClassInterface.hasOwnProperty(name);120var isFunction=typeof property==='function';121var shouldAutoBind=isFunction&&!isReactClassMethod&&!isAlreadyDefined&&spec.autobind!==false;122if(shouldAutoBind){123autoBindPairs.push(name,property);124proto[name]=property;125}else{126if(isAlreadyDefined){127var specPolicy=ReactClassInterface[name];128!(isReactClassMethod&&(specPolicy==='DEFINE_MANY_MERGED'||specPolicy==='DEFINE_MANY'))?process.env.NODE_ENV!=='production'?invariant(false,'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.',specPolicy,name):_prodInvariant('77',specPolicy,name):void 0;129if(specPolicy==='DEFINE_MANY_MERGED'){130proto[name]=createMergedResultFunction(proto[name],property);131}else if(specPolicy==='DEFINE_MANY'){132proto[name]=createChainedFunction(proto[name],property);133}134}else{135proto[name]=property;136if(process.env.NODE_ENV!=='production'){137if(typeof property==='function'&&spec.displayName){138proto[name].displayName=spec.displayName+'_'+name;139}140}141}142}143}144}145}146function mixStaticSpecIntoComponent(Constructor,statics){147if(!statics){148return;149}150for(var name in statics){151var property=statics[name];152if(!statics.hasOwnProperty(name)){153continue;154}155var isReserved=name in RESERVED_SPEC_KEYS;156!!isReserved?process.env.NODE_ENV!=='production'?invariant(false,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',name):_prodInvariant('78',name):void 0;157var isInherited=name in Constructor;158!!isInherited?process.env.NODE_ENV!=='production'?invariant(false,'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.',name):_prodInvariant('79',name):void 0;159Constructor[name]=property;160}161}162function mergeIntoWithNoDuplicateKeys(one,two){163!(one&&two&&typeof one==='object'&&typeof two==='object')?process.env.NODE_ENV!=='production'?invariant(false,'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'):_prodInvariant('80'):void 0;164for(var key in two){165if(two.hasOwnProperty(key)){166!(one[key]===undefined)?process.env.NODE_ENV!=='production'?invariant(false,'mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.',key):_prodInvariant('81',key):void 0;167one[key]=two[key];168}169}170return one;171}172function createMergedResultFunction(one,two){173return function mergedResult(){174var a=one.apply(this,arguments);175var b=two.apply(this,arguments);176if(a==null){177return b;178}else if(b==null){179return a;180}181var c={};182mergeIntoWithNoDuplicateKeys(c,a);183mergeIntoWithNoDuplicateKeys(c,b);184return c;185};186}...
04df26ReactClass.js
Source: 04df26ReactClass.js
...55Constructor.contextTypes=_assign({},Constructor.contextTypes,_contextTypes);56},57getDefaultProps:function getDefaultProps(Constructor,_getDefaultProps){58if(Constructor.getDefaultProps){59Constructor.getDefaultProps=createMergedResultFunction(Constructor.getDefaultProps,_getDefaultProps);60}else{61Constructor.getDefaultProps=_getDefaultProps;62}63},64propTypes:function propTypes(Constructor,_propTypes){65if(process.env.NODE_ENV!=='production'){66validateTypeDef(Constructor,_propTypes,'prop');67}68Constructor.propTypes=_assign({},Constructor.propTypes,_propTypes);69},70statics:function statics(Constructor,_statics){71mixStaticSpecIntoComponent(Constructor,_statics);72},73autobind:function autobind(){}};74function validateTypeDef(Constructor,typeDef,location){75for(var propName in typeDef){76if(typeDef.hasOwnProperty(propName)){77process.env.NODE_ENV!=='production'?warning(typeof typeDef[propName]==='function','%s: %s type `%s` is invalid; it must be a function, usually from '+'React.PropTypes.',Constructor.displayName||'ReactClass',ReactPropTypeLocationNames[location],propName):void 0;78}79}80}81function validateMethodOverride(isAlreadyDefined,name){82var specPolicy=ReactClassInterface.hasOwnProperty(name)?ReactClassInterface[name]:null;83if(ReactClassMixin.hasOwnProperty(name)){84!(specPolicy==='OVERRIDE_BASE')?process.env.NODE_ENV!=='production'?invariant(false,'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.',name):_prodInvariant('73',name):void 0;85}86if(isAlreadyDefined){87!(specPolicy==='DEFINE_MANY'||specPolicy==='DEFINE_MANY_MERGED')?process.env.NODE_ENV!=='production'?invariant(false,'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.',name):_prodInvariant('74',name):void 0;88}89}90function mixSpecIntoComponent(Constructor,spec){91if(!spec){92if(process.env.NODE_ENV!=='production'){93var typeofSpec=typeof spec;94var isMixinValid=typeofSpec==='object'&&spec!==null;95process.env.NODE_ENV!=='production'?warning(isMixinValid,'%s: You\'re attempting to include a mixin that is either null '+'or not an object. Check the mixins included by the component, '+'as well as any mixins they include themselves. '+'Expected object but got %s.',Constructor.displayName||'ReactClass',spec===null?null:typeofSpec):void 0;96}97return;98}99!(typeof spec!=='function')?process.env.NODE_ENV!=='production'?invariant(false,'ReactClass: You\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.'):_prodInvariant('75'):void 0;100!!ReactElement.isValidElement(spec)?process.env.NODE_ENV!=='production'?invariant(false,'ReactClass: You\'re attempting to use a component as a mixin. Instead, just use a regular object.'):_prodInvariant('76'):void 0;101var proto=Constructor.prototype;102var autoBindPairs=proto.__reactAutoBindPairs;103if(spec.hasOwnProperty(MIXINS_KEY)){104RESERVED_SPEC_KEYS.mixins(Constructor,spec.mixins);105}106for(var name in spec){107if(!spec.hasOwnProperty(name)){108continue;109}110if(name===MIXINS_KEY){111continue;112}113var property=spec[name];114var isAlreadyDefined=proto.hasOwnProperty(name);115validateMethodOverride(isAlreadyDefined,name);116if(RESERVED_SPEC_KEYS.hasOwnProperty(name)){117RESERVED_SPEC_KEYS[name](Constructor,property);118}else{119var isReactClassMethod=ReactClassInterface.hasOwnProperty(name);120var isFunction=typeof property==='function';121var shouldAutoBind=isFunction&&!isReactClassMethod&&!isAlreadyDefined&&spec.autobind!==false;122if(shouldAutoBind){123autoBindPairs.push(name,property);124proto[name]=property;125}else{126if(isAlreadyDefined){127var specPolicy=ReactClassInterface[name];128!(isReactClassMethod&&(specPolicy==='DEFINE_MANY_MERGED'||specPolicy==='DEFINE_MANY'))?process.env.NODE_ENV!=='production'?invariant(false,'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.',specPolicy,name):_prodInvariant('77',specPolicy,name):void 0;129if(specPolicy==='DEFINE_MANY_MERGED'){130proto[name]=createMergedResultFunction(proto[name],property);131}else if(specPolicy==='DEFINE_MANY'){132proto[name]=createChainedFunction(proto[name],property);133}134}else{135proto[name]=property;136if(process.env.NODE_ENV!=='production'){137if(typeof property==='function'&&spec.displayName){138proto[name].displayName=spec.displayName+'_'+name;139}140}141}142}143}144}145}146function mixStaticSpecIntoComponent(Constructor,statics){147if(!statics){148return;149}150for(var name in statics){151var property=statics[name];152if(!statics.hasOwnProperty(name)){153continue;154}155var isReserved=name in RESERVED_SPEC_KEYS;156!!isReserved?process.env.NODE_ENV!=='production'?invariant(false,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',name):_prodInvariant('78',name):void 0;157var isInherited=name in Constructor;158!!isInherited?process.env.NODE_ENV!=='production'?invariant(false,'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.',name):_prodInvariant('79',name):void 0;159Constructor[name]=property;160}161}162function mergeIntoWithNoDuplicateKeys(one,two){163!(one&&two&&typeof one==='object'&&typeof two==='object')?process.env.NODE_ENV!=='production'?invariant(false,'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'):_prodInvariant('80'):void 0;164for(var key in two){165if(two.hasOwnProperty(key)){166!(one[key]===undefined)?process.env.NODE_ENV!=='production'?invariant(false,'mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.',key):_prodInvariant('81',key):void 0;167one[key]=two[key];168}169}170return one;171}172function createMergedResultFunction(one,two){173return function mergedResult(){174var a=one.apply(this,arguments);175var b=two.apply(this,arguments);176if(a==null){177return b;178}else if(b==null){179return a;180}181var c={};182mergeIntoWithNoDuplicateKeys(c,a);183mergeIntoWithNoDuplicateKeys(c,b);184return c;185};186}...
createMergedResultFunction.js
Source: createMergedResultFunction.js
...5 * @param {function} two Function to invoke second. 第äºä¸ªè°ç¨çæ¹æ³6 * @return {function} Function that invokes the two argument functions. è¿åè°ç¨ä¼ å
¥ç两个å½æ°çå½æ°7 * @private8 */9function createMergedResultFunction(one, two) {10 return function mergedResult() {11 var a = one.apply(this, arguments);12 var b = two.apply(this, arguments);13 if (a == null) {14 return b;15 } else if (b == null) {16 return a;17 }18 var c = {};19 mergeIntoWithNoDuplicateKeys(c, a);20 mergeIntoWithNoDuplicateKeys(c, b);21 return c;22 };23}
Using AI Code Generation
1const { createMergedResultFunction } = require('@playwright/test');2const { chromium } = require('playwright');3(async () => {4 const browser = await chromium.launch();5 const page = await browser.newPage();6 const mergedResultFunction = createMergedResultFunction({7 testInfo: {8 config: {},9 parameters: {},10 annotations: {},11 },12 startTime: new Date(),13 endTime: new Date(),14 {15 },16 });17 await page.evaluate(mergedResultFunction);18 await browser.close();19})();
Using AI Code Generation
1const { createMergedResultFunction } = require('@playwright/test/lib/test');2const { expect } = require('@playwright/test');3const { test } = require('@playwright/test');4const { devices } = require('@playwright/test');5const iPhone11 = devices['iPhone 11 Pro'];6const iPhone8 = devices['iPhone 8'];7const iPadPro = devices['iPad Pro (11-inch)'];8const iPadMini = devices['iPad mini'];9test.use({ storageState: 'state.json' });10test.use({ ...iPhone11, ...iPadPro });11test('iPhone Test', async ({ page }) => {12 const title = page.locator('.navbar__inner .navbar__title');13 await expect(title).toHaveText('Playwright');14});15test('iPad Test', async ({ page }) => {16 const title = page.locator('.navbar__inner .navbar__title');17 await expect(title).toHaveText('Playwright');18});19test('iPhone 8 Test', async ({ page }) => {20 const title = page.locator('.navbar__inner .navbar__title');21 await expect(title).toHaveText('Playwright');22});23test('iPad Mini Test', async ({ page }) => {24 const title = page.locator('.navbar__inner .navbar__title');25 await expect(title).toHaveText('Playwright');26});27test.describe('Test Suite', () => {28 test.use({ ...iPhone8, ...iPadMini });29 test('iPhone Test', async ({ page }) => {30 const title = page.locator('.navbar__inner .navbar__title');31 await expect(title).toHaveText('Playwright');32 });33 test('iPad Test', async ({ page }) => {34 const title = page.locator('.navbar__inner .navbar__title');35 await expect(title).toHaveText('Playwright');36 });37});38test.describe('Test Suite 2', () => {39 test.use({ ...iPhone11, ...iPadPro });40 test('iPhone Test', async ({ page }) => {
Using AI Code Generation
1const { createMergedResultFunction } = require('playwright/lib/test/reporter');2const { test } = require('@playwright/test');3test('sample test', async ({ page }) => {4 await page.click('text=Get started');5 await page.click('text=Docs');6 await page.click('text=API');7 await page.click('text=Test');8 await page.click('text=createMergedResultFunction');9 await page.waitForSelector('text=Create a merged result function for a test');10});11const { createMergedResultFunction } = require('playwright/lib/test/reporter');12const { test } = require('@playwright/test');13const { createTestStepReporter } = require('./test-step-reporter');14test.use({ video: 'retain-on-failure' });15test.describe('sample test suite', () => {16 test.beforeEach(async ({ page }) => {17 });18 test('sample test', async ({ page }) => {19 await page.click('text=Get started');20 await page.click('text=Docs');21 await page.click('text=API');22 await page.click('text=Test');23 await page.click('text=createMergedResultFunction');24 await page.waitForSelector('text=Create a merged result function for a test');25 });26});27const { createMergedResultFunction } = require('playwright/lib/test/reporter');28const { test } = require('@playwright/test');29test.use({ video: 'retain-on-failure' });30const createTestStepReporter = (testName) => {31 let step = 0;32 return createMergedResultFunction(33 (base, result) => {34 base.step = step++;35 return base;36 },37 );38};39test.describe('sample test suite', () => {40 test.beforeEach(async ({ page }) => {41 });42 test('sample test', async ({ page }) => {43 const testStepReporter = createTestStepReporter('sample test');44 await page.click('text=Get started');45 await testStepReporter('click on Get started');46 await page.click('text=Docs');47 await testStepReporter('click on Docs
Using AI Code Generation
1const { createMergedResultFunction } = require('playwright/lib/test/fixtures');2const { test } = require('@playwright/test');3const { expect } = require('chai');4test('test', async ({ page }) => {5 const mergeResults = createMergedResultFunction();6 const result = await page.evaluate(mergeResults);7 expect(result).to.equal(10);8});
Using AI Code Generation
1const { createMergedResultFunction } = require('playwright-core/lib/server/trace/recorder');2const mergeResults = createMergedResultFunction(require('./trace1.json'), require('./trace2.json'));3console.log(JSON.stringify(mergeResults(), null, 2));4{5 {6 "args": {7 "data": {8 }9 }10 }11}12{13 {14 "args": {15 "data": {16 }17 }18 }19}20{21 {22 "args": {23 "data": {24 }25 }26 }27}28const fs = require('fs');29const browser = await firefox.launch({ headless: false });30const context = await browser.newContext();31const page = await context.newPage();32await page.tracing.start({ screenshots: true, snapshots: true });
Using AI Code Generation
1const { createMergedResultFunction } = require('playwright/lib/test/results');2const { test } = require('playwright-test');3const { chromium } = require('playwright');4test('Playwright test', async ({ page }) => {5 const title = page.locator('text=Test Runner');6 const titleText = await title.innerText();7 expect(titleText).toBe('Test Runner');8});9test.use({ browserName: 'chromium' });10test('Playwright test', async ({ page }) => {11 const title = page.locator('text=Test Runner');12 const titleText = await title.innerText();13 expect(titleText).toBe('Test Runner');14});15test.use({ browserName: 'chromium' });16test('Playwright test', async ({ page }) => {17 const title = page.locator('text=Test Runner');18 const titleText = await title.innerText();19 expect(titleText).toBe('Test Runner');20});21test.use({ browserName: 'chromium' });22test('Playwright test', async ({ page }) => {23 const title = page.locator('text=Test Runner');24 const titleText = await title.innerText();25 expect(titleText).toBe('Test Runner');26});27test('Playwright test', async ({ page }) => {28 const title = page.locator('text=Test Runner');29 const titleText = await title.innerText();30 expect(titleText).toBe('Test Runner');31});32test('Playwright test', async ({ page }) => {33 const title = page.locator('text=Test Runner');34 const titleText = await title.innerText();35 expect(titleText).toBe('Test Runner');36});37test('Playwright test', async ({ page }) => {38 const title = page.locator('text=Test Runner');39 const titleText = await title.innerText();40 expect(titleText).toBe('Test Runner');41});42test('Playwright test', async ({ page }) => {43 const title = page.locator('text=Test
Using AI Code Generation
1const { createMergedResultFunction } = require('@playwright/test');2const { test as base } = require('@playwright/test');3const test = base.extend({4 myResult: async ({}, use, testInfo) => {5 await use(await testInfo.result());6 },7});8const myResultFunction = createMergedResultFunction(async (results, testInfo) => {9 console.log(results);10});11test.use({ myResult: myResultFunction }).my('my test', async ({ myResult }) => {12 console.log(myResult);13});14I am trying to use the Playwright Internal API to create a custom result function. I am not using the Playwright test runner, and I am trying to use the createMergedResultFunction method to create a custom result function. I am using the createMergedResultFunction method as follows:However, when I run the test, I get the following error:TypeError: testInfo.result is not a functionat Object.myResult (C:\Users\user\myproject\test.js:8:30)at Object.use (C:\Users\user\myproject15ode_modules\@playwright\test\lib\test\test.js:49:30)at Object.my (C:\Users\user\myproject16ode_modules\@playwright\test\lib\test\test.js:68:14)at Object.<anonymous> (C:\Users\user\myproject\test.js:19:5)at Module._compile (internal/modules/cjs/loader.js:1063:30)at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)at Module.load (internal/modules/cjs/loader.js:928:32)at Function.Module._load (internal/modules/cjs/loader.js:769:14)at Module.require (internal/modules/cjs/loader.js:952:19)at require (internal/modules/cjs/helpers.js:88:18)I have tried to create a custom test method as follows:However, I get the following error when I run the test:TypeError: testInfo.result is not a functionat Object
Jest + Playwright - Test callbacks of event-based DOM library
firefox browser does not start in playwright
Is it possible to get the selector from a locator object in playwright?
How to run a list of test suites in a single file concurrently in jest?
Running Playwright in Azure Function
firefox browser does not start in playwright
This question is quite close to a "need more focus" question. But let's try to give it some focus:
Does Playwright has access to the cPicker object on the page? Does it has access to the window object?
Yes, you can access both cPicker and the window object inside an evaluate call.
Should I trigger the events from the HTML file itself, and in the callbacks, print in the DOM the result, in some dummy-element, and then infer from that dummy element text that the callbacks fired?
Exactly, or you can assign values to a javascript variable:
const cPicker = new ColorPicker({
onClickOutside(e){
},
onInput(color){
window['color'] = color;
},
onChange(color){
window['result'] = color;
}
})
And then
it('Should call all callbacks with correct arguments', async() => {
await page.goto(`http://localhost:5000/tests/visual/basic.html`, {waitUntil:'load'})
// Wait until the next frame
await page.evaluate(() => new Promise(requestAnimationFrame))
// Act
// Assert
const result = await page.evaluate(() => window['color']);
// Check the value
})
Check out the latest blogs from LambdaTest on this topic:
Native apps are developed specifically for one platform. Hence they are fast and deliver superior performance. They can be downloaded from various app stores and are not accessible through browsers.
One of the essential parts when performing automated UI testing, whether using Selenium or another framework, is identifying the correct web elements the tests will interact with. However, if the web elements are not located correctly, you might get NoSuchElementException in Selenium. This would cause a false negative result because we won’t get to the actual functionality check. Instead, our test will fail simply because it failed to interact with the correct element.
Smartphones have changed the way humans interact with technology. Be it travel, fitness, lifestyle, video games, or even services, it’s all just a few touches away (quite literally so). We only need to look at the growing throngs of smartphone or tablet users vs. desktop users to grasp this reality.
As part of one of my consulting efforts, I worked with a mid-sized company that was looking to move toward a more agile manner of developing software. As with any shift in work style, there is some bewilderment and, for some, considerable anxiety. People are being challenged to leave their comfort zones and embrace a continuously changing, dynamic working environment. And, dare I say it, testing may be the most ‘disturbed’ of the software roles in agile development.
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!