@@ -893,9 +893,9 @@ pub unsafe fn try_to_outerize_object(mut rval: MutableHandleObject) {
893
893
}
894
894
895
895
#[ inline]
896
- pub unsafe fn maybe_wrap_object ( cx : * mut JSContext , obj : MutableHandleObject ) {
896
+ pub unsafe fn maybe_wrap_object ( cx : * mut JSContext , mut obj : MutableHandleObject ) {
897
897
if get_object_realm ( * obj) != get_context_realm ( cx) {
898
- assert ! ( JS_WrapObject ( cx, obj. into( ) ) ) ;
898
+ assert ! ( JS_WrapObject ( cx, obj. reborrow ( ) . into( ) ) ) ;
899
899
}
900
900
try_to_outerize_object ( obj) ;
901
901
}
@@ -1065,13 +1065,7 @@ macro_rules! capture_stack {
1065
1065
}
1066
1066
}
1067
1067
1068
- /** Wrappers for JSAPI methods that should NOT be used.
1069
- *
1070
- * The wrapped methods are identical except that they accept Handle and MutableHandle arguments
1071
- * that include lifetimes instead.
1072
- *
1073
- * They require MutableHandles to implement Copy. All code should migrate to jsapi_wrapped instead.
1074
- * */
1068
+ /// Wrappers for JSAPI methods that accept lifetimed Handle and MutableHandle arguments
1075
1069
pub mod wrappers {
1076
1070
macro_rules! wrap {
1077
1071
// The invocation of @inner has the following form:
@@ -1212,151 +1206,3 @@ pub mod wrappers {
1212
1206
include ! ( "jsapi_wrappers.in.rs" ) ;
1213
1207
include ! ( "glue_wrappers.in.rs" ) ;
1214
1208
}
1215
-
1216
- /** Wrappers for JSAPI methods that accept lifetimed Handle and MutableHandle arguments.
1217
- *
1218
- * The wrapped methods are identical except that they accept Handle and MutableHandle arguments
1219
- * that include lifetimes instead. Besides, they mutably borrow the mutable handles
1220
- * instead of consuming/copying them.
1221
- *
1222
- * These wrappers are preferred, js::rust::wrappers should NOT be used.
1223
- * */
1224
- pub mod jsapi_wrapped {
1225
- macro_rules! wrap {
1226
- // The invocation of @inner has the following form:
1227
- // @inner (input args) <> (argument accumulator) <> (invocation accumulator) <> unparsed tokens
1228
- // when `unparsed tokens == \eps`, accumulator contains the final result
1229
-
1230
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: Handle <$gentype: ty>, $( $rest: tt) * ) => {
1231
- wrap!( @inner $saved <> ( $( $declargs) * $arg: Handle <$gentype> , ) <> ( $( $acc, ) * $arg. into( ) , ) <> $( $rest) * ) ;
1232
- } ;
1233
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: MutableHandle <$gentype: ty>, $( $rest: tt) * ) => {
1234
- wrap!( @inner $saved <> ( $( $declargs) * $arg: & mut MutableHandle <$gentype> , ) <> ( $( $acc, ) * ( * $arg) . into( ) , ) <> $( $rest) * ) ;
1235
- } ;
1236
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: Handle , $( $rest: tt) * ) => {
1237
- wrap!( @inner $saved <> ( $( $declargs) * $arg: Handle , ) <> ( $( $acc, ) * $arg. into( ) , ) <> $( $rest) * ) ;
1238
- } ;
1239
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: MutableHandle , $( $rest: tt) * ) => {
1240
- wrap!( @inner $saved <> ( $( $declargs) * $arg: & mut MutableHandle , ) <> ( $( $acc, ) * ( * $arg) . into( ) , ) <> $( $rest) * ) ;
1241
- } ;
1242
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: HandleFunction , $( $rest: tt) * ) => {
1243
- wrap!( @inner $saved <> ( $( $declargs) * $arg: HandleFunction , ) <> ( $( $acc, ) * $arg. into( ) , ) <> $( $rest) * ) ;
1244
- } ;
1245
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: HandleId , $( $rest: tt) * ) => {
1246
- wrap!( @inner $saved <> ( $( $declargs) * $arg: HandleId , ) <> ( $( $acc, ) * $arg. into( ) , ) <> $( $rest) * ) ;
1247
- } ;
1248
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: HandleObject , $( $rest: tt) * ) => {
1249
- wrap!( @inner $saved <> ( $( $declargs) * $arg: HandleObject , ) <> ( $( $acc, ) * $arg. into( ) , ) <> $( $rest) * ) ;
1250
- } ;
1251
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: HandleScript , $( $rest: tt) * ) => {
1252
- wrap!( @inner $saved <> ( $( $declargs) * $arg: HandleScript , ) <> ( $( $acc, ) * $arg. into( ) , ) <> $( $rest) * ) ;
1253
- } ;
1254
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: HandleString , $( $rest: tt) * ) => {
1255
- wrap!( @inner $saved <> ( $( $declargs) * $arg: HandleString , ) <> ( $( $acc, ) * $arg. into( ) , ) <> $( $rest) * ) ;
1256
- } ;
1257
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: HandleSymbol , $( $rest: tt) * ) => {
1258
- wrap!( @inner $saved <> ( $( $declargs) * $arg: HandleSymbol , ) <> ( $( $acc, ) * $arg. into( ) , ) <> $( $rest) * ) ;
1259
- } ;
1260
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: HandleValue , $( $rest: tt) * ) => {
1261
- wrap!( @inner $saved <> ( $( $declargs) * $arg: HandleValue , ) <> ( $( $acc, ) * $arg. into( ) , ) <> $( $rest) * ) ;
1262
- } ;
1263
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: MutableHandleFunction , $( $rest: tt) * ) => {
1264
- wrap!( @inner $saved <> ( $( $declargs) * $arg: & mut MutableHandleFunction , ) <> ( $( $acc, ) * ( * $arg) . into( ) , ) <> $( $rest) * ) ;
1265
- } ;
1266
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: MutableHandleId , $( $rest: tt) * ) => {
1267
- wrap!( @inner $saved <> ( $( $declargs) * $arg: & mut MutableHandleId , ) <> ( $( $acc, ) * ( * $arg) . into( ) , ) <> $( $rest) * ) ;
1268
- } ;
1269
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: MutableHandleObject , $( $rest: tt) * ) => {
1270
- wrap!( @inner $saved <> ( $( $declargs) * $arg: & mut MutableHandleObject , ) <> ( $( $acc, ) * ( * $arg) . into( ) , ) <> $( $rest) * ) ;
1271
- } ;
1272
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: MutableHandleScript , $( $rest: tt) * ) => {
1273
- wrap!( @inner $saved <> ( $( $declargs) * $arg: & mut MutableHandleScript , ) <> ( $( $acc, ) * ( * $arg) . into( ) , ) <> $( $rest) * ) ;
1274
- } ;
1275
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: MutableHandleString , $( $rest: tt) * ) => {
1276
- wrap!( @inner $saved <> ( $( $declargs) * $arg: & mut MutableHandleString , ) <> ( $( $acc, ) * ( * $arg) . into( ) , ) <> $( $rest) * ) ;
1277
- } ;
1278
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: MutableHandleSymbol , $( $rest: tt) * ) => {
1279
- wrap!( @inner $saved <> ( $( $declargs) * $arg: & mut MutableHandleSymbol , ) <> ( $( $acc, ) * ( * $arg) . into( ) , ) <> $( $rest) * ) ;
1280
- } ;
1281
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: MutableHandleValue , $( $rest: tt) * ) => {
1282
- wrap!( @inner $saved <> ( $( $declargs) * $arg: & mut MutableHandleValue , ) <> ( $( $acc, ) * ( * $arg) . into( ) , ) <> $( $rest) * ) ;
1283
- } ;
1284
- ( @inner $saved: tt <> ( $( $declargs: tt) * ) <> ( $( $acc: expr, ) * ) <> $arg: ident: $type: ty, $( $rest: tt) * ) => {
1285
- wrap!( @inner $saved <> ( $( $declargs) * $arg: $type, ) <> ( $( $acc, ) * $arg, ) <> $( $rest) * ) ;
1286
- } ;
1287
- ( @inner ( $module: tt: $func_name: ident ( $( $args: tt) * ) -> $outtype: ty) <> ( $( $declargs: tt) * ) <> ( $( $argexprs: expr, ) * ) <> ) => {
1288
- #[ inline]
1289
- pub unsafe fn $func_name( $( $declargs) * ) -> $outtype {
1290
- $module:: $func_name( $( $argexprs) ,* )
1291
- }
1292
- } ;
1293
- ( $module: tt: pub fn $func_name: ident( $( $args: tt) * ) -> $outtype: ty) => {
1294
- wrap!( @inner ( $module: $func_name ( $( $args) * ) -> $outtype) <> ( ) <> ( ) <> $( $args) * , ) ;
1295
- } ;
1296
- ( $module: tt: pub fn $func_name: ident( $( $args: tt) * ) ) => {
1297
- wrap!( $module: pub fn $func_name( $( $args) * ) -> ( ) ) ;
1298
- }
1299
- }
1300
-
1301
- use super :: * ;
1302
- use crate :: glue;
1303
- use crate :: glue:: EncodedStringCallback ;
1304
- use crate :: jsapi;
1305
- use crate :: jsapi:: mozilla:: Utf8Unit ;
1306
- use crate :: jsapi:: BigInt ;
1307
- use crate :: jsapi:: CallArgs ;
1308
- use crate :: jsapi:: CloneDataPolicy ;
1309
- use crate :: jsapi:: ColumnNumberOneOrigin ;
1310
- use crate :: jsapi:: CompartmentTransplantCallback ;
1311
- use crate :: jsapi:: ESClass ;
1312
- use crate :: jsapi:: ExceptionStackBehavior ;
1313
- use crate :: jsapi:: ForOfIterator ;
1314
- use crate :: jsapi:: ForOfIterator_NonIterableBehavior ;
1315
- use crate :: jsapi:: HandleObjectVector ;
1316
- use crate :: jsapi:: InstantiateOptions ;
1317
- use crate :: jsapi:: JSClass ;
1318
- use crate :: jsapi:: JSErrorReport ;
1319
- use crate :: jsapi:: JSExnType ;
1320
- use crate :: jsapi:: JSFunctionSpec ;
1321
- use crate :: jsapi:: JSFunctionSpecWithHelp ;
1322
- use crate :: jsapi:: JSJitInfo ;
1323
- use crate :: jsapi:: JSONParseHandler ;
1324
- use crate :: jsapi:: JSONWriteCallback ;
1325
- use crate :: jsapi:: JSPrincipals ;
1326
- use crate :: jsapi:: JSPropertySpec ;
1327
- use crate :: jsapi:: JSPropertySpec_Name ;
1328
- use crate :: jsapi:: JSProtoKey ;
1329
- use crate :: jsapi:: JSScript ;
1330
- use crate :: jsapi:: JSStructuredCloneData ;
1331
- use crate :: jsapi:: JSType ;
1332
- use crate :: jsapi:: Latin1Char ;
1333
- use crate :: jsapi:: ModuleErrorBehaviour ;
1334
- use crate :: jsapi:: MutableHandleIdVector ;
1335
- use crate :: jsapi:: PromiseState ;
1336
- use crate :: jsapi:: PromiseUserInputEventHandlingState ;
1337
- use crate :: jsapi:: PropertyKey ;
1338
- use crate :: jsapi:: ReadOnlyCompileOptions ;
1339
- use crate :: jsapi:: Realm ;
1340
- use crate :: jsapi:: RefPtr ;
1341
- use crate :: jsapi:: RegExpFlags ;
1342
- use crate :: jsapi:: ScriptEnvironmentPreparer_Closure ;
1343
- use crate :: jsapi:: SourceText ;
1344
- use crate :: jsapi:: StackCapture ;
1345
- use crate :: jsapi:: StructuredCloneScope ;
1346
- use crate :: jsapi:: Symbol ;
1347
- use crate :: jsapi:: SymbolCode ;
1348
- use crate :: jsapi:: TaggedColumnNumberOneOrigin ;
1349
- use crate :: jsapi:: TwoByteChars ;
1350
- use crate :: jsapi:: UniqueChars ;
1351
- use crate :: jsapi:: Value ;
1352
- use crate :: jsapi:: WasmModule ;
1353
- use crate :: jsapi:: { ElementAdder , IsArrayAnswer , PropertyDescriptor } ;
1354
- use crate :: jsapi:: { JSContext , JSFunction , JSNative , JSObject , JSString } ;
1355
- use crate :: jsapi:: {
1356
- JSStructuredCloneCallbacks , JSStructuredCloneReader , JSStructuredCloneWriter ,
1357
- } ;
1358
- use crate :: jsapi:: { MallocSizeOf , ObjectOpResult , ObjectPrivateVisitor , TabSizes } ;
1359
- use crate :: jsapi:: { SavedFrameResult , SavedFrameSelfHosted } ;
1360
- include ! ( "jsapi_wrappers.in.rs" ) ;
1361
- include ! ( "glue_wrappers.in.rs" ) ;
1362
- }
0 commit comments