67 lines
2.1 KiB
JavaScript
67 lines
2.1 KiB
JavaScript
// This regex will have fast negatives meaning valid identifiers may not pass
|
|
// this test. However this is only used during static generation to provide hints
|
|
// about why a page bailed out of some or all prerendering and we can use bracket notation
|
|
// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`
|
|
// even if this would have been fine too `searchParams.ಠ_ಠ`
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
describeHasCheckingStringProperty: null,
|
|
describeStringPropertyAccess: null,
|
|
wellKnownProperties: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
describeHasCheckingStringProperty: function() {
|
|
return describeHasCheckingStringProperty;
|
|
},
|
|
describeStringPropertyAccess: function() {
|
|
return describeStringPropertyAccess;
|
|
},
|
|
wellKnownProperties: function() {
|
|
return wellKnownProperties;
|
|
}
|
|
});
|
|
const isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
function describeStringPropertyAccess(target, prop) {
|
|
if (isDefinitelyAValidIdentifier.test(prop)) {
|
|
return "`" + target + "." + prop + "`";
|
|
}
|
|
return "`" + target + "[" + JSON.stringify(prop) + "]`";
|
|
}
|
|
function describeHasCheckingStringProperty(target, prop) {
|
|
const stringifiedProp = JSON.stringify(prop);
|
|
return "`Reflect.has(" + target + ", " + stringifiedProp + ")`, `" + stringifiedProp + " in " + target + "`, or similar";
|
|
}
|
|
const wellKnownProperties = new Set([
|
|
'hasOwnProperty',
|
|
'isPrototypeOf',
|
|
'propertyIsEnumerable',
|
|
'toString',
|
|
'valueOf',
|
|
'toLocaleString',
|
|
// Promise prototype
|
|
// fallthrough
|
|
'then',
|
|
'catch',
|
|
'finally',
|
|
// React Promise extension
|
|
// fallthrough
|
|
'status',
|
|
// React introspection
|
|
'displayName',
|
|
// Common tested properties
|
|
// fallthrough
|
|
'toJSON',
|
|
'$$typeof',
|
|
'__esModule'
|
|
]);
|
|
|
|
//# sourceMappingURL=reflect-utils.js.map
|