summaryrefslogtreecommitdiff
path: root/examples/scala-js/tools/scalajsenv.js
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/tools/scalajsenv.js')
-rw-r--r--examples/scala-js/tools/scalajsenv.js772
1 files changed, 0 insertions, 772 deletions
diff --git a/examples/scala-js/tools/scalajsenv.js b/examples/scala-js/tools/scalajsenv.js
deleted file mode 100644
index 01a84ba..0000000
--- a/examples/scala-js/tools/scalajsenv.js
+++ /dev/null
@@ -1,772 +0,0 @@
-/* Scala.js runtime support
- * Copyright 2013 LAMP/EPFL
- * Author: Sébastien Doeraene
- */
-
-/* ---------------------------------- *
- * The top-level Scala.js environment *
- * ---------------------------------- */
-
-var ScalaJS = {};
-
-// Get the environment info
-ScalaJS.env = (typeof __ScalaJSEnv === "object" && __ScalaJSEnv) ? __ScalaJSEnv : {};
-
-// Global scope
-ScalaJS.g =
- (typeof ScalaJS.env["global"] === "object" && ScalaJS.env["global"])
- ? ScalaJS.env["global"]
- : ((typeof global === "object" && global && global["Object"] === Object) ? global : this);
-ScalaJS.env["global"] = ScalaJS.g;
-
-// Where to send exports
-ScalaJS.e =
- (typeof ScalaJS.env["exportsNamespace"] === "object" && ScalaJS.env["exportsNamespace"])
- ? ScalaJS.env["exportsNamespace"] : ScalaJS.g;
-ScalaJS.env["exportsNamespace"] = ScalaJS.e;
-
-// Freeze the environment info
-ScalaJS.g["Object"]["freeze"](ScalaJS.env);
-
-// Other fields
-ScalaJS.d = {}; // Data for types
-ScalaJS.c = {}; // Scala.js constructors
-ScalaJS.h = {}; // Inheritable constructors (without initialization code)
-ScalaJS.i = {}; // Implementation class modules
-ScalaJS.n = {}; // Module instances
-ScalaJS.m = {}; // Module accessors
-ScalaJS.is = {}; // isInstanceOf methods
-ScalaJS.isArrayOf = {}; // isInstanceOfArrayOf methods
-//!if asInstanceOfs != Unchecked
-ScalaJS.as = {}; // asInstanceOf methods
-ScalaJS.asArrayOf = {}; // asInstanceOfArrayOf methods
-//!endif
-ScalaJS.lastIDHash = 0; // last value attributed to an id hash code
-
-// Core mechanism
-
-ScalaJS.makeIsArrayOfPrimitive = function(primitiveData) {
- return function(obj, depth) {
- return !!(obj && obj.$classData &&
- (obj.$classData.arrayDepth === depth) &&
- (obj.$classData.arrayBase === primitiveData));
- }
-};
-
-//!if asInstanceOfs != Unchecked
-ScalaJS.makeAsArrayOfPrimitive = function(isInstanceOfFunction, arrayEncodedName) {
- return function(obj, depth) {
- if (isInstanceOfFunction(obj, depth) || (obj === null))
- return obj;
- else
- ScalaJS.throwArrayCastException(obj, arrayEncodedName, depth);
- }
-};
-//!endif
-
-/** Encode a property name for runtime manipulation
- * Usage:
- * env.propertyName({someProp:0})
- * Returns:
- * "someProp"
- * Useful when the property is renamed by a global optimizer (like Closure)
- * but we must still get hold of a string of that name for runtime
- * reflection.
- */
-ScalaJS.propertyName = function(obj) {
- var result;
- for (var prop in obj)
- result = prop;
- return result;
-};
-
-// Runtime functions
-
-ScalaJS.isScalaJSObject = function(obj) {
- return !!(obj && obj.$classData);
-};
-
-//!if asInstanceOfs != Unchecked
-ScalaJS.throwClassCastException = function(instance, classFullName) {
-//!if asInstanceOfs == Compliant
- throw new ScalaJS.c.jl_ClassCastException().init___T(
- instance + " is not an instance of " + classFullName);
-//!else
- throw new ScalaJS.c.sjsr_UndefinedBehaviorError().init___jl_Throwable(
- new ScalaJS.c.jl_ClassCastException().init___T(
- instance + " is not an instance of " + classFullName));
-//!endif
-};
-
-ScalaJS.throwArrayCastException = function(instance, classArrayEncodedName, depth) {
- for (; depth; --depth)
- classArrayEncodedName = "[" + classArrayEncodedName;
- ScalaJS.throwClassCastException(instance, classArrayEncodedName);
-};
-//!endif
-
-ScalaJS.makeNativeArrayWrapper = function(arrayClassData, nativeArray) {
- return new arrayClassData.constr(nativeArray);
-};
-
-ScalaJS.newArrayObject = function(arrayClassData, lengths) {
- return ScalaJS.newArrayObjectInternal(arrayClassData, lengths, 0);
-};
-
-ScalaJS.newArrayObjectInternal = function(arrayClassData, lengths, lengthIndex) {
- var result = new arrayClassData.constr(lengths[lengthIndex]);
-
- if (lengthIndex < lengths.length-1) {
- var subArrayClassData = arrayClassData.componentData;
- var subLengthIndex = lengthIndex+1;
- var underlying = result.u;
- for (var i = 0; i < underlying.length; i++) {
- underlying[i] = ScalaJS.newArrayObjectInternal(
- subArrayClassData, lengths, subLengthIndex);
- }
- }
-
- return result;
-};
-
-ScalaJS.checkNonNull = function(obj) {
- return obj !== null ? obj : ScalaJS.throwNullPointerException();
-};
-
-ScalaJS.throwNullPointerException = function() {
- throw new ScalaJS.c.jl_NullPointerException().init___();
-};
-
-ScalaJS.objectToString = function(instance) {
- if (instance === void 0)
- return "undefined";
- else
- return instance.toString();
-};
-
-ScalaJS.objectGetClass = function(instance) {
- switch (typeof instance) {
- case "string":
- return ScalaJS.d.T.getClassOf();
- case "number":
- var v = instance | 0;
- if (v === instance) { // is the value integral?
- if (ScalaJS.isByte(v))
- return ScalaJS.d.jl_Byte.getClassOf();
- else if (ScalaJS.isShort(v))
- return ScalaJS.d.jl_Short.getClassOf();
- else
- return ScalaJS.d.jl_Integer.getClassOf();
- } else {
- if (ScalaJS.isFloat(instance))
- return ScalaJS.d.jl_Float.getClassOf();
- else
- return ScalaJS.d.jl_Double.getClassOf();
- }
- case "boolean":
- return ScalaJS.d.jl_Boolean.getClassOf();
- case "undefined":
- return ScalaJS.d.sr_BoxedUnit.getClassOf();
- default:
- if (instance === null)
- ScalaJS.throwNullPointerException();
- else if (ScalaJS.is.sjsr_RuntimeLong(instance))
- return ScalaJS.d.jl_Long.getClassOf();
- else if (ScalaJS.isScalaJSObject(instance))
- return instance.$classData.getClassOf();
- else
- return null; // Exception?
- }
-};
-
-ScalaJS.objectClone = function(instance) {
- if (ScalaJS.isScalaJSObject(instance) || (instance === null))
- return instance.clone__O();
- else
- throw new ScalaJS.c.jl_CloneNotSupportedException().init___();
-};
-
-ScalaJS.objectNotify = function(instance) {
- // final and no-op in java.lang.Object
- if (instance === null)
- instance.notify__V();
-};
-
-ScalaJS.objectNotifyAll = function(instance) {
- // final and no-op in java.lang.Object
- if (instance === null)
- instance.notifyAll__V();
-};
-
-ScalaJS.objectFinalize = function(instance) {
- if (ScalaJS.isScalaJSObject(instance) || (instance === null))
- instance.finalize__V();
- // else no-op
-};
-
-ScalaJS.objectEquals = function(instance, rhs) {
- if (ScalaJS.isScalaJSObject(instance) || (instance === null))
- return instance.equals__O__Z(rhs);
- else if (typeof instance === "number")
- return typeof rhs === "number" && ScalaJS.numberEquals(instance, rhs);
- else
- return instance === rhs;
-};
-
-ScalaJS.numberEquals = function(lhs, rhs) {
- return (
- lhs === rhs // 0.0 === -0.0 to prioritize the Int case over the Double case
- ) || (
- // are they both NaN?
- (lhs !== lhs) && (rhs !== rhs)
- );
-};
-
-ScalaJS.objectHashCode = function(instance) {
- switch (typeof instance) {
- case "string":
- return ScalaJS.m.sjsr_RuntimeString().hashCode__T__I(instance);
- case "number":
- return ScalaJS.m.sjsr_Bits().numberHashCode__D__I(instance);
- case "boolean":
- return instance ? 1231 : 1237;
- case "undefined":
- return 0;
- default:
- if (ScalaJS.isScalaJSObject(instance) || instance === null)
- return instance.hashCode__I();
- else
- return 42; // TODO?
- }
-};
-
-ScalaJS.comparableCompareTo = function(instance, rhs) {
- switch (typeof instance) {
- case "string":
-//!if asInstanceOfs != Unchecked
- ScalaJS.as.T(rhs);
-//!endif
- return instance === rhs ? 0 : (instance < rhs ? -1 : 1);
- case "number":
-//!if asInstanceOfs != Unchecked
- ScalaJS.as.jl_Number(rhs);
-//!endif
- return ScalaJS.numberEquals(instance, rhs) ? 0 : (instance < rhs ? -1 : 1);
- case "boolean":
-//!if asInstanceOfs != Unchecked
- ScalaJS.asBoolean(rhs);
-//!endif
- return instance - rhs; // yes, this gives the right result
- default:
- return instance.compareTo__O__I(rhs);
- }
-};
-
-ScalaJS.charSequenceLength = function(instance) {
- if (typeof(instance) === "string")
-//!if asInstanceOfs != Unchecked
- return ScalaJS.uI(instance["length"]);
-//!else
- return instance["length"] | 0;
-//!endif
- else
- return instance.length__I();
-};
-
-ScalaJS.charSequenceCharAt = function(instance, index) {
- if (typeof(instance) === "string")
-//!if asInstanceOfs != Unchecked
- return ScalaJS.uI(instance["charCodeAt"](index)) & 0xffff;
-//!else
- return instance["charCodeAt"](index) & 0xffff;
-//!endif
- else
- return instance.charAt__I__C(index);
-};
-
-ScalaJS.charSequenceSubSequence = function(instance, start, end) {
- if (typeof(instance) === "string")
-//!if asInstanceOfs != Unchecked
- return ScalaJS.as.T(instance["substring"](start, end));
-//!else
- return instance["substring"](start, end);
-//!endif
- else
- return instance.subSequence__I__I__jl_CharSequence(start, end);
-};
-
-ScalaJS.booleanBooleanValue = function(instance) {
- if (typeof instance === "boolean") return instance;
- else return instance.booleanValue__Z();
-};
-
-ScalaJS.numberByteValue = function(instance) {
- if (typeof instance === "number") return (instance << 24) >> 24;
- else return instance.byteValue__B();
-};
-ScalaJS.numberShortValue = function(instance) {
- if (typeof instance === "number") return (instance << 16) >> 16;
- else return instance.shortValue__S();
-};
-ScalaJS.numberIntValue = function(instance) {
- if (typeof instance === "number") return instance | 0;
- else return instance.intValue__I();
-};
-ScalaJS.numberLongValue = function(instance) {
- if (typeof instance === "number")
- return ScalaJS.m.sjsr_RuntimeLong().fromDouble__D__sjsr_RuntimeLong(instance);
- else
- return instance.longValue__J();
-};
-ScalaJS.numberFloatValue = function(instance) {
- if (typeof instance === "number") return ScalaJS.fround(instance);
- else return instance.floatValue__F();
-};
-ScalaJS.numberDoubleValue = function(instance) {
- if (typeof instance === "number") return instance;
- else return instance.doubleValue__D();
-};
-
-ScalaJS.isNaN = function(instance) {
- return instance !== instance;
-};
-
-ScalaJS.isInfinite = function(instance) {
- return !ScalaJS.g["isFinite"](instance) && !ScalaJS.isNaN(instance);
-};
-
-ScalaJS.propertiesOf = function(obj) {
- var result = [];
- for (var prop in obj)
- result["push"](prop);
- return result;
-};
-
-ScalaJS.systemArraycopy = function(src, srcPos, dest, destPos, length) {
- var srcu = src.u;
- var destu = dest.u;
- if (srcu !== destu || destPos < srcPos || srcPos + length < destPos) {
- for (var i = 0; i < length; i++)
- destu[destPos+i] = srcu[srcPos+i];
- } else {
- for (var i = length-1; i >= 0; i--)
- destu[destPos+i] = srcu[srcPos+i];
- }
-};
-
-ScalaJS.systemIdentityHashCode = function(obj) {
- if (ScalaJS.isScalaJSObject(obj)) {
- var hash = obj["$idHashCode$0"];
- if (hash !== void 0) {
- return hash;
- } else {
- hash = (ScalaJS.lastIDHash + 1) | 0;
- ScalaJS.lastIDHash = hash;
- obj["$idHashCode$0"] = hash;
- return hash;
- }
- } else if (obj === null) {
- return 0;
- } else {
- return ScalaJS.objectHashCode(obj);
- }
-};
-
-// is/as for hijacked boxed classes (the non-trivial ones)
-
-ScalaJS.isByte = function(v) {
- return (v << 24 >> 24) === v;
-};
-
-ScalaJS.isShort = function(v) {
- return (v << 16 >> 16) === v;
-};
-
-ScalaJS.isInt = function(v) {
- return (v | 0) === v;
-};
-
-ScalaJS.isFloat = function(v) {
- return v !== v || ScalaJS.fround(v) === v;
-};
-
-//!if asInstanceOfs != Unchecked
-ScalaJS.asUnit = function(v) {
- if (v === void 0)
- return v;
- else
- ScalaJS.throwClassCastException(v, "scala.runtime.BoxedUnit");
-};
-
-ScalaJS.asBoolean = function(v) {
- if (typeof v === "boolean" || v === null)
- return v;
- else
- ScalaJS.throwClassCastException(v, "java.lang.Boolean");
-};
-
-ScalaJS.asByte = function(v) {
- if (ScalaJS.isByte(v) || v === null)
- return v;
- else
- ScalaJS.throwClassCastException(v, "java.lang.Byte");
-};
-
-ScalaJS.asShort = function(v) {
- if (ScalaJS.isShort(v) || v === null)
- return v;
- else
- ScalaJS.throwClassCastException(v, "java.lang.Short");
-};
-
-ScalaJS.asInt = function(v) {
- if (ScalaJS.isInt(v) || v === null)
- return v;
- else
- ScalaJS.throwClassCastException(v, "java.lang.Integer");
-};
-
-ScalaJS.asFloat = function(v) {
- if (ScalaJS.isFloat(v) || v === null)
- return v;
- else
- ScalaJS.throwClassCastException(v, "java.lang.Float");
-};
-
-ScalaJS.asDouble = function(v) {
- if (typeof v === "number" || v === null)
- return v;
- else
- ScalaJS.throwClassCastException(v, "java.lang.Double");
-};
-//!endif
-
-// Unboxes
-
-//!if asInstanceOfs != Unchecked
-ScalaJS.uZ = function(value) {
- return !!ScalaJS.asBoolean(value);
-};
-ScalaJS.uB = function(value) {
- return ScalaJS.asByte(value) | 0;
-};
-ScalaJS.uS = function(value) {
- return ScalaJS.asShort(value) | 0;
-};
-ScalaJS.uI = function(value) {
- return ScalaJS.asInt(value) | 0;
-};
-ScalaJS.uJ = function(value) {
- return null === value ? ScalaJS.m.sjsr_RuntimeLong().Zero$1
- : ScalaJS.as.sjsr_RuntimeLong(value);
-};
-ScalaJS.uF = function(value) {
- /* Here, it is fine to use + instead of fround, because asFloat already
- * ensures that the result is either null or a float.
- */
- return +ScalaJS.asFloat(value);
-};
-ScalaJS.uD = function(value) {
- return +ScalaJS.asDouble(value);
-};
-//!else
-ScalaJS.uJ = function(value) {
- return null === value ? ScalaJS.m.sjsr_RuntimeLong().Zero$1 : value;
-};
-//!endif
-
-// TypeArray conversions
-
-ScalaJS.byteArray2TypedArray = function(value) { return new Int8Array(value.u); };
-ScalaJS.shortArray2TypedArray = function(value) { return new Int16Array(value.u); };
-ScalaJS.charArray2TypedArray = function(value) { return new Uint16Array(value.u); };
-ScalaJS.intArray2TypedArray = function(value) { return new Int32Array(value.u); };
-ScalaJS.floatArray2TypedArray = function(value) { return new Float32Array(value.u); };
-ScalaJS.doubleArray2TypedArray = function(value) { return new Float64Array(value.u); };
-
-ScalaJS.typedArray2ByteArray = function(value) {
- var arrayClassData = ScalaJS.d.B.getArrayOf();
- return new arrayClassData.constr(new Int8Array(value));
-};
-ScalaJS.typedArray2ShortArray = function(value) {
- var arrayClassData = ScalaJS.d.S.getArrayOf();
- return new arrayClassData.constr(new Int16Array(value));
-};
-ScalaJS.typedArray2CharArray = function(value) {
- var arrayClassData = ScalaJS.d.C.getArrayOf();
- return new arrayClassData.constr(new Uint16Array(value));
-};
-ScalaJS.typedArray2IntArray = function(value) {
- var arrayClassData = ScalaJS.d.I.getArrayOf();
- return new arrayClassData.constr(new Int32Array(value));
-};
-ScalaJS.typedArray2FloatArray = function(value) {
- var arrayClassData = ScalaJS.d.F.getArrayOf();
- return new arrayClassData.constr(new Float32Array(value));
-};
-ScalaJS.typedArray2DoubleArray = function(value) {
- var arrayClassData = ScalaJS.d.D.getArrayOf();
- return new arrayClassData.constr(new Float64Array(value));
-};
-
-/* We have to force a non-elidable *read* of ScalaJS.e, otherwise Closure will
- * eliminate it altogether, along with all the exports, which is ... er ...
- * plain wrong.
- */
-this["__ScalaJSExportsNamespace"] = ScalaJS.e;
-
-// Type data constructors
-
-/** @constructor */
-ScalaJS.PrimitiveTypeData = function(zero, arrayEncodedName, displayName) {
- // Runtime support
- this.constr = undefined;
- this.parentData = undefined;
- this.ancestors = {};
- this.componentData = null;
- this.zero = zero;
- this.arrayEncodedName = arrayEncodedName;
- this._classOf = undefined;
- this._arrayOf = undefined;
- this.isArrayOf = function(obj, depth) { return false; };
-
- // java.lang.Class support
- this["name"] = displayName;
- this["isPrimitive"] = true;
- this["isInterface"] = false;
- this["isArrayClass"] = false;
- this["isInstance"] = function(obj) { return false; };
-};
-
-/** @constructor */
-ScalaJS.ClassTypeData = function(internalNameObj, isInterface, fullName,
- parentData, ancestors, isInstance, isArrayOf) {
- var internalName = ScalaJS.propertyName(internalNameObj);
-
- isInstance = isInstance || function(obj) {
- return !!(obj && obj.$classData && obj.$classData.ancestors[internalName]);
- };
-
- isArrayOf = isArrayOf || function(obj, depth) {
- return !!(obj && obj.$classData && (obj.$classData.arrayDepth === depth)
- && obj.$classData.arrayBase.ancestors[internalName])
- };
-
- // Runtime support
- this.constr = undefined;
- this.parentData = parentData;
- this.ancestors = ancestors;
- this.componentData = null;
- this.zero = null;
- this.arrayEncodedName = "L"+fullName+";";
- this._classOf = undefined;
- this._arrayOf = undefined;
- this.isArrayOf = isArrayOf;
-
- // java.lang.Class support
- this["name"] = fullName;
- this["isPrimitive"] = false;
- this["isInterface"] = isInterface;
- this["isArrayClass"] = false;
- this["isInstance"] = isInstance;
-};
-
-/** @constructor */
-ScalaJS.ArrayTypeData = function(componentData) {
- // The constructor
-
- var componentZero = componentData.zero;
-
- // The zero for the Long runtime representation
- // is a special case here, since the class has not
- // been defined yet, when this file is read
- if (componentZero == "longZero")
- componentZero = ScalaJS.m.sjsr_RuntimeLong().Zero$1;
-
- /** @constructor */
- var ArrayClass = function(arg) {
- if (typeof(arg) === "number") {
- // arg is the length of the array
- this.u = new Array(arg);
- for (var i = 0; i < arg; i++)
- this.u[i] = componentZero;
- } else {
- // arg is a native array that we wrap
- this.u = arg;
- }
- }
- ArrayClass.prototype = new ScalaJS.h.O;
- ArrayClass.prototype.constructor = ArrayClass;
- ArrayClass.prototype.$classData = this;
-
- ArrayClass.prototype.clone__O = function() {
- if (this.u instanceof Array)
- return new ArrayClass(this.u["slice"](0));
- else
- // The underlying Array is a TypedArray
- return new ArrayClass(this.u.constructor(this.u));
- };
-
- // Don't generate reflective call proxies. The compiler special cases
- // reflective calls to methods on scala.Array
-
- // The data
-
- var encodedName = "[" + componentData.arrayEncodedName;
- var componentBase = componentData.arrayBase || componentData;
- var componentDepth = componentData.arrayDepth || 0;
- var arrayDepth = componentDepth + 1;
-
- var isInstance = function(obj) {
- return componentBase.isArrayOf(obj, arrayDepth);
- }
-
- // Runtime support
- this.constr = ArrayClass;
- this.parentData = ScalaJS.d.O;
- this.ancestors = {O: 1};
- this.componentData = componentData;
- this.arrayBase = componentBase;
- this.arrayDepth = arrayDepth;
- this.zero = null;
- this.arrayEncodedName = encodedName;
- this._classOf = undefined;
- this._arrayOf = undefined;
- this.isArrayOf = undefined;
-
- // java.lang.Class support
- this["name"] = encodedName;
- this["isPrimitive"] = false;
- this["isInterface"] = false;
- this["isArrayClass"] = true;
- this["isInstance"] = isInstance;
-};
-
-ScalaJS.ClassTypeData.prototype.getClassOf = function() {
- if (!this._classOf)
- this._classOf = new ScalaJS.c.jl_Class().init___jl_ScalaJSClassData(this);
- return this._classOf;
-};
-
-ScalaJS.ClassTypeData.prototype.getArrayOf = function() {
- if (!this._arrayOf)
- this._arrayOf = new ScalaJS.ArrayTypeData(this);
- return this._arrayOf;
-};
-
-// java.lang.Class support
-
-ScalaJS.ClassTypeData.prototype["getFakeInstance"] = function() {
- if (this === ScalaJS.d.T)
- return "some string";
- else if (this === ScalaJS.d.jl_Boolean)
- return false;
- else if (this === ScalaJS.d.jl_Byte ||
- this === ScalaJS.d.jl_Short ||
- this === ScalaJS.d.jl_Integer ||
- this === ScalaJS.d.jl_Float ||
- this === ScalaJS.d.jl_Double)
- return 0;
- else if (this === ScalaJS.d.jl_Long)
- return ScalaJS.m.sjsr_RuntimeLong().Zero$1;
- else if (this === ScalaJS.d.sr_BoxedUnit)
- return void 0;
- else
- return {$classData: this};
-};
-
-ScalaJS.ClassTypeData.prototype["getSuperclass"] = function() {
- return this.parentData ? this.parentData.getClassOf() : null;
-};
-
-ScalaJS.ClassTypeData.prototype["getComponentType"] = function() {
- return this.componentData ? this.componentData.getClassOf() : null;
-};
-
-ScalaJS.ClassTypeData.prototype["newArrayOfThisClass"] = function(lengths) {
- var arrayClassData = this;
- for (var i = 0; i < lengths.length; i++)
- arrayClassData = arrayClassData.getArrayOf();
- return ScalaJS.newArrayObject(arrayClassData, lengths);
-};
-
-ScalaJS.PrimitiveTypeData.prototype = ScalaJS.ClassTypeData.prototype;
-ScalaJS.ArrayTypeData.prototype = ScalaJS.ClassTypeData.prototype;
-
-// Create primitive types
-
-ScalaJS.d.V = new ScalaJS.PrimitiveTypeData(undefined, "V", "void");
-ScalaJS.d.Z = new ScalaJS.PrimitiveTypeData(false, "Z", "boolean");
-ScalaJS.d.C = new ScalaJS.PrimitiveTypeData(0, "C", "char");
-ScalaJS.d.B = new ScalaJS.PrimitiveTypeData(0, "B", "byte");
-ScalaJS.d.S = new ScalaJS.PrimitiveTypeData(0, "S", "short");
-ScalaJS.d.I = new ScalaJS.PrimitiveTypeData(0, "I", "int");
-ScalaJS.d.J = new ScalaJS.PrimitiveTypeData("longZero", "J", "long");
-ScalaJS.d.F = new ScalaJS.PrimitiveTypeData(0.0, "F", "float");
-ScalaJS.d.D = new ScalaJS.PrimitiveTypeData(0.0, "D", "double");
-
-// Instance tests for array of primitives
-
-ScalaJS.isArrayOf.Z = ScalaJS.makeIsArrayOfPrimitive(ScalaJS.d.Z);
-ScalaJS.d.Z.isArrayOf = ScalaJS.isArrayOf.Z;
-
-ScalaJS.isArrayOf.C = ScalaJS.makeIsArrayOfPrimitive(ScalaJS.d.C);
-ScalaJS.d.C.isArrayOf = ScalaJS.isArrayOf.C;
-
-ScalaJS.isArrayOf.B = ScalaJS.makeIsArrayOfPrimitive(ScalaJS.d.B);
-ScalaJS.d.B.isArrayOf = ScalaJS.isArrayOf.B;
-
-ScalaJS.isArrayOf.S = ScalaJS.makeIsArrayOfPrimitive(ScalaJS.d.S);
-ScalaJS.d.S.isArrayOf = ScalaJS.isArrayOf.S;
-
-ScalaJS.isArrayOf.I = ScalaJS.makeIsArrayOfPrimitive(ScalaJS.d.I);
-ScalaJS.d.I.isArrayOf = ScalaJS.isArrayOf.I;
-
-ScalaJS.isArrayOf.J = ScalaJS.makeIsArrayOfPrimitive(ScalaJS.d.J);
-ScalaJS.d.J.isArrayOf = ScalaJS.isArrayOf.J;
-
-ScalaJS.isArrayOf.F = ScalaJS.makeIsArrayOfPrimitive(ScalaJS.d.F);
-ScalaJS.d.F.isArrayOf = ScalaJS.isArrayOf.F;
-
-ScalaJS.isArrayOf.D = ScalaJS.makeIsArrayOfPrimitive(ScalaJS.d.D);
-ScalaJS.d.D.isArrayOf = ScalaJS.isArrayOf.D;
-
-//!if asInstanceOfs != Unchecked
-// asInstanceOfs for array of primitives
-ScalaJS.asArrayOf.Z = ScalaJS.makeAsArrayOfPrimitive(ScalaJS.isArrayOf.Z, "Z");
-ScalaJS.asArrayOf.C = ScalaJS.makeAsArrayOfPrimitive(ScalaJS.isArrayOf.C, "C");
-ScalaJS.asArrayOf.B = ScalaJS.makeAsArrayOfPrimitive(ScalaJS.isArrayOf.B, "B");
-ScalaJS.asArrayOf.S = ScalaJS.makeAsArrayOfPrimitive(ScalaJS.isArrayOf.S, "S");
-ScalaJS.asArrayOf.I = ScalaJS.makeAsArrayOfPrimitive(ScalaJS.isArrayOf.I, "I");
-ScalaJS.asArrayOf.J = ScalaJS.makeAsArrayOfPrimitive(ScalaJS.isArrayOf.J, "J");
-ScalaJS.asArrayOf.F = ScalaJS.makeAsArrayOfPrimitive(ScalaJS.isArrayOf.F, "F");
-ScalaJS.asArrayOf.D = ScalaJS.makeAsArrayOfPrimitive(ScalaJS.isArrayOf.D, "D");
-//!endif
-
-// Polyfills
-
-ScalaJS.imul = ScalaJS.g["Math"]["imul"] || (function(a, b) {
- // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul
- var ah = (a >>> 16) & 0xffff;
- var al = a & 0xffff;
- var bh = (b >>> 16) & 0xffff;
- var bl = b & 0xffff;
- // the shift by 0 fixes the sign on the high part
- // the final |0 converts the unsigned value into a signed value
- return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0);
-});
-
-ScalaJS.fround = ScalaJS.g["Math"]["fround"] ||
-//!if floats == Strict
- (ScalaJS.g["Float32Array"] ? (function(v) {
- var array = new ScalaJS.g["Float32Array"](1);
- array[0] = v;
- return array[0];
- }) : (function(v) {
- return ScalaJS.m.sjsr_package().froundPolyfill__D__D(+v);
- }));
-//!else
- (function(v) {
- return +v;
- });
-//!endif