30
30
use error:: throw_type_error;
31
31
use glue:: RUST_JS_NumberValue ;
32
32
use jsapi:: AssertSameCompartment ;
33
- use jsapi:: { ForOfIterator , ForOfIterator_NonIterableBehavior , HandleValue } ;
33
+ use jsapi:: { ForOfIterator , ForOfIterator_NonIterableBehavior } ;
34
34
use jsapi:: { Heap , JS_DefineElement , JS_GetLatin1StringCharsAndLength } ;
35
35
use jsapi:: { JS_GetTwoByteStringCharsAndLength , JS_NewArrayObject1 } ;
36
36
use jsapi:: { JS_NewUCStringCopyN , JSPROP_ENUMERATE , JS_StringHasLatin1Chars } ;
37
- use jsapi:: { JSContext , JSObject , JSString , MutableHandleValue , RootedObject } ;
37
+ use jsapi:: { JSContext , JSObject , JSString , RootedObject } ;
38
38
use jsval:: { BooleanValue , Int32Value , NullValue , UInt32Value , UndefinedValue } ;
39
39
use jsval:: { JSVal , ObjectValue , ObjectOrNullValue , StringValue } ;
40
40
use rust:: { ToBoolean , ToInt32 , ToInt64 , ToNumber , ToUint16 , ToUint32 , ToUint64 } ;
41
41
use rust:: { ToString , maybe_wrap_object_or_null_value, maybe_wrap_object_value} ;
42
+ use rust:: { HandleValue , MutableHandleValue } ;
42
43
use rust:: maybe_wrap_value;
43
44
use libc;
44
45
use num_traits:: { Bounded , Zero } ;
@@ -180,7 +181,7 @@ fn clamp_to<D>(d: f64) -> D
180
181
// https://heycam.github.io/webidl/#es-void
181
182
impl ToJSValConvertible for ( ) {
182
183
#[ inline]
183
- unsafe fn to_jsval ( & self , _cx : * mut JSContext , rval : MutableHandleValue ) {
184
+ unsafe fn to_jsval ( & self , _cx : * mut JSContext , mut rval : MutableHandleValue ) {
184
185
rval. set ( UndefinedValue ( ) ) ;
185
186
}
186
187
}
@@ -197,23 +198,23 @@ impl FromJSValConvertible for JSVal {
197
198
198
199
impl ToJSValConvertible for JSVal {
199
200
#[ inline]
200
- unsafe fn to_jsval ( & self , cx : * mut JSContext , rval : MutableHandleValue ) {
201
+ unsafe fn to_jsval ( & self , cx : * mut JSContext , mut rval : MutableHandleValue ) {
201
202
rval. set ( * self ) ;
202
203
maybe_wrap_value ( cx, rval) ;
203
204
}
204
205
}
205
206
206
- impl ToJSValConvertible for HandleValue {
207
+ impl < ' a > ToJSValConvertible for HandleValue < ' a > {
207
208
#[ inline]
208
- unsafe fn to_jsval ( & self , cx : * mut JSContext , rval : MutableHandleValue ) {
209
+ unsafe fn to_jsval ( & self , cx : * mut JSContext , mut rval : MutableHandleValue ) {
209
210
rval. set ( self . get ( ) ) ;
210
211
maybe_wrap_value ( cx, rval) ;
211
212
}
212
213
}
213
214
214
215
impl ToJSValConvertible for Heap < JSVal > {
215
216
#[ inline]
216
- unsafe fn to_jsval ( & self , cx : * mut JSContext , rval : MutableHandleValue ) {
217
+ unsafe fn to_jsval ( & self , cx : * mut JSContext , mut rval : MutableHandleValue ) {
217
218
rval. set ( self . get ( ) ) ;
218
219
maybe_wrap_value ( cx, rval) ;
219
220
}
@@ -238,7 +239,7 @@ unsafe fn convert_int_from_jsval<T, M>(cx: *mut JSContext, value: HandleValue,
238
239
// https://heycam.github.io/webidl/#es-boolean
239
240
impl ToJSValConvertible for bool {
240
241
#[ inline]
241
- unsafe fn to_jsval ( & self , _cx : * mut JSContext , rval : MutableHandleValue ) {
242
+ unsafe fn to_jsval ( & self , _cx : * mut JSContext , mut rval : MutableHandleValue ) {
242
243
rval. set ( BooleanValue ( * self ) ) ;
243
244
}
244
245
}
@@ -254,7 +255,7 @@ impl FromJSValConvertible for bool {
254
255
// https://heycam.github.io/webidl/#es-byte
255
256
impl ToJSValConvertible for i8 {
256
257
#[ inline]
257
- unsafe fn to_jsval ( & self , _cx : * mut JSContext , rval : MutableHandleValue ) {
258
+ unsafe fn to_jsval ( & self , _cx : * mut JSContext , mut rval : MutableHandleValue ) {
258
259
rval. set ( Int32Value ( * self as i32 ) ) ;
259
260
}
260
261
}
@@ -273,7 +274,7 @@ impl FromJSValConvertible for i8 {
273
274
// https://heycam.github.io/webidl/#es-octet
274
275
impl ToJSValConvertible for u8 {
275
276
#[ inline]
276
- unsafe fn to_jsval ( & self , _cx : * mut JSContext , rval : MutableHandleValue ) {
277
+ unsafe fn to_jsval ( & self , _cx : * mut JSContext , mut rval : MutableHandleValue ) {
277
278
rval. set ( Int32Value ( * self as i32 ) ) ;
278
279
}
279
280
}
@@ -292,7 +293,7 @@ impl FromJSValConvertible for u8 {
292
293
// https://heycam.github.io/webidl/#es-short
293
294
impl ToJSValConvertible for i16 {
294
295
#[ inline]
295
- unsafe fn to_jsval ( & self , _cx : * mut JSContext , rval : MutableHandleValue ) {
296
+ unsafe fn to_jsval ( & self , _cx : * mut JSContext , mut rval : MutableHandleValue ) {
296
297
rval. set ( Int32Value ( * self as i32 ) ) ;
297
298
}
298
299
}
@@ -311,7 +312,7 @@ impl FromJSValConvertible for i16 {
311
312
// https://heycam.github.io/webidl/#es-unsigned-short
312
313
impl ToJSValConvertible for u16 {
313
314
#[ inline]
314
- unsafe fn to_jsval ( & self , _cx : * mut JSContext , rval : MutableHandleValue ) {
315
+ unsafe fn to_jsval ( & self , _cx : * mut JSContext , mut rval : MutableHandleValue ) {
315
316
rval. set ( Int32Value ( * self as i32 ) ) ;
316
317
}
317
318
}
@@ -330,7 +331,7 @@ impl FromJSValConvertible for u16 {
330
331
// https://heycam.github.io/webidl/#es-long
331
332
impl ToJSValConvertible for i32 {
332
333
#[ inline]
333
- unsafe fn to_jsval ( & self , _cx : * mut JSContext , rval : MutableHandleValue ) {
334
+ unsafe fn to_jsval ( & self , _cx : * mut JSContext , mut rval : MutableHandleValue ) {
334
335
rval. set ( Int32Value ( * self ) ) ;
335
336
}
336
337
}
@@ -349,7 +350,7 @@ impl FromJSValConvertible for i32 {
349
350
// https://heycam.github.io/webidl/#es-unsigned-long
350
351
impl ToJSValConvertible for u32 {
351
352
#[ inline]
352
- unsafe fn to_jsval ( & self , _cx : * mut JSContext , rval : MutableHandleValue ) {
353
+ unsafe fn to_jsval ( & self , _cx : * mut JSContext , mut rval : MutableHandleValue ) {
353
354
rval. set ( UInt32Value ( * self ) ) ;
354
355
}
355
356
}
@@ -368,7 +369,7 @@ impl FromJSValConvertible for u32 {
368
369
// https://heycam.github.io/webidl/#es-long-long
369
370
impl ToJSValConvertible for i64 {
370
371
#[ inline]
371
- unsafe fn to_jsval ( & self , _cx : * mut JSContext , rval : MutableHandleValue ) {
372
+ unsafe fn to_jsval ( & self , _cx : * mut JSContext , mut rval : MutableHandleValue ) {
372
373
rval. set ( RUST_JS_NumberValue ( * self as f64 ) ) ;
373
374
}
374
375
}
@@ -387,7 +388,7 @@ impl FromJSValConvertible for i64 {
387
388
// https://heycam.github.io/webidl/#es-unsigned-long-long
388
389
impl ToJSValConvertible for u64 {
389
390
#[ inline]
390
- unsafe fn to_jsval ( & self , _cx : * mut JSContext , rval : MutableHandleValue ) {
391
+ unsafe fn to_jsval ( & self , _cx : * mut JSContext , mut rval : MutableHandleValue ) {
391
392
rval. set ( RUST_JS_NumberValue ( * self as f64 ) ) ;
392
393
}
393
394
}
@@ -406,7 +407,7 @@ impl FromJSValConvertible for u64 {
406
407
// https://heycam.github.io/webidl/#es-float
407
408
impl ToJSValConvertible for f32 {
408
409
#[ inline]
409
- unsafe fn to_jsval ( & self , _cx : * mut JSContext , rval : MutableHandleValue ) {
410
+ unsafe fn to_jsval ( & self , _cx : * mut JSContext , mut rval : MutableHandleValue ) {
410
411
rval. set ( RUST_JS_NumberValue ( * self as f64 ) ) ;
411
412
}
412
413
}
@@ -423,7 +424,7 @@ impl FromJSValConvertible for f32 {
423
424
// https://heycam.github.io/webidl/#es-double
424
425
impl ToJSValConvertible for f64 {
425
426
#[ inline]
426
- unsafe fn to_jsval ( & self , _cx : * mut JSContext , rval : MutableHandleValue ) {
427
+ unsafe fn to_jsval ( & self , _cx : * mut JSContext , mut rval : MutableHandleValue ) {
427
428
rval. set ( RUST_JS_NumberValue ( * self ) ) ;
428
429
}
429
430
}
@@ -467,7 +468,7 @@ pub unsafe fn jsstr_to_string(cx: *mut JSContext, jsstr: *mut JSString) -> Strin
467
468
// https://heycam.github.io/webidl/#es-USVString
468
469
impl ToJSValConvertible for str {
469
470
#[ inline]
470
- unsafe fn to_jsval ( & self , cx : * mut JSContext , rval : MutableHandleValue ) {
471
+ unsafe fn to_jsval ( & self , cx : * mut JSContext , mut rval : MutableHandleValue ) {
471
472
let mut string_utf16: Vec < u16 > = Vec :: with_capacity ( self . len ( ) ) ;
472
473
string_utf16. extend ( self . encode_utf16 ( ) ) ;
473
474
let jsstr = JS_NewUCStringCopyN ( cx,
@@ -503,7 +504,7 @@ impl FromJSValConvertible for String {
503
504
504
505
impl < T : ToJSValConvertible > ToJSValConvertible for Option < T > {
505
506
#[ inline]
506
- unsafe fn to_jsval ( & self , cx : * mut JSContext , rval : MutableHandleValue ) {
507
+ unsafe fn to_jsval ( & self , cx : * mut JSContext , mut rval : MutableHandleValue ) {
507
508
match self {
508
509
& Some ( ref value) => value. to_jsval ( cx, rval) ,
509
510
& None => rval. set ( NullValue ( ) ) ,
@@ -538,16 +539,16 @@ impl<T: FromJSValConvertible> FromJSValConvertible for Option<T> {
538
539
// https://heycam.github.io/webidl/#es-sequence
539
540
impl < T : ToJSValConvertible > ToJSValConvertible for [ T ] {
540
541
#[ inline]
541
- unsafe fn to_jsval ( & self , cx : * mut JSContext , rval : MutableHandleValue ) {
542
+ unsafe fn to_jsval ( & self , cx : * mut JSContext , mut rval : MutableHandleValue ) {
542
543
rooted ! ( in( cx) let js_array = JS_NewArrayObject1 ( cx, self . len( ) as libc:: size_t) ) ;
543
544
assert ! ( !js_array. handle( ) . is_null( ) ) ;
544
545
545
546
rooted ! ( in( cx) let mut val = UndefinedValue ( ) ) ;
546
547
for ( index, obj) in self . iter ( ) . enumerate ( ) {
547
548
obj. to_jsval ( cx, val. handle_mut ( ) ) ;
548
549
549
- assert ! ( JS_DefineElement ( cx, js_array. handle( ) ,
550
- index as u32 , val. handle( ) , JSPROP_ENUMERATE , None , None ) ) ;
550
+ assert ! ( JS_DefineElement ( cx, js_array. handle( ) . into ( ) ,
551
+ index as u32 , val. handle( ) . into ( ) , JSPROP_ENUMERATE , None , None ) ) ;
551
552
}
552
553
553
554
rval. set ( ObjectValue ( js_array. handle ( ) . get ( ) ) ) ;
@@ -604,7 +605,7 @@ impl<C: Clone, T: FromJSValConvertible<Config=C>> FromJSValConvertible for Vec<T
604
605
let iterator = ForOfIteratorGuard :: new ( cx, & mut iterator) ;
605
606
let iterator = & mut * iterator. root ;
606
607
607
- if !iterator. init ( value, ForOfIterator_NonIterableBehavior :: AllowNonIterable ) {
608
+ if !iterator. init ( value. into ( ) , ForOfIterator_NonIterableBehavior :: AllowNonIterable ) {
608
609
return Err ( ( ) )
609
610
}
610
611
@@ -617,7 +618,7 @@ impl<C: Clone, T: FromJSValConvertible<Config=C>> FromJSValConvertible for Vec<T
617
618
loop {
618
619
let mut done = false ;
619
620
rooted ! ( in( cx) let mut val = UndefinedValue ( ) ) ;
620
- if !iterator. next ( val. handle_mut ( ) , & mut done) {
621
+ if !iterator. next ( val. handle_mut ( ) . into ( ) , & mut done) {
621
622
return Err ( ( ) )
622
623
}
623
624
@@ -638,7 +639,7 @@ impl<C: Clone, T: FromJSValConvertible<Config=C>> FromJSValConvertible for Vec<T
638
639
// https://heycam.github.io/webidl/#es-object
639
640
impl ToJSValConvertible for * mut JSObject {
640
641
#[ inline]
641
- unsafe fn to_jsval ( & self , cx : * mut JSContext , rval : MutableHandleValue ) {
642
+ unsafe fn to_jsval ( & self , cx : * mut JSContext , mut rval : MutableHandleValue ) {
642
643
rval. set ( ObjectOrNullValue ( * self ) ) ;
643
644
maybe_wrap_object_or_null_value ( cx, rval) ;
644
645
}
@@ -647,7 +648,7 @@ impl ToJSValConvertible for *mut JSObject {
647
648
// https://heycam.github.io/webidl/#es-object
648
649
impl ToJSValConvertible for ptr:: NonNull < JSObject > {
649
650
#[ inline]
650
- unsafe fn to_jsval ( & self , cx : * mut JSContext , rval : MutableHandleValue ) {
651
+ unsafe fn to_jsval ( & self , cx : * mut JSContext , mut rval : MutableHandleValue ) {
651
652
rval. set ( ObjectValue ( self . as_ptr ( ) ) ) ;
652
653
maybe_wrap_object_value ( cx, rval) ;
653
654
}
@@ -656,7 +657,7 @@ impl ToJSValConvertible for ptr::NonNull<JSObject> {
656
657
// https://heycam.github.io/webidl/#es-object
657
658
impl ToJSValConvertible for Heap < * mut JSObject > {
658
659
#[ inline]
659
- unsafe fn to_jsval ( & self , cx : * mut JSContext , rval : MutableHandleValue ) {
660
+ unsafe fn to_jsval ( & self , cx : * mut JSContext , mut rval : MutableHandleValue ) {
660
661
rval. set ( ObjectOrNullValue ( self . get ( ) ) ) ;
661
662
maybe_wrap_object_or_null_value ( cx, rval) ;
662
663
}
0 commit comments