How to get a 2x size layer

I try to create a document, and duplicate a layer to the new document. like this:

const { bounds } = layer;
const width = (bounds.right - bounds.left) * 2;
const height = (bounds.bottom - bounds.top) * 2;
const doc = await app.createDocument(width, height, ***);
const newLayer = await layer.duplicate(doc);
await newLayer.scale(({ _unit: 'percentUnit', _value: 200 }, { _unit: 'percentUnit', _value: 200 });

But there is something wrong.
Such as, dropShadow do not scale.
So I can not get the 2x png of the layer.

{
   "_obj": "scaleEffectsEvent",
   "scale": {
      "_unit": "percentUnit",
      "_value": 50
   }
}

Thank you simon.
Where can I find these descriptors from?

You can listen to all events, or way easier, just log it with Alchemist

Note: sometimes you might want to also scale the shape stroke/pattern which is not part of the layer effects.

Seems like stroke radius and stoke width won’t scale neither layer.scale nor batchPlaye with scaleEffectsEvent , my solution is setting those self by batchPlay with set.
I’m not sure Is there any better way