'use strict'; 
 | 
var $ = require('../internals/export'); 
 | 
var uncurryThis = require('../internals/function-uncurry-this'); 
 | 
var toString = require('../internals/to-string'); 
 | 
  
 | 
var fromCharCode = String.fromCharCode; 
 | 
var charAt = uncurryThis(''.charAt); 
 | 
var exec = uncurryThis(/./.exec); 
 | 
var stringSlice = uncurryThis(''.slice); 
 | 
  
 | 
var hex2 = /^[\da-f]{2}$/i; 
 | 
var hex4 = /^[\da-f]{4}$/i; 
 | 
  
 | 
// `unescape` method 
 | 
// https://tc39.es/ecma262/#sec-unescape-string 
 | 
$({ global: true }, { 
 | 
  unescape: function unescape(string) { 
 | 
    var str = toString(string); 
 | 
    var result = ''; 
 | 
    var length = str.length; 
 | 
    var index = 0; 
 | 
    var chr, part; 
 | 
    while (index < length) { 
 | 
      chr = charAt(str, index++); 
 | 
      if (chr === '%') { 
 | 
        if (charAt(str, index) === 'u') { 
 | 
          part = stringSlice(str, index + 1, index + 5); 
 | 
          if (exec(hex4, part)) { 
 | 
            result += fromCharCode(parseInt(part, 16)); 
 | 
            index += 5; 
 | 
            continue; 
 | 
          } 
 | 
        } else { 
 | 
          part = stringSlice(str, index, index + 2); 
 | 
          if (exec(hex2, part)) { 
 | 
            result += fromCharCode(parseInt(part, 16)); 
 | 
            index += 2; 
 | 
            continue; 
 | 
          } 
 | 
        } 
 | 
      } 
 | 
      result += chr; 
 | 
    } return result; 
 | 
  } 
 | 
}); 
 |