Created
October 17, 2014 22:02
-
-
Save sjrd/f1366afad5702fe3819b to your computer and use it in GitHub Desktop.
Differences in reversi-fastopt.js from optimizing AnonFunctions to optimizing Closures
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git "a/C:\\Users\\Sepi\\Documents\\Projets\\reversi-fastopt.js" "b/C:\\Users\\Sepi\\Documents\\Projets\\scalajs\\examples\\reversi\\target\\scala-2.11\\reversi-fastopt.js" | |
index 2eba7e5..d384cf7 100644 | |
--- "a/C:\\Users\\Sepi\\Documents\\Projets\\reversi-fastopt.js" | |
+++ "b/C:\\Users\\Sepi\\Documents\\Projets\\scalajs\\examples\\reversi\\target\\scala-2.11\\reversi-fastopt.js" | |
@@ -906,6 +906,12 @@ ScalaJS.i.sc_GenSetLike$class__equals__sc_GenSetLike__O__Z = (function($$this, t | |
return false | |
} | |
}); | |
+ScalaJS.i.sc_IndexedSeqLike$class__toBuffer__sc_IndexedSeqLike__scm_Buffer = (function($$this) { | |
+ var result = new ScalaJS.c.scm_ArrayBuffer().init___I($$this.size__I()); | |
+ var xs = $$this.seq__sc_TraversableOnce(); | |
+ result.$$plus$plus$eq__sc_TraversableOnce__scm_ArrayBuffer(xs); | |
+ return result | |
+}); | |
ScalaJS.i.sc_IndexedSeqOptimized$class__lengthCompare__sc_IndexedSeqOptimized__I__I = (function($$this, len) { | |
return (($$this.length__I() - len) | 0) | |
}); | |
@@ -994,6 +1000,19 @@ ScalaJS.i.sc_Iterator$class__foreach__sc_Iterator__F1__V = (function($$this, f) | |
f.apply__O__O($$this.next__O()) | |
} | |
}); | |
+ScalaJS.i.sc_Iterator$class__copyToArray__sc_Iterator__O__I__I__V = (function($$this, xs, start, len) { | |
+ var requirement = ((start >= 0) && ((start < ScalaJS.m.sr_ScalaRunTime().array$undlength__O__I(xs)) || (ScalaJS.m.sr_ScalaRunTime().array$undlength__O__I(xs) === 0))); | |
+ if ((!requirement)) { | |
+ throw new ScalaJS.c.jl_IllegalArgumentException().init___T(("requirement failed: " + new ScalaJS.c.s_StringContext().init___sc_Seq(new ScalaJS.c.sjs_js_WrappedArray().init___sjs_js_Array(["start ", " out of range ", ""])).s__sc_Seq__T(new ScalaJS.c.sjs_js_WrappedArray().init___sjs_js_Array([start, ScalaJS.m.sr_ScalaRunTime().array$undlength__O__I(xs)])))) | |
+ }; | |
+ var i = start; | |
+ var y = ((ScalaJS.m.sr_ScalaRunTime().array$undlength__O__I(xs) - start) | 0); | |
+ var end = ((start + ((len < y) ? len : y)) | 0); | |
+ while (((i < end) && $$this.hasNext__Z())) { | |
+ ScalaJS.m.sr_ScalaRunTime().array$undupdate__O__I__O__V(xs, i, $$this.next__O()); | |
+ i = ((1 + i) | 0) | |
+ } | |
+}); | |
ScalaJS.i.sc_Iterator$class__isEmpty__sc_Iterator__Z = (function($$this) { | |
return (!$$this.hasNext__Z()) | |
}); | |
@@ -1120,6 +1139,12 @@ ScalaJS.i.sc_SeqLike$class__lengthCompare__sc_SeqLike__I__I = (function($$this, | |
return ((i - len) | 0) | |
} | |
}); | |
+ScalaJS.i.sc_SetLike$class__toBuffer__sc_SetLike__scm_Buffer = (function($$this) { | |
+ var result = new ScalaJS.c.scm_ArrayBuffer().init___I($$this.size__I()); | |
+ var xs = $$this.seq__sc_TraversableOnce(); | |
+ result.$$plus$plus$eq__sc_TraversableOnce__scm_ArrayBuffer(xs); | |
+ return result | |
+}); | |
ScalaJS.i.sc_SetLike$class__isEmpty__sc_SetLike__Z = (function($$this) { | |
return ($$this.size__I() === 0) | |
}); | |
@@ -1161,20 +1186,37 @@ ScalaJS.i.sc_TraversableLike$class__headOption__sc_TraversableLike__s_Option = ( | |
ScalaJS.i.sc_TraversableLike$class__toString__sc_TraversableLike__T = (function($$this) { | |
return $$this.mkString__T__T__T__T(($$this.stringPrefix__T() + "("), ", ", ")") | |
}); | |
-ScalaJS.i.sc_TraversableLike$class__map__sc_TraversableLike__F1__scg_CanBuildFrom__O = (function($$this, f, bf) { | |
- var b = ScalaJS.i.sc_TraversableLike$class__builder$1__sc_TraversableLike__scg_CanBuildFrom__scm_Builder($$this, bf); | |
- $$this.foreach__F1__V(new ScalaJS.c.sjsr_AnonFunction1().init___sjs_js_Function1((function($$this$1, b$1, f$1) { | |
- return (function(x$2) { | |
- return b$1.$$plus$eq__O__scm_Builder(f$1.apply__O__O(x$2)) | |
- }) | |
- })($$this, b, f))); | |
- return b.result__O() | |
+ScalaJS.i.sc_TraversableOnce$class__toArray__sc_TraversableOnce__s_reflect_ClassTag__O = (function($$this, evidence$1) { | |
+ if ($$this.isTraversableAgain__Z()) { | |
+ var result = evidence$1.newArray__I__O($$this.size__I()); | |
+ $$this.copyToArray__O__I__V(result, 0); | |
+ return result | |
+ } else { | |
+ return $$this.toBuffer__scm_Buffer().toArray__s_reflect_ClassTag__O(evidence$1) | |
+ } | |
}); | |
ScalaJS.i.sc_TraversableOnce$class__mkString__sc_TraversableOnce__T__T__T__T = (function($$this, start, sep, end) { | |
var this$1 = $$this.addString__scm_StringBuilder__T__T__T__scm_StringBuilder(new ScalaJS.c.scm_StringBuilder().init___(), start, sep, end); | |
var this$2 = this$1.underlying$5; | |
return this$2.content$1 | |
}); | |
+ScalaJS.i.sc_TraversableOnce$class__size__sc_TraversableOnce__I = (function($$this) { | |
+ var result = new ScalaJS.c.sr_IntRef().init___I(0); | |
+ $$this.foreach__F1__V(new ScalaJS.c.sjsr_AnonFunction1().init___sjs_js_Function1((function($$this$1, result$1) { | |
+ return (function(x$2) { | |
+ result$1.elem$1 = ((1 + result$1.elem$1) | 0) | |
+ }) | |
+ })($$this, result))); | |
+ return result.elem$1 | |
+}); | |
+ScalaJS.i.sc_TraversableOnce$class__copyToArray__sc_TraversableOnce__O__I__V = (function($$this, xs, start) { | |
+ $$this.copyToArray__O__I__I__V(xs, start, ((ScalaJS.m.sr_ScalaRunTime().array$undlength__O__I(xs) - start) | 0)) | |
+}); | |
+ScalaJS.i.sc_TraversableOnce$class__to__sc_TraversableOnce__scg_CanBuildFrom__O = (function($$this, cbf) { | |
+ var b = cbf.apply__scm_Builder(); | |
+ b.$$plus$plus$eq__sc_TraversableOnce__scg_Growable($$this.seq__sc_TraversableOnce()); | |
+ return b.result__O() | |
+}); | |
ScalaJS.i.sc_TraversableOnce$class__nonEmpty__sc_TraversableOnce__Z = (function($$this) { | |
return (!$$this.isEmpty__Z()) | |
}); | |
@@ -4082,22 +4124,22 @@ ScalaJS.c.s_StringContext.prototype.checkLengths__sc_Seq__V = (function(args) { | |
} | |
}); | |
ScalaJS.c.s_StringContext.prototype.s__sc_Seq__T = (function(args) { | |
- return this.standardInterpolator__F1__sc_Seq__T(new ScalaJS.c.sjsr_AnonFunction1().init___sjs_js_Function1((function(this$2) { | |
+ var f = (function(this$2) { | |
return (function(str$2) { | |
var str = ScalaJS.as.T(str$2); | |
var this$1 = ScalaJS.m.s_StringContext(); | |
return this$1.treatEscapes0__p1__T__Z__T(str, false) | |
}) | |
- })(this)), args) | |
-}); | |
-ScalaJS.c.s_StringContext.prototype.standardInterpolator__F1__sc_Seq__T = (function(process, args) { | |
+ })(this); | |
this.checkLengths__sc_Seq__V(args); | |
var pi = this.parts$1.iterator__sc_Iterator(); | |
var ai = args.iterator__sc_Iterator(); | |
- var bldr = new ScalaJS.c.jl_StringBuilder().init___T(ScalaJS.as.T(process.apply__O__O(pi.next__O()))); | |
+ var arg1 = pi.next__O(); | |
+ var bldr = new ScalaJS.c.jl_StringBuilder().init___T(ScalaJS.as.T(f(arg1))); | |
while (ai.hasNext__Z()) { | |
bldr.append__O__jl_StringBuilder(ai.next__O()); | |
- bldr.append__T__jl_StringBuilder(ScalaJS.as.T(process.apply__O__O(pi.next__O()))) | |
+ var arg1$1 = pi.next__O(); | |
+ bldr.append__T__jl_StringBuilder(ScalaJS.as.T(f(arg1$1))) | |
}; | |
return bldr.content$1 | |
}); | |
@@ -5798,6 +5840,9 @@ ScalaJS.h.sc_AbstractIterator.prototype = ScalaJS.c.sc_AbstractIterator.prototyp | |
ScalaJS.c.sc_AbstractIterator.prototype.seq__sc_TraversableOnce = (function() { | |
return this | |
}); | |
+ScalaJS.c.sc_AbstractIterator.prototype.copyToArray__O__I__V = (function(xs, start) { | |
+ ScalaJS.i.sc_TraversableOnce$class__copyToArray__sc_TraversableOnce__O__I__V(this, xs, start) | |
+}); | |
ScalaJS.c.sc_AbstractIterator.prototype.init___ = (function() { | |
return this | |
}); | |
@@ -5810,12 +5855,26 @@ ScalaJS.c.sc_AbstractIterator.prototype.toString__T = (function() { | |
ScalaJS.c.sc_AbstractIterator.prototype.foreach__F1__V = (function(f) { | |
ScalaJS.i.sc_Iterator$class__foreach__sc_Iterator__F1__V(this, f) | |
}); | |
+ScalaJS.c.sc_AbstractIterator.prototype.toBuffer__scm_Buffer = (function() { | |
+ var this$1 = ScalaJS.m.scm_ArrayBuffer(); | |
+ var cbf = this$1.ReusableCBFInstance$2; | |
+ return ScalaJS.as.scm_Buffer(ScalaJS.i.sc_TraversableOnce$class__to__sc_TraversableOnce__scg_CanBuildFrom__O(this, cbf)) | |
+}); | |
+ScalaJS.c.sc_AbstractIterator.prototype.size__I = (function() { | |
+ return ScalaJS.i.sc_TraversableOnce$class__size__sc_TraversableOnce__I(this) | |
+}); | |
ScalaJS.c.sc_AbstractIterator.prototype.toStream__sci_Stream = (function() { | |
return ScalaJS.i.sc_Iterator$class__toStream__sc_Iterator__sci_Stream(this) | |
}); | |
ScalaJS.c.sc_AbstractIterator.prototype.addString__scm_StringBuilder__T__T__T__scm_StringBuilder = (function(b, start, sep, end) { | |
return ScalaJS.i.sc_TraversableOnce$class__addString__sc_TraversableOnce__scm_StringBuilder__T__T__T__scm_StringBuilder(this, b, start, sep, end) | |
}); | |
+ScalaJS.c.sc_AbstractIterator.prototype.isTraversableAgain__Z = (function() { | |
+ return false | |
+}); | |
+ScalaJS.c.sc_AbstractIterator.prototype.copyToArray__O__I__I__V = (function(xs, start, len) { | |
+ ScalaJS.i.sc_Iterator$class__copyToArray__sc_Iterator__O__I__I__V(this, xs, start, len) | |
+}); | |
ScalaJS.is.sc_AbstractIterator = (function(obj) { | |
return (!(!((obj && obj.$classData) && obj.$classData.ancestors.sc_AbstractIterator))) | |
}); | |
@@ -5849,15 +5908,29 @@ ScalaJS.h.sc_AbstractTraversable = (function() { | |
/*<skip>*/ | |
}); | |
ScalaJS.h.sc_AbstractTraversable.prototype = ScalaJS.c.sc_AbstractTraversable.prototype; | |
+ScalaJS.c.sc_AbstractTraversable.prototype.copyToArray__O__I__V = (function(xs, start) { | |
+ ScalaJS.i.sc_TraversableOnce$class__copyToArray__sc_TraversableOnce__O__I__V(this, xs, start) | |
+}); | |
ScalaJS.c.sc_AbstractTraversable.prototype.mkString__T__T__T__T = (function(start, sep, end) { | |
return ScalaJS.i.sc_TraversableOnce$class__mkString__sc_TraversableOnce__T__T__T__T(this, start, sep, end) | |
}); | |
+ScalaJS.c.sc_AbstractTraversable.prototype.toBuffer__scm_Buffer = (function() { | |
+ var this$1 = ScalaJS.m.scm_ArrayBuffer(); | |
+ var cbf = this$1.ReusableCBFInstance$2; | |
+ return ScalaJS.as.scm_Buffer(ScalaJS.i.sc_TraversableLike$class__to__sc_TraversableLike__scg_CanBuildFrom__O(this, cbf)) | |
+}); | |
ScalaJS.c.sc_AbstractTraversable.prototype.addString__scm_StringBuilder__T__T__T__scm_StringBuilder = (function(b, start, sep, end) { | |
return ScalaJS.i.sc_TraversableOnce$class__addString__sc_TraversableOnce__scm_StringBuilder__T__T__T__scm_StringBuilder(this, b, start, sep, end) | |
}); | |
ScalaJS.c.sc_AbstractTraversable.prototype.repr__O = (function() { | |
return this | |
}); | |
+ScalaJS.c.sc_AbstractTraversable.prototype.isTraversableAgain__Z = (function() { | |
+ return true | |
+}); | |
+ScalaJS.c.sc_AbstractTraversable.prototype.toArray__s_reflect_ClassTag__O = (function(evidence$1) { | |
+ return ScalaJS.i.sc_TraversableOnce$class__toArray__sc_TraversableOnce__s_reflect_ClassTag__O(this, evidence$1) | |
+}); | |
ScalaJS.c.sc_AbstractTraversable.prototype.newBuilder__scm_Builder = (function() { | |
return this.companion__scg_GenericCompanion().newBuilder__scm_Builder() | |
}); | |
@@ -6720,38 +6793,27 @@ ScalaJS.c.sci_Range$.prototype.init___ = (function() { | |
ScalaJS.c.sci_Range$.prototype.description__p1__I__I__I__Z__T = (function(start, end, step, isInclusive) { | |
var this$2 = new ScalaJS.c.sci_StringOps().init___T("%d %s %d by %s"); | |
var array = [start, (isInclusive ? "to" : "until"), end, step]; | |
- var jsx$3 = ScalaJS.m.sjsr_RuntimeString(); | |
+ var jsx$1 = ScalaJS.m.sjsr_RuntimeString(); | |
+ var f = (function($$this$1) { | |
+ return (function(arg$2) { | |
+ return ScalaJS.i.sci_StringLike$class__unwrapArg__sci_StringLike__O__O($$this$1, arg$2) | |
+ }) | |
+ })(this$2); | |
var this$4 = ScalaJS.m.sc_Seq(); | |
ScalaJS.m.sjs_js_WrappedArray(); | |
- var array$1 = []; | |
+ var b = new ScalaJS.c.sjs_js_WrappedArray().init___(); | |
ScalaJS.uI(array["length"]); | |
var i = 0; | |
var len = ScalaJS.uI(array["length"]); | |
while ((i < len)) { | |
var index = i; | |
- var x$2 = array[index]; | |
- var elem = ScalaJS.i.sci_StringLike$class__unwrapArg__sci_StringLike__O__O(this$2, x$2); | |
- array$1["push"](elem); | |
+ var arg1 = array[index]; | |
+ var elem = f(arg1); | |
+ b.array$6["push"](elem); | |
i = ((1 + i) | 0) | |
}; | |
var evidence$1 = ScalaJS.m.s_reflect_ClassTag().AnyRef$1; | |
- var result = evidence$1.newArray__I__O(ScalaJS.uI(array$1["length"])); | |
- var len$1 = ScalaJS.m.sr_ScalaRunTime().array$undlength__O__I(result); | |
- var i$1 = 0; | |
- var j = 0; | |
- var $$this$1 = ScalaJS.uI(array$1["length"]); | |
- var $$this$2 = (($$this$1 < len$1) ? $$this$1 : len$1); | |
- var that = ScalaJS.m.sr_ScalaRunTime().array$undlength__O__I(result); | |
- var end$1 = (($$this$2 < that) ? $$this$2 : that); | |
- while ((i$1 < end$1)) { | |
- var jsx$2 = ScalaJS.m.sr_ScalaRunTime(); | |
- var jsx$1 = j; | |
- var index$1 = i$1; | |
- jsx$2.array$undupdate__O__I__O__V(result, jsx$1, array$1[index$1]); | |
- i$1 = ((1 + i$1) | 0); | |
- j = ((1 + j) | 0) | |
- }; | |
- return jsx$3.format__T__AO__T(this$2.repr$1, ScalaJS.asArrayOf.O(result, 1)) | |
+ return jsx$1.format__T__AO__T(this$2.repr$1, ScalaJS.asArrayOf.O(ScalaJS.i.sc_TraversableOnce$class__toArray__sc_TraversableOnce__s_reflect_ClassTag__O(b, evidence$1), 1)) | |
}); | |
ScalaJS.c.sci_Range$.prototype.scala$collection$immutable$Range$$fail__I__I__I__Z__sr_Nothing$ = (function(start, end, step, isInclusive) { | |
throw new ScalaJS.c.jl_IllegalArgumentException().init___T((this.description__p1__I__I__I__Z__T(start, end, step, isInclusive) + ": seqs cannot contain more than Int.MaxValue elements.")) | |
@@ -6891,6 +6953,9 @@ ScalaJS.c.sci_StringOps.prototype.seq__sc_TraversableOnce = (function() { | |
var $$this = this.repr$1; | |
return new ScalaJS.c.sci_WrappedString().init___T($$this) | |
}); | |
+ScalaJS.c.sci_StringOps.prototype.copyToArray__O__I__V = (function(xs, start) { | |
+ ScalaJS.i.sc_TraversableOnce$class__copyToArray__sc_TraversableOnce__O__I__V(this, xs, start) | |
+}); | |
ScalaJS.c.sci_StringOps.prototype.head__O = (function() { | |
return ScalaJS.i.sc_IndexedSeqOptimized$class__head__sc_IndexedSeqOptimized__O(this) | |
}); | |
@@ -6924,6 +6989,9 @@ ScalaJS.c.sci_StringOps.prototype.toString__T = (function() { | |
ScalaJS.c.sci_StringOps.prototype.foreach__F1__V = (function(f) { | |
ScalaJS.i.sc_IndexedSeqOptimized$class__foreach__sc_IndexedSeqOptimized__F1__V(this, f) | |
}); | |
+ScalaJS.c.sci_StringOps.prototype.toBuffer__scm_Buffer = (function() { | |
+ return ScalaJS.i.sc_IndexedSeqLike$class__toBuffer__sc_IndexedSeqLike__scm_Buffer(this) | |
+}); | |
ScalaJS.c.sci_StringOps.prototype.size__I = (function() { | |
var $$this = this.repr$1; | |
return ScalaJS.i.sjsr_RuntimeString$class__length__sjsr_RuntimeString__I($$this) | |
@@ -6953,6 +7021,9 @@ ScalaJS.c.sci_StringOps.prototype.hashCode__I = (function() { | |
ScalaJS.c.sci_StringOps.prototype.copyToArray__O__I__I__V = (function(xs, start, len) { | |
ScalaJS.i.sc_IndexedSeqOptimized$class__copyToArray__sc_IndexedSeqOptimized__O__I__I__V(this, xs, start, len) | |
}); | |
+ScalaJS.c.sci_StringOps.prototype.isTraversableAgain__Z = (function() { | |
+ return true | |
+}); | |
ScalaJS.c.sci_StringOps.prototype.init___T = (function(repr) { | |
this.repr$1 = repr; | |
return this | |
@@ -7312,6 +7383,59 @@ ScalaJS.m.scm_ArrayBuilder = (function() { | |
}; | |
return ScalaJS.n.scm_ArrayBuilder | |
}); | |
+ScalaJS.is.scm_Buffer = (function(obj) { | |
+ return (!(!((obj && obj.$classData) && obj.$classData.ancestors.scm_Buffer))) | |
+}); | |
+ScalaJS.as.scm_Buffer = (function(obj) { | |
+ return ((ScalaJS.is.scm_Buffer(obj) || (obj === null)) ? obj : ScalaJS.throwClassCastException(obj, "scala.collection.mutable.Buffer")) | |
+}); | |
+ScalaJS.isArrayOf.scm_Buffer = (function(obj, depth) { | |
+ return (!(!(((obj && obj.$classData) && (obj.$classData.arrayDepth === depth)) && obj.$classData.arrayBase.ancestors.scm_Buffer))) | |
+}); | |
+ScalaJS.asArrayOf.scm_Buffer = (function(obj, depth) { | |
+ return ((ScalaJS.isArrayOf.scm_Buffer(obj, depth) || (obj === null)) ? obj : ScalaJS.throwArrayCastException(obj, "Lscala.collection.mutable.Buffer;", depth)) | |
+}); | |
+ScalaJS.d.scm_Buffer = new ScalaJS.ClassTypeData({ | |
+ scm_Buffer: 0 | |
+}, true, "scala.collection.mutable.Buffer", (void 0), { | |
+ scm_Buffer: 1, | |
+ scm_BufferLike: 1, | |
+ scg_Subtractable: 1, | |
+ sc_script_Scriptable: 1, | |
+ scg_Shrinkable: 1, | |
+ scg_Growable: 1, | |
+ scg_Clearable: 1, | |
+ scm_Seq: 1, | |
+ scm_SeqLike: 1, | |
+ scm_Cloneable: 1, | |
+ s_Cloneable: 1, | |
+ jl_Cloneable: 1, | |
+ sc_Seq: 1, | |
+ sc_SeqLike: 1, | |
+ sc_GenSeq: 1, | |
+ sc_GenSeqLike: 1, | |
+ s_PartialFunction: 1, | |
+ F1: 1, | |
+ scm_Iterable: 1, | |
+ sc_Iterable: 1, | |
+ sc_IterableLike: 1, | |
+ s_Equals: 1, | |
+ sc_GenIterable: 1, | |
+ sc_GenIterableLike: 1, | |
+ scm_Traversable: 1, | |
+ s_Mutable: 1, | |
+ sc_Traversable: 1, | |
+ sc_GenTraversable: 1, | |
+ scg_GenericTraversableTemplate: 1, | |
+ sc_TraversableLike: 1, | |
+ sc_GenTraversableLike: 1, | |
+ sc_Parallelizable: 1, | |
+ sc_TraversableOnce: 1, | |
+ sc_GenTraversableOnce: 1, | |
+ scg_FilterMonadic: 1, | |
+ scg_HasNewBuilder: 1, | |
+ O: 1 | |
+}); | |
ScalaJS.is.scm_Builder = (function(obj) { | |
return (!(!((obj && obj.$classData) && obj.$classData.ancestors.scm_Builder))) | |
}); | |
@@ -9061,13 +9185,41 @@ ScalaJS.c.Lreversi_Reversi$$anonfun$computeFlips$1$$anonfun$apply$3.prototype.ap | |
return this.apply__I__sci_List(ScalaJS.uI(v1)) | |
}); | |
ScalaJS.c.Lreversi_Reversi$$anonfun$computeFlips$1$$anonfun$apply$3.prototype.apply__I__sci_List = (function(j) { | |
- var jsx$2 = this.$$outer$2.$$outer$2.computeFlipsInDirection__I__I__I__I__sci_List(this.$$outer$2.square$1$f.x$1, this.$$outer$2.square$1$f.y$1, this.i$1$2, j); | |
- var jsx$1 = new ScalaJS.c.sjsr_AnonFunction1().init___sjs_js_Function1((function(flip$2) { | |
+ var this$2 = this.$$outer$2.$$outer$2.computeFlipsInDirection__I__I__I__I__sci_List(this.$$outer$2.square$1$f.x$1, this.$$outer$2.square$1$f.y$1, this.i$1$2, j); | |
+ var f = (function(flip$2) { | |
var flip = ScalaJS.as.Lreversi_Reversi$Square(flip$2); | |
return flip | |
- })); | |
+ }); | |
var this$1 = ScalaJS.m.sci_List(); | |
- return ScalaJS.as.sci_List(jsx$2.map__F1__scg_CanBuildFrom__O(jsx$1, this$1.ReusableCBFInstance$2)) | |
+ var bf = this$1.ReusableCBFInstance$2; | |
+ if ((bf === ScalaJS.m.sci_List().ReusableCBFInstance$2)) { | |
+ if ((this$2 === ScalaJS.m.sci_Nil())) { | |
+ var jsx$1 = ScalaJS.m.sci_Nil() | |
+ } else { | |
+ var arg1 = this$2.head__O(); | |
+ var h = new ScalaJS.c.sci_$colon$colon().init___O__sci_List(f(arg1), ScalaJS.m.sci_Nil()); | |
+ var t = h; | |
+ var rest = ScalaJS.as.sci_List(this$2.tail__O()); | |
+ while ((rest !== ScalaJS.m.sci_Nil())) { | |
+ var arg1$1 = rest.head__O(); | |
+ var nx = new ScalaJS.c.sci_$colon$colon().init___O__sci_List(f(arg1$1), ScalaJS.m.sci_Nil()); | |
+ t.tl$5 = nx; | |
+ t = nx; | |
+ rest = ScalaJS.as.sci_List(rest.tail__O()) | |
+ }; | |
+ var jsx$1 = h | |
+ } | |
+ } else { | |
+ var b = ScalaJS.i.sc_TraversableLike$class__builder$1__sc_TraversableLike__scg_CanBuildFrom__scm_Builder(this$2, bf); | |
+ var these = this$2; | |
+ while ((!these.isEmpty__Z())) { | |
+ var arg1$2 = these.head__O(); | |
+ b.$$plus$eq__O__scm_Builder(f(arg1$2)); | |
+ these = ScalaJS.as.sci_List(these.tail__O()) | |
+ }; | |
+ var jsx$1 = b.result__O() | |
+ }; | |
+ return ScalaJS.as.sci_List(jsx$1) | |
}); | |
ScalaJS.is.Lreversi_Reversi$$anonfun$computeFlips$1$$anonfun$apply$3 = (function(obj) { | |
return (!(!((obj && obj.$classData) && obj.$classData.ancestors.Lreversi_Reversi$$anonfun$computeFlips$1$$anonfun$apply$3))) | |
@@ -12797,38 +12949,27 @@ ScalaJS.c.sjsr_RuntimeLong.prototype.toHexString__T = (function() { | |
var arg$macro$1 = this.h$2; | |
var this$2 = new ScalaJS.c.sci_StringOps().init___T("%05x%05x%06x"); | |
var array = [arg$macro$1, mp, lp]; | |
- var jsx$3 = ScalaJS.m.sjsr_RuntimeString(); | |
+ var jsx$1 = ScalaJS.m.sjsr_RuntimeString(); | |
+ var f = (function($$this$1) { | |
+ return (function(arg$2) { | |
+ return ScalaJS.i.sci_StringLike$class__unwrapArg__sci_StringLike__O__O($$this$1, arg$2) | |
+ }) | |
+ })(this$2); | |
var this$4 = ScalaJS.m.sc_Seq(); | |
ScalaJS.m.sjs_js_WrappedArray(); | |
- var array$1 = []; | |
+ var b = new ScalaJS.c.sjs_js_WrappedArray().init___(); | |
ScalaJS.uI(array["length"]); | |
var i = 0; | |
var len = ScalaJS.uI(array["length"]); | |
while ((i < len)) { | |
var index = i; | |
- var x$2 = array[index]; | |
- var elem = ScalaJS.i.sci_StringLike$class__unwrapArg__sci_StringLike__O__O(this$2, x$2); | |
- array$1["push"](elem); | |
+ var arg1 = array[index]; | |
+ var elem = f(arg1); | |
+ b.array$6["push"](elem); | |
i = ((1 + i) | 0) | |
}; | |
var evidence$1 = ScalaJS.m.s_reflect_ClassTag().AnyRef$1; | |
- var result = evidence$1.newArray__I__O(ScalaJS.uI(array$1["length"])); | |
- var len$1 = ScalaJS.m.sr_ScalaRunTime().array$undlength__O__I(result); | |
- var i$1 = 0; | |
- var j = 0; | |
- var $$this$1 = ScalaJS.uI(array$1["length"]); | |
- var $$this$2 = (($$this$1 < len$1) ? $$this$1 : len$1); | |
- var that = ScalaJS.m.sr_ScalaRunTime().array$undlength__O__I(result); | |
- var end = (($$this$2 < that) ? $$this$2 : that); | |
- while ((i$1 < end)) { | |
- var jsx$2 = ScalaJS.m.sr_ScalaRunTime(); | |
- var jsx$1 = j; | |
- var index$1 = i$1; | |
- jsx$2.array$undupdate__O__I__O__V(result, jsx$1, array$1[index$1]); | |
- i$1 = ((1 + i$1) | 0); | |
- j = ((1 + j) | 0) | |
- }; | |
- return jsx$3.format__T__AO__T(this$2.repr$1, ScalaJS.asArrayOf.O(result, 1)) | |
+ return jsx$1.format__T__AO__T(this$2.repr$1, ScalaJS.asArrayOf.O(ScalaJS.i.sc_TraversableOnce$class__toArray__sc_TraversableOnce__s_reflect_ClassTag__O(b, evidence$1), 1)) | |
}); | |
ScalaJS.c.sjsr_RuntimeLong.prototype.$$times__sjsr_RuntimeLong__sjsr_RuntimeLong = (function(y) { | |
var _1 = (8191 & this.l$2); | |
@@ -13162,38 +13303,27 @@ ScalaJS.c.sjsr_RuntimeLong.prototype.toOctalString__T = (function() { | |
var hp = ((this.h$2 << 2) | (this.m$2 >> 20)); | |
var this$2 = new ScalaJS.c.sci_StringOps().init___T("%08o%07o%07o"); | |
var array = [hp, mp, lp]; | |
- var jsx$3 = ScalaJS.m.sjsr_RuntimeString(); | |
+ var jsx$1 = ScalaJS.m.sjsr_RuntimeString(); | |
+ var f = (function($$this$1) { | |
+ return (function(arg$2) { | |
+ return ScalaJS.i.sci_StringLike$class__unwrapArg__sci_StringLike__O__O($$this$1, arg$2) | |
+ }) | |
+ })(this$2); | |
var this$4 = ScalaJS.m.sc_Seq(); | |
ScalaJS.m.sjs_js_WrappedArray(); | |
- var array$1 = []; | |
+ var b = new ScalaJS.c.sjs_js_WrappedArray().init___(); | |
ScalaJS.uI(array["length"]); | |
var i = 0; | |
var len = ScalaJS.uI(array["length"]); | |
while ((i < len)) { | |
var index = i; | |
- var x$2 = array[index]; | |
- var elem = ScalaJS.i.sci_StringLike$class__unwrapArg__sci_StringLike__O__O(this$2, x$2); | |
- array$1["push"](elem); | |
+ var arg1 = array[index]; | |
+ var elem = f(arg1); | |
+ b.array$6["push"](elem); | |
i = ((1 + i) | 0) | |
}; | |
var evidence$1 = ScalaJS.m.s_reflect_ClassTag().AnyRef$1; | |
- var result = evidence$1.newArray__I__O(ScalaJS.uI(array$1["length"])); | |
- var len$1 = ScalaJS.m.sr_ScalaRunTime().array$undlength__O__I(result); | |
- var i$1 = 0; | |
- var j = 0; | |
- var $$this$1 = ScalaJS.uI(array$1["length"]); | |
- var $$this$2 = (($$this$1 < len$1) ? $$this$1 : len$1); | |
- var that = ScalaJS.m.sr_ScalaRunTime().array$undlength__O__I(result); | |
- var end = (($$this$2 < that) ? $$this$2 : that); | |
- while ((i$1 < end)) { | |
- var jsx$2 = ScalaJS.m.sr_ScalaRunTime(); | |
- var jsx$1 = j; | |
- var index$1 = i$1; | |
- jsx$2.array$undupdate__O__I__O__V(result, jsx$1, array$1[index$1]); | |
- i$1 = ((1 + i$1) | 0); | |
- j = ((1 + j) | 0) | |
- }; | |
- return jsx$3.format__T__AO__T(this$2.repr$1, ScalaJS.asArrayOf.O(result, 1)) | |
+ return jsx$1.format__T__AO__T(this$2.repr$1, ScalaJS.asArrayOf.O(ScalaJS.i.sc_TraversableOnce$class__toArray__sc_TraversableOnce__s_reflect_ClassTag__O(b, evidence$1), 1)) | |
}); | |
ScalaJS.c.sjsr_RuntimeLong.prototype.intValue__I = (function() { | |
return this.toInt__I() | |
@@ -13983,6 +14113,9 @@ ScalaJS.c.sc_AbstractSet.prototype.toString__T = (function() { | |
ScalaJS.c.sc_AbstractSet.prototype.subsetOf__sc_GenSet__Z = (function(that) { | |
return this.forall__F1__Z(that) | |
}); | |
+ScalaJS.c.sc_AbstractSet.prototype.toBuffer__scm_Buffer = (function() { | |
+ return ScalaJS.i.sc_SetLike$class__toBuffer__sc_SetLike__scm_Buffer(this) | |
+}); | |
ScalaJS.c.sc_AbstractSet.prototype.hashCode__I = (function() { | |
var this$1 = ScalaJS.m.s_util_hashing_MurmurHash3(); | |
var xs = this.seq__sc_Set(); | |
@@ -15334,26 +15467,6 @@ ScalaJS.c.sci_List.prototype.toStream__sci_Stream = (function() { | |
ScalaJS.c.sci_List.prototype.hashCode__I = (function() { | |
return ScalaJS.m.s_util_hashing_MurmurHash3().seqHash__sc_Seq__I(this) | |
}); | |
-ScalaJS.c.sci_List.prototype.map__F1__scg_CanBuildFrom__O = (function(f, bf) { | |
- if ((bf === ScalaJS.m.sci_List().ReusableCBFInstance$2)) { | |
- if ((this === ScalaJS.m.sci_Nil())) { | |
- return ScalaJS.m.sci_Nil() | |
- } else { | |
- var h = new ScalaJS.c.sci_$colon$colon().init___O__sci_List(f.apply__O__O(this.head__O()), ScalaJS.m.sci_Nil()); | |
- var t = h; | |
- var rest = ScalaJS.as.sci_List(this.tail__O()); | |
- while ((rest !== ScalaJS.m.sci_Nil())) { | |
- var nx = new ScalaJS.c.sci_$colon$colon().init___O__sci_List(f.apply__O__O(rest.head__O()), ScalaJS.m.sci_Nil()); | |
- t.tl$5 = nx; | |
- t = nx; | |
- rest = ScalaJS.as.sci_List(rest.tail__O()) | |
- }; | |
- return h | |
- } | |
- } else { | |
- return ScalaJS.i.sc_TraversableLike$class__map__sc_TraversableLike__F1__scg_CanBuildFrom__O(this, f, bf) | |
- } | |
-}); | |
ScalaJS.c.sci_List.prototype.stringPrefix__T = (function() { | |
return "List" | |
}); | |
@@ -15695,6 +15808,9 @@ ScalaJS.c.sci_Range.prototype.foreach__F1__V = (function(f) { | |
ScalaJS.c.sci_Range.prototype.hasStub__p4__Z = (function() { | |
return (this.isInclusive__Z() || (!this.isExact__p4__Z())) | |
}); | |
+ScalaJS.c.sci_Range.prototype.toBuffer__scm_Buffer = (function() { | |
+ return ScalaJS.i.sc_IndexedSeqLike$class__toBuffer__sc_IndexedSeqLike__scm_Buffer(this) | |
+}); | |
ScalaJS.c.sci_Range.prototype.size__I = (function() { | |
return this.length__I() | |
}); | |
@@ -16683,6 +16799,9 @@ ScalaJS.c.sci_Vector.prototype.display4__AO = (function() { | |
ScalaJS.c.sci_Vector.prototype.display2$und$eq__AO__V = (function(x$1) { | |
this.display2$4 = x$1 | |
}); | |
+ScalaJS.c.sci_Vector.prototype.toBuffer__scm_Buffer = (function() { | |
+ return ScalaJS.i.sc_IndexedSeqLike$class__toBuffer__sc_IndexedSeqLike__scm_Buffer(this) | |
+}); | |
ScalaJS.c.sci_Vector.prototype.iterator__sc_Iterator = (function() { | |
return this.iterator__sci_VectorIterator() | |
}); | |
@@ -16824,6 +16943,9 @@ ScalaJS.c.sci_WrappedString.prototype.toString__T = (function() { | |
ScalaJS.c.sci_WrappedString.prototype.foreach__F1__V = (function(f) { | |
ScalaJS.i.sc_IndexedSeqOptimized$class__foreach__sc_IndexedSeqOptimized__F1__V(this, f) | |
}); | |
+ScalaJS.c.sci_WrappedString.prototype.toBuffer__scm_Buffer = (function() { | |
+ return ScalaJS.i.sc_IndexedSeqLike$class__toBuffer__sc_IndexedSeqLike__scm_Buffer(this) | |
+}); | |
ScalaJS.c.sci_WrappedString.prototype.iterator__sc_Iterator = (function() { | |
return new ScalaJS.c.sc_IndexedSeqLike$Elements().init___sc_IndexedSeqLike__I__I(this, 0, ScalaJS.i.sjsr_RuntimeString$class__length__sjsr_RuntimeString__I(this.self$4)) | |
}); | |
@@ -16992,6 +17114,9 @@ ScalaJS.c.scm_AbstractSet.prototype.subsetOf__sc_GenSet__Z = (function(that) { | |
var this$1 = new ScalaJS.c.scm_FlatHashTable$$anon$1().init___scm_FlatHashTable(this); | |
return ScalaJS.i.sc_Iterator$class__forall__sc_Iterator__F1__Z(this$1, that) | |
}); | |
+ScalaJS.c.scm_AbstractSet.prototype.toBuffer__scm_Buffer = (function() { | |
+ return ScalaJS.i.sc_SetLike$class__toBuffer__sc_SetLike__scm_Buffer(this) | |
+}); | |
ScalaJS.c.scm_AbstractSet.prototype.sizeHintBounded__I__sc_TraversableLike__V = (function(size, boundingColl) { | |
ScalaJS.i.scm_Builder$class__sizeHintBounded__scm_Builder__I__sc_TraversableLike__V(this, size, boundingColl) | |
}); | |
@@ -19106,6 +19231,9 @@ ScalaJS.c.scm_StringBuilder.prototype.companion__scg_GenericCompanion = (functio | |
ScalaJS.c.scm_StringBuilder.prototype.foreach__F1__V = (function(f) { | |
ScalaJS.i.sc_IndexedSeqOptimized$class__foreach__sc_IndexedSeqOptimized__F1__V(this, f) | |
}); | |
+ScalaJS.c.scm_StringBuilder.prototype.toBuffer__scm_Buffer = (function() { | |
+ return ScalaJS.i.sc_IndexedSeqLike$class__toBuffer__sc_IndexedSeqLike__scm_Buffer(this) | |
+}); | |
ScalaJS.c.scm_StringBuilder.prototype.result__O = (function() { | |
var this$1 = this.underlying$5; | |
return this$1.content$1 | |
@@ -19266,6 +19394,9 @@ ScalaJS.c.scm_WrappedArray.prototype.companion__scg_GenericCompanion = (function | |
ScalaJS.c.scm_WrappedArray.prototype.foreach__F1__V = (function(f) { | |
ScalaJS.i.sc_IndexedSeqOptimized$class__foreach__sc_IndexedSeqOptimized__F1__V(this, f) | |
}); | |
+ScalaJS.c.scm_WrappedArray.prototype.toBuffer__scm_Buffer = (function() { | |
+ return ScalaJS.i.sc_IndexedSeqLike$class__toBuffer__sc_IndexedSeqLike__scm_Buffer(this) | |
+}); | |
ScalaJS.c.scm_WrappedArray.prototype.iterator__sc_Iterator = (function() { | |
return new ScalaJS.c.sc_IndexedSeqLike$Elements().init___sc_IndexedSeqLike__I__I(this, 0, this.length__I()) | |
}); | |
@@ -20089,6 +20220,9 @@ ScalaJS.c.scm_ArrayBuffer.prototype.companion__scg_GenericCompanion = (function( | |
ScalaJS.c.scm_ArrayBuffer.prototype.foreach__F1__V = (function(f) { | |
ScalaJS.i.scm_ResizableArray$class__foreach__scm_ResizableArray__F1__V(this, f) | |
}); | |
+ScalaJS.c.scm_ArrayBuffer.prototype.toBuffer__scm_Buffer = (function() { | |
+ return ScalaJS.i.sc_IndexedSeqLike$class__toBuffer__sc_IndexedSeqLike__scm_Buffer(this) | |
+}); | |
ScalaJS.c.scm_ArrayBuffer.prototype.result__O = (function() { | |
return this | |
}); | |
@@ -20235,6 +20369,10 @@ ScalaJS.h.scm_ListBuffer = (function() { | |
/*<skip>*/ | |
}); | |
ScalaJS.h.scm_ListBuffer.prototype = ScalaJS.c.scm_ListBuffer.prototype; | |
+ScalaJS.c.scm_ListBuffer.prototype.copyToArray__O__I__V = (function(xs, start) { | |
+ var this$1 = this.scala$collection$mutable$ListBuffer$$start$6; | |
+ ScalaJS.i.sc_TraversableOnce$class__copyToArray__sc_TraversableOnce__O__I__V(this$1, xs, start) | |
+}); | |
ScalaJS.c.scm_ListBuffer.prototype.copy__p6__V = (function() { | |
if (this.scala$collection$mutable$ListBuffer$$start$6.isEmpty__Z()) { | |
return (void 0) | |
@@ -20312,6 +20450,12 @@ ScalaJS.c.scm_ListBuffer.prototype.foreach__F1__V = (function(f) { | |
these = ScalaJS.as.sci_List(these.tail__O()) | |
} | |
}); | |
+ScalaJS.c.scm_ListBuffer.prototype.toBuffer__scm_Buffer = (function() { | |
+ var this$1 = this.scala$collection$mutable$ListBuffer$$start$6; | |
+ var this$2 = ScalaJS.m.scm_ArrayBuffer(); | |
+ var cbf = this$2.ReusableCBFInstance$2; | |
+ return ScalaJS.as.scm_Buffer(ScalaJS.i.sc_TraversableLike$class__to__sc_TraversableLike__scg_CanBuildFrom__O(this$1, cbf)) | |
+}); | |
ScalaJS.c.scm_ListBuffer.prototype.size__I = (function() { | |
return this.len$6 | |
}); | |
@@ -20358,12 +20502,20 @@ ScalaJS.c.scm_ListBuffer.prototype.$$plus$eq__O__scm_Builder = (function(elem) { | |
ScalaJS.c.scm_ListBuffer.prototype.sizeHint__I__V = (function(size) { | |
/*<skip>*/ | |
}); | |
+ScalaJS.c.scm_ListBuffer.prototype.copyToArray__O__I__I__V = (function(xs, start, len) { | |
+ var this$1 = this.scala$collection$mutable$ListBuffer$$start$6; | |
+ ScalaJS.i.sc_IterableLike$class__copyToArray__sc_IterableLike__O__I__I__V(this$1, xs, start, len) | |
+}); | |
ScalaJS.c.scm_ListBuffer.prototype.clear__V = (function() { | |
this.scala$collection$mutable$ListBuffer$$start$6 = ScalaJS.m.sci_Nil(); | |
this.last0$6 = null; | |
this.exported$6 = false; | |
this.len$6 = 0 | |
}); | |
+ScalaJS.c.scm_ListBuffer.prototype.toArray__s_reflect_ClassTag__O = (function(evidence$1) { | |
+ var this$1 = this.scala$collection$mutable$ListBuffer$$start$6; | |
+ return ScalaJS.i.sc_TraversableOnce$class__toArray__sc_TraversableOnce__s_reflect_ClassTag__O(this$1, evidence$1) | |
+}); | |
ScalaJS.c.scm_ListBuffer.prototype.$$plus$plus$eq__sc_TraversableOnce__scm_ListBuffer = (function(xs) { | |
_$plus$plus$eq: while (true) { | |
var x1 = xs; | |
@@ -21538,6 +21690,9 @@ ScalaJS.c.sjs_js_WrappedArray.prototype.companion__scg_GenericCompanion = (funct | |
ScalaJS.c.sjs_js_WrappedArray.prototype.foreach__F1__V = (function(f) { | |
ScalaJS.i.sc_IndexedSeqOptimized$class__foreach__sc_IndexedSeqOptimized__F1__V(this, f) | |
}); | |
+ScalaJS.c.sjs_js_WrappedArray.prototype.toBuffer__scm_Buffer = (function() { | |
+ return ScalaJS.i.sc_IndexedSeqLike$class__toBuffer__sc_IndexedSeqLike__scm_Buffer(this) | |
+}); | |
ScalaJS.c.sjs_js_WrappedArray.prototype.result__O = (function() { | |
return this | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment