// Class: lime._internal.unifill._CodePoint.CodePoint_Impl_

var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this

$global.Object.defineProperty(exports, "__esModule", {value: true});

var __map_reserved = {};

// Imports

var $hxClasses = require("./../../../../hxClasses_stub").default;
var $import = require("./../../../../import_stub").default;
function lime__$internal_unifill_Unicode() {return require("./../../../../lime/_internal/unifill/Unicode");}
function js__$Boot_HaxeError() {return require("./../../../../js/_Boot/HaxeError");}
function lime__$internal_unifill_InvalidCodePoint() {return require("./../../../../lime/_internal/unifill/InvalidCodePoint");}
function lime__$internal_unifill_InternalEncoding() {return require("./../../../../lime/_internal/unifill/InternalEncoding");}

// Constructor

var CodePoint_Impl_ = function(){}

// Meta

CodePoint_Impl_.__name__ = ["lime","_internal","unifill","_CodePoint","CodePoint_Impl_"];
CodePoint_Impl_.prototype = {
	
};
CodePoint_Impl_.prototype.__class__ = CodePoint_Impl_.prototype.constructor = $hxClasses["lime._internal.unifill._CodePoint.CodePoint_Impl_"] = CodePoint_Impl_;

// Init



// Statics

CodePoint_Impl_.fromInt = function(code) {
	if(!(lime__$internal_unifill_Unicode().default).isScalar(code)) {
		throw new (js__$Boot_HaxeError().default)(new (lime__$internal_unifill_InvalidCodePoint().default)(code));
	}
	var this1 = code;
	return this1;
}
CodePoint_Impl_.cons = function(a,b) {
	return (lime__$internal_unifill_InternalEncoding().default).fromCodePoint(a) + b;
}
CodePoint_Impl_.snoc = function(a,b) {
	return a + (lime__$internal_unifill_InternalEncoding().default).fromCodePoint(b);
}
CodePoint_Impl_.addInt = function(a,b) {
	var code = a + b;
	if(!(lime__$internal_unifill_Unicode().default).isScalar(code)) {
		throw new (js__$Boot_HaxeError().default)(new (lime__$internal_unifill_InvalidCodePoint().default)(code));
	}
	var this1 = code;
	return this1;
}
CodePoint_Impl_.sub = function(a,b) {
	return a - b;
}
CodePoint_Impl_.subInt = function(a,b) {
	var code = a - b;
	if(!(lime__$internal_unifill_Unicode().default).isScalar(code)) {
		throw new (js__$Boot_HaxeError().default)(new (lime__$internal_unifill_InvalidCodePoint().default)(code));
	}
	var this1 = code;
	return this1;
}
CodePoint_Impl_._new = function(code) {
	var this1 = code;
	return this1;
}
CodePoint_Impl_.toString = function(this1) {
	return (lime__$internal_unifill_InternalEncoding().default).fromCodePoint(this1);
}
CodePoint_Impl_.toInt = function(this1) {
	return this1;
}


// Export

exports.default = CodePoint_Impl_;