diff options
author | 2022-06-09 05:09:00 -0700 | |
---|---|---|
committer | 2022-06-09 05:09:00 -0700 | |
commit | 78bf1150ff0e8eeda26015a699c8c142a3f87104 (patch) | |
tree | d618941e636e4e4a3527259ecdadd3bc584b5294 /src/runtime.js | |
parent | 7a20836a1b9118d4309c5d7b716b83ac798741c7 (diff) | |
download | bun-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.js | 24 |
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); +}; |