@@ -153,12 +153,13 @@ final class Emitter[E >: Null <: js.Transformed.Value](
153
153
}
154
154
}
155
155
156
- private def postTransform (trees : List [js.Tree ]): E = {
156
+ private def postTransform (trees : List [js.Tree ], indent : Int ): E = {
157
157
statsPostTransforms += 1
158
- postTransformer.transform(trees)
158
+ postTransformer.transform(trees, indent )
159
159
}
160
160
161
- private def postTransform (tree : js.Tree ): E = postTransform(tree :: Nil )
161
+ private def postTransform (tree : js.Tree , indent : Int ): E =
162
+ postTransform(tree :: Nil , indent)
162
163
163
164
/** Emits all JavaScript code avoiding clashes with global refs.
164
165
*
@@ -222,7 +223,7 @@ final class Emitter[E >: Null <: js.Transformed.Value](
222
223
223
224
val moduleImports = extractWithGlobals {
224
225
moduleCache.getOrComputeImports(module.externalDependencies, module.internalDependencies) {
225
- genModuleImports(module).map(postTransform(_))
226
+ genModuleImports(module).map(postTransform(_, 0 ))
226
227
}
227
228
}
228
229
@@ -232,7 +233,7 @@ final class Emitter[E >: Null <: js.Transformed.Value](
232
233
*/
233
234
moduleCache.getOrComputeTopLevelExports(module.topLevelExports) {
234
235
classEmitter.genTopLevelExports(module.topLevelExports)(
235
- moduleContext, moduleCache).map(postTransform(_))
236
+ moduleContext, moduleCache).map(postTransform(_, 0 ))
236
237
}
237
238
}
238
239
@@ -242,7 +243,7 @@ final class Emitter[E >: Null <: js.Transformed.Value](
242
243
WithGlobals .list(initializers.map { initializer =>
243
244
classEmitter.genModuleInitializer(initializer)(
244
245
moduleContext, moduleCache)
245
- }).map(postTransform(_))
246
+ }).map(postTransform(_, 0 ))
246
247
}
247
248
}
248
249
@@ -414,7 +415,7 @@ final class Emitter[E >: Null <: js.Transformed.Value](
414
415
if (kind.isJSClass) {
415
416
val fieldDefs = classTreeCache.privateJSFields.getOrElseUpdate {
416
417
classEmitter.genCreatePrivateJSFieldDefsOfJSClass(className)(
417
- moduleContext, classCache).map(postTransform(_))
418
+ moduleContext, classCache).map(postTransform(_, 0 ))
418
419
}
419
420
main += extractWithGlobals(fieldDefs)
420
421
}
@@ -434,7 +435,7 @@ final class Emitter[E >: Null <: js.Transformed.Value](
434
435
classCache.getStaticLikeMethodCache(namespace, methodDef.methodName)
435
436
436
437
val (tree, changed) = methodCache.getOrElseUpdate(methodDef.version,
437
- classEmitter.genStaticLikeMethod(className, methodDef)(moduleContext, methodCache).map(postTransform(_)))
438
+ classEmitter.genStaticLikeMethod(className, methodDef)(moduleContext, methodCache).map(postTransform(_, 0 )))
438
439
439
440
overallChanged ||= changed
440
441
@@ -477,11 +478,16 @@ final class Emitter[E >: Null <: js.Transformed.Value](
477
478
(isJSClass || linkedClass.ancestors.contains(ThrowableClass ))
478
479
}
479
480
481
+ val memberIndent = {
482
+ (if (isJSClass) 1 else 0 ) + // accessor function
483
+ (if (useESClass) 1 else 0 ) // nesting from class
484
+ }
485
+
480
486
val hasJSSuperClass = linkedClass.jsSuperClass.isDefined
481
487
482
488
val storeJSSuperClass = linkedClass.jsSuperClass.map { jsSuperClass =>
483
489
extractWithGlobals(classTreeCache.storeJSSuperClass.getOrElseUpdate(
484
- classEmitter.genStoreJSSuperClass(jsSuperClass)(moduleContext, classCache, linkedClass.pos).map(postTransform(_))))
490
+ classEmitter.genStoreJSSuperClass(jsSuperClass)(moduleContext, classCache, linkedClass.pos).map(postTransform(_, 1 ))))
485
491
}
486
492
487
493
// JS constructor
@@ -508,7 +514,7 @@ final class Emitter[E >: Null <: js.Transformed.Value](
508
514
hasJSSuperClass, // invalidated by class version
509
515
useESClass, // invalidated by class version
510
516
jsConstructorDef // part of ctor version
511
- )(moduleContext, ctorCache, linkedClass.pos).map(postTransform(_)))
517
+ )(moduleContext, ctorCache, linkedClass.pos).map(postTransform(_, memberIndent )))
512
518
} else {
513
519
val ctorVersion = linkedInlineableInit.fold {
514
520
Version .combine(linkedClass.version)
@@ -522,7 +528,7 @@ final class Emitter[E >: Null <: js.Transformed.Value](
522
528
linkedClass.superClass, // invalidated by class version
523
529
useESClass, // invalidated by class version,
524
530
linkedInlineableInit // part of ctor version
525
- )(moduleContext, ctorCache, linkedClass.pos).map(postTransform(_)))
531
+ )(moduleContext, ctorCache, linkedClass.pos).map(postTransform(_, memberIndent )))
526
532
}
527
533
528
534
overallChanged ||= changed
@@ -580,7 +586,7 @@ final class Emitter[E >: Null <: js.Transformed.Value](
580
586
isJSClass, // invalidated by isJSClassVersion
581
587
useESClass, // invalidated by isJSClassVersion
582
588
method, // invalidated by method.version
583
- )(moduleContext, methodCache).map(postTransform(_)))
589
+ )(moduleContext, methodCache).map(postTransform(_, memberIndent )))
584
590
585
591
overallChanged ||= changed
586
592
@@ -599,7 +605,7 @@ final class Emitter[E >: Null <: js.Transformed.Value](
599
605
isJSClass, // invalidated by isJSClassVersion
600
606
useESClass, // invalidated by isJSClassVersion
601
607
member // invalidated by version
602
- )(moduleContext, memberCache).map(postTransform(_)))
608
+ )(moduleContext, memberCache).map(postTransform(_, memberIndent )))
603
609
604
610
overallChanged ||= changed
605
611
@@ -641,7 +647,7 @@ final class Emitter[E >: Null <: js.Transformed.Value](
641
647
allMembers
642
648
} else {
643
649
statsNestedPostTransforms += 1
644
- postTransform(clazz) :: Nil
650
+ postTransform(clazz, 0 ) :: Nil
645
651
}
646
652
}
647
653
})
@@ -670,7 +676,7 @@ final class Emitter[E >: Null <: js.Transformed.Value](
670
676
671
677
if (classEmitter.needInstanceTests(linkedClass)(classCache)) {
672
678
main += extractWithGlobals(classTreeCache.instanceTests.getOrElseUpdate(
673
- classEmitter.genInstanceTests(className, kind)(moduleContext, classCache, linkedClass.pos).map(postTransform(_))))
679
+ classEmitter.genInstanceTests(className, kind)(moduleContext, classCache, linkedClass.pos).map(postTransform(_, 0 ))))
674
680
}
675
681
676
682
if (linkedClass.hasRuntimeTypeInfo) {
@@ -681,18 +687,18 @@ final class Emitter[E >: Null <: js.Transformed.Value](
681
687
linkedClass.superClass, // invalidated by class version
682
688
linkedClass.ancestors, // invalidated by overall class cache (identity)
683
689
linkedClass.jsNativeLoadSpec // invalidated by class version
684
- )(moduleContext, classCache, linkedClass.pos).map(postTransform(_))))
690
+ )(moduleContext, classCache, linkedClass.pos).map(postTransform(_, 0 ))))
685
691
}
686
692
687
693
if (linkedClass.hasInstances && kind.isClass && linkedClass.hasRuntimeTypeInfo) {
688
694
main += classTreeCache.setTypeData.getOrElseUpdate(
689
- postTransform(classEmitter.genSetTypeData(className)(moduleContext, classCache, linkedClass.pos)))
695
+ postTransform(classEmitter.genSetTypeData(className)(moduleContext, classCache, linkedClass.pos), 0 ))
690
696
}
691
697
}
692
698
693
699
if (linkedClass.kind.hasModuleAccessor && linkedClass.hasInstances) {
694
700
main += extractWithGlobals(classTreeCache.moduleAccessor.getOrElseUpdate(
695
- classEmitter.genModuleAccessor(className, isJSClass)(moduleContext, classCache, linkedClass.pos).map(postTransform(_))))
701
+ classEmitter.genModuleAccessor(className, isJSClass)(moduleContext, classCache, linkedClass.pos).map(postTransform(_, 0 ))))
696
702
}
697
703
698
704
// Static fields
@@ -701,14 +707,14 @@ final class Emitter[E >: Null <: js.Transformed.Value](
701
707
postTransformer.empty
702
708
} else {
703
709
extractWithGlobals(classTreeCache.staticFields.getOrElseUpdate(
704
- classEmitter.genCreateStaticFieldsOfScalaClass(className)(moduleContext, classCache).map(postTransform(_))))
710
+ classEmitter.genCreateStaticFieldsOfScalaClass(className)(moduleContext, classCache).map(postTransform(_, 0 ))))
705
711
}
706
712
707
713
// Static initialization
708
714
709
715
val staticInitialization = if (classEmitter.needStaticInitialization(linkedClass)) {
710
716
classTreeCache.staticInitialization.getOrElseUpdate(
711
- postTransform(classEmitter.genStaticInitialization(className)(moduleContext, classCache, linkedClass.pos)))
717
+ postTransform(classEmitter.genStaticInitialization(className)(moduleContext, classCache, linkedClass.pos), 0 ))
712
718
} else {
713
719
postTransformer.empty
714
720
}
@@ -1033,7 +1039,7 @@ final class Emitter[E >: Null <: js.Transformed.Value](
1033
1039
1034
1040
def build (moduleContext : ModuleContext ): WithGlobals [CoreJSLib .Lib [E ]] = {
1035
1041
if (_lib == null || _lastModuleContext != moduleContext) {
1036
- _lib = CoreJSLib .build(sjsGen, postTransform, moduleContext, this )
1042
+ _lib = CoreJSLib .build(sjsGen, postTransform(_, 0 ) , moduleContext, this )
1037
1043
_lastModuleContext = moduleContext
1038
1044
}
1039
1045
_lib
@@ -1123,7 +1129,7 @@ object Emitter {
1123
1129
1124
1130
trait PostTransformer [E ] {
1125
1131
def empty : E
1126
- def transform (trees : List [js.Tree ]): E
1132
+ def transform (trees : List [js.Tree ], indent : Int ): E
1127
1133
}
1128
1134
1129
1135
private final class DesugaredClassCache [E >: Null ] {
0 commit comments