2011-09-07 08:35:18 +02:00
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
2014-07-22 01:09:02 +02:00
/ * - - -
2018-01-05 18:26:51 +01:00
info : |
2014-07-22 01:09:02 +02:00
If B = 110 xxxxx ( n = 2 ) and string . charAt ( k + 4 ) and
string . charAt ( k + 5 ) do not represent hexadecimal digits , throw URIError
2017-06-29 21:42:01 +02:00
esid : sec - decodeuricomponent - encodeduricomponent
2014-07-22 01:09:02 +02:00
description : Complex tests
-- - * /
2011-09-07 08:35:18 +02:00
//CHECK
2015-04-29 17:44:25 +02:00
var result = true ;
2018-02-15 21:50:18 +01:00
var interval = [
2018-07-08 20:32:34 +02:00
[ 0x00 , 0x2F ] ,
[ 0x3A , 0x40 ] ,
2018-02-15 21:50:18 +01:00
[ 0x47 , 0x60 ] ,
[ 0x67 , 0xFFFF ]
] ;
2015-04-29 17:44:25 +02:00
for ( var indexI = 0 ; indexI < interval . length ; indexI ++ ) {
for ( var indexJ = interval [ indexI ] [ 0 ] ; indexJ <= interval [ indexI ] [ 1 ] ; indexJ ++ ) {
2011-09-07 08:35:18 +02:00
try {
decodeURIComponent ( "%C0%" + String . fromCharCode ( indexJ , indexJ ) ) ;
2017-06-29 21:42:11 +02:00
result = false ;
} catch ( e ) {
2011-09-07 08:35:18 +02:00
if ( ( e instanceof URIError ) !== true ) {
2017-06-29 21:42:11 +02:00
result = false ;
2011-09-07 08:35:18 +02:00
}
2017-06-29 21:42:11 +02:00
}
}
}
2011-09-07 08:35:18 +02:00
2017-06-29 21:42:11 +02:00
if ( result !== true ) {
2021-07-21 21:37:52 +02:00
throw new Test262Error ( '#1: If B = 110xxxxx (n = 2) and (string.charAt(k + 4) and string.charAt(k + 5)) do not represent hexadecimal digits, throw URIError' ) ;
2011-09-07 08:35:18 +02:00
}