<< 6) | (c2 & 0x3F));
break;
}
case 14: {
// 1110 xxxx 10xx xxxx 10xx xxxx
if ((c2 = checkutf8()) == null) return null;
if ((c3 = checkutf8()) == null) return null;
out[j++] = String.fromCharCode(((c & 0x0F) << 12) |
((char2 & 0x3F) << 6) | ((char3 & 0x3F) << 0));
break;
}
default: {
switch (c & 0xf) {
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: {
// 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx
if ((c2 = checkutf8()) == null) return null;
if ((c3 = checkutf8()) == null) return null;
if ((c4 = checkutf8()) == null) return null;
s = ((c & 0x07) << 18) |
((c2 & 0x3f) << 12) |
((c3 & 0x3f) << 6) |
(c4 & 0x3f) - 0x10000;
if (0 <= s && s <= 0xfffff) {
out[j++] = String.fromCharCode(((s >>> 10) & 0x03ff) | 0xd800,
(s & 0x03ff) | 0xdc00);
}
else {
return throwerror();
}
break;
}
default: {
return throwerror();
}
}
}
}
}
return out.join('');
}
Array.prototype.push = function () {
var curlen = this.length;
for (var i = 0; i < arguments.length; i++) {
this[curlen + i] = arguments[i];
}
return this.length;
}
Array.prototype.pop = function () {
var returnValue = this[this.length - 1];
this.length--;
return returnValue;
}
Array.prototype.shift = function () {
var returnValue = this[0];
for (var i = 1; i < this.length; i++) {
this[i - 1] = this[i];
}
this.length--;
return returnValue;
}
Array.prototype.unshift = function () {
var curlen = this.length;
var arglen = arguments.length;
for (var i = curlen - 1; i >= 0 ; i--) {
this[i + arglen] = this[i] ;
}
for (var i = 0; i < arglen; i++) {
this[i] = arguments[i];
}
//return this.length; // return this value is Gecko/Opera implementation. but IE don't return anything.
}
Array.prototype.splice = function () {
var start = arguments[0];
var deleteCount = arguments[1];
var len = arguments.length - 2;
var returnValue = this.slice(start);
for (var i = 0; i < len; i++) {
this[start + i] = arguments[i + 2];
}
for (var i = 0; i < returnValue.length - deleteCount; i++) {
this[start + len + i] = returnValue[deleteCount + i];
}
this.length = start + len + returnValue.length - deleteCount;
returnValue.length = deleteCount;
return returnValue;
}
Function.prototype.apply = function (o, p) {
var ps = [];
if (typeof(o) == "undefined") {
var __$$apply$$__ = this;
return eval('__$$apply$$__(' + ps.join(', ') + ');');
}
if (p) {
if (typeof(p[0]) == "undefined") {
@if (@_jscript_version










