aboutsummaryrefslogtreecommitdiff
path: root/src/runtime.js
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-06-09 05:09:00 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-06-09 05:09:00 -0700
commit78bf1150ff0e8eeda26015a699c8c142a3f87104 (patch)
treed618941e636e4e4a3527259ecdadd3bc584b5294 /src/runtime.js
parent7a20836a1b9118d4309c5d7b716b83ac798741c7 (diff)
downloadbun-78bf1150ff0e8eeda26015a699c8c142a3f87104.tar.gz
bun-78bf1150ff0e8eeda26015a699c8c142a3f87104.tar.zst
bun-78bf1150ff0e8eeda26015a699c8c142a3f87104.zip
Fix defaultProps with JSX optimization
Diffstat (limited to 'src/runtime.js')
-rw-r--r--src/runtime.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/runtime.js b/src/runtime.js
index 485cdc6f6..efb0265e4 100644
--- a/src/runtime.js
+++ b/src/runtime.js
@@ -1,5 +1,6 @@
var $$mod$ = Symbol.for;
var __create = Object.create;
+var __descs = Object.getOwnPropertyDescriptors;
var __defProp = Object.defineProperty;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
@@ -182,3 +183,26 @@ export var __reExport = (target, module, desc) => {
});
return target;
};
+
+function hasAnyProps(obj) {
+ for (let key in obj) return true;
+ return false;
+}
+
+function mergeDefaultProps(props, defaultProps) {
+ var result = __create(defaultProps, __descs(props));
+
+ for (let key in defaultProps) {
+ if (result[key] !== undefined) continue;
+
+ result[key] = defaultProps[key];
+ }
+ return result;
+}
+export var __merge = (props, defaultProps) => {
+ return !hasAnyProps(defaultProps)
+ ? props
+ : !hasAnyProps(props)
+ ? defaultProps
+ : mergeDefaultProps(props, defaultProps);
+};