Can't clone objects created within iframes.
juliofarah opened this issue · 3 comments
While testing a tool that uses klona/lite
, I realized the library did not clone objects created within iframes.
There's a bigger discussion here about how prototypes are different for similar objects when created in different iframes (or within an iframe versus the top page).
When I create an object within an iframe:
this snippet https://github.com/lukeed/klona/blob/master/src/lite.js#L7-L13 is executed, given typeof x.constructor === 'function'
and not object
when the object is created within an iframe.
Line 10 though checks if the property already exists on the temporary object, which is empty, ignoring the property I'm trying to clone.
I got around the problem by switching from klona/lite
to klona/full
as the latter doesn't include that constructor check, but I'd love to switch back to shave those extra few bites off of my final bundle
Shouldn’t https://github.com/lukeed/klona/blob/master/src/index.js#L10 and https://github.com/lukeed/klona/blob/master/src/lite.js#L10 always check whether x.hasOwnProperty(k)
instead of tmp.hasOwnProperty(k)
?
Currently cloning class objects always gives empty objects iinm!
Shouldn’t https://github.com/lukeed/klona/blob/master/src/index.js#L10 and https://github.com/lukeed/klona/blob/master/src/lite.js#L10 always check whether
x.hasOwnProperty(k)
instead oftmp.hasOwnProperty(k)
?
Currently cloning class objects always gives empty objects iinm!
Having this issue here too. Im using klona/full as a temporary fix.
@lukeed hasOwnProperty is really necessary?
I believe this is now solved by #31 (thanks @tripodsgames) which includes @bodograumann's suggestion. If someone can verify that this is solved in the latest release (soon to be 2.0.5
) that'd be much appreciated 🙇