Skip to content

Commit 004bb3f

Browse files
committed
[scramjet/core] rewriter: replace old wrap postmessage with new syntax
1 parent 47fceef commit 004bb3f

File tree

4 files changed

+7
-28
lines changed

4 files changed

+7
-28
lines changed

packages/scramjet/packages/core/rewriter/js/src/changes.rs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,6 @@ pub enum JsChangeType<'alloc: 'data, 'data> {
5454
/// insert `$wrapPostMessage(`
5555
WrapPostMessageLeft,
5656

57-
/// insert `)`, or `)?.` if optional
58-
WrapPostMessageRight {
59-
optional: bool,
60-
},
6157
/// insert `$scramerr(ident);`
6258
ScramErrFn {
6359
ident: Atom<'data>,
@@ -242,13 +238,6 @@ impl<'alloc: 'data, 'data> Transform<'data> for JsChange<'alloc, 'data> {
242238
LL::insert(transforms![",", &cfg.tempunusedid, "=(", &steps, "0)"])
243239
}
244240
Ty::WrapPostMessageLeft => LL::insert(transforms![&cfg.wrappostmessagefn, "("]),
245-
Ty::WrapPostMessageRight { optional } => LL::replace(
246-
if optional {
247-
transforms![")?."]
248-
} else {
249-
transforms![")"]
250-
}
251-
),
252241
Ty::ScramErrFn { ident } => LL::insert(transforms!["$scramerr(", ident, ");"]),
253242
Ty::ScramitizeFn => LL::insert(transforms![" $scramitize("]),
254243
Ty::EvalRewriteFn => LL::insert(transforms![&cfg.rewritefn, "("]),

packages/scramjet/packages/core/rewriter/js/src/rewrite.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,7 @@ pub(crate) enum RewriteType<'alloc: 'data, 'data> {
2020
enclose: bool,
2121
},
2222
/// `wrapPostMessage(object)`
23-
WrapPostMessage {
24-
inner: Span,
25-
optional: bool,
26-
},
23+
WrapPostMessage,
2724

2825
/// `(cfg.importfn("cfg.base"))`
2926
ImportFn,
@@ -233,10 +230,8 @@ impl<'alloc: 'data, 'data> RewriteType<'alloc, 'data> {
233230
location_assigned
234231
}
235232
)],
236-
Self::WrapPostMessage { inner, optional } => smallvec![change!(span!(start), WrapPostMessageLeft), change!(
237-
inner,
238-
// ClosingParen { semi: false, replace: true }
239-
WrapPostMessageRight { optional }
233+
Self::WrapPostMessage => smallvec![change!(span!(start), WrapPostMessageLeft), change!(span!(end),
234+
ClosingParen { semi: false, replace: false}
240235
)],
241236
Self::SetRealmFn => smallvec![change!(span, SetRealmFn)],
242237
Self::ImportFn => smallvec![change!(span, ImportFn)],

packages/scramjet/packages/core/rewriter/js/src/visitor.rs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -479,14 +479,7 @@ where
479479
// however this code only exists because of recaptcha whatever
480480
// and it would slow down js execution a lot
481481
if s.property.name == "postMessage" && !matches!(&s.object, Expression::Super(_)) {
482-
// include the "postMessage" and the dot before it in the inner span
483-
// if `postMessage?.` remove the dot and the question mark
484-
let offset = if s.optional { 2 } else { 1 };
485-
486-
self.jschanges.add(rewrite!(s.span, WrapPostMessage {
487-
inner: Span::new(s.property.span.start - offset, s.property.span.end),
488-
optional: s.optional,
489-
}));
482+
self.jschanges.add(rewrite!(s.object.span(), WrapPostMessage));
490483

491484
walk::walk_expression(self, &s.object);
492485
return; // unwise to walk the rest of the tree

packages/scramjet/packages/core/src/client/shared/postmessage.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,9 @@ export default function (client: ScramjetClient, self: Self) {
8585
Object.defineProperty(self, client.config.globals.wrappostmessagefn, {
8686
value: function (obj: any) {
8787
if (!obj || typeof obj.postMessage !== "function") return obj;
88-
return obj.postMessage.bind(obj);
88+
return {
89+
postMessage: obj.postMessage.bind(obj),
90+
};
8991
},
9092
configurable: false,
9193
writable: false,

0 commit comments

Comments
 (0)