/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 6 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . idea . de compiler . js Ċ Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . psi . File View Provider Ċ import Ġcom . intellij . psi . Psi Manager Ċ import Ġcom . intellij . psi . compiled . Class File De comp ilers Ċ import Ġcom . intellij . psi . compiled . Cls Stub Builder Ċ import Ġorg . jetbrains . kotlin . file Classes . Old Package Facade Class Utils Ċ import Ġorg . jetbrains . kotlin . idea . de compiler . Kotlin De compiled File View Provider Ċ import Ġorg . jetbrains . kotlin . idea . de compiler . Kt De compiled File Ċ import Ġorg . jetbrains . kotlin . idea . de compiler . text Builder . De compiled Text Ċ import Ġorg . jetbrains . kotlin . idea . de compiler . text Builder . Resolver For De compiler Ċ import Ġorg . jetbrains . kotlin . idea . de compiler . text Builder . build De compiled Text Ċ import Ġorg . jetbrains . kotlin . idea . de compiler . text Builder . default De compiler Renderer Options Ċ import Ġorg . jetbrains . kotlin . name . Fq Name Ċ import Ġorg . jetbrains . kotlin . renderer . Descriptor Renderer Ċ import Ġorg . jetbrains . kotlin . serialization . js . Kotlin Javascript Serialization Util Ċ import Ġjava . util .* Ċ Ċ class ĠKotlin JavaScript Meta File De compiler Ġ: ĠClass File De comp ilers . Full () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġstub Builder Ġ= ĠKotlin JavaScript Stub Builder () ĊĊĠĠĠ Ġoverride Ġfun Ġaccepts ( file : ĠVirtual File ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfile . name . endsWith (" ." Ġ+ ĠKotlin Javascript Serialization Util . CLASS _ METADATA _ FILE _ EXTENSION ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Stub Builder (): ĠC ls Stub Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstub Builder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate File View Provider ( file : ĠVirtual File , Ġmanager : ĠPsi Manager , Ġphysical : ĠBoolean ): ĠFile View Provider Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠKotlin De compiled File View Provider ( manager , Ġfile , Ġphysical ) Ġ{ Ġprovider Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Js Meta FileUtils . is Kotlin JavaScript Internal Compiled File ( file )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK t De compiled File ( provider ) Ġ{ Ġfile Ġ-> Ġbuild De compiled Text From Js Metadata ( file ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġval Ġde compiler Renderer For JS Ġ= ĠDescriptor Renderer . with Options Ġ{ Ġdefault De compiler Renderer Options () Ġ} Ċ Ċ fun Ġbuild De compiled Text From Js Metadata ( ĊĠĠĠĠĠĠĠ Ġclass File : ĠVirtual File , ĊĠĠĠĠĠĠĠ Ġresolver : ĠResolver For De compiler Ġ= ĠKotlin JavaScript Deserializer For De compiler ( class File ) Ċ ): ĠDe compiled Text Ġ{ ĊĠĠĠ Ġval Ġpackage Fq Name Ġ= ĠJs Meta FileUtils . get Package Fq Name ( class File ) ĊĠĠĠ Ġval Ġis Package Header Ġ= ĠJs Meta FileUtils . is Package Header ( class File ) ĊĊĠĠĠ Ġif Ġ( is Package Header ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbuild De compiled Text ( package Fq Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolve Declarations In Package ( package Fq Name , Ġresolver ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġde compiler Renderer For JS ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclass Id Ġ= ĠJs Meta FileUtils . getClass Id ( class File ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbuild De compiled Text ( package Fq Name , ĠlistOf NotNull ( resolver . resolve TopLevel Class ( class Id )), Ġde compiler Renderer For JS ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġresolve Declarations In Package ( package Fq Name : ĠF q Name , Ġresolver : ĠResolver For De compiler ) Ġ= ĊĠĠĠĠĠĠĠ ĠArrayList ( resolver . resolve Declarations In Facade ( Old Package Facade Class Utils . get Package Class Fq Name ( package Fq Name )))