diff options
author | Sébastien Doeraene <sjrdoeraene@gmail.com> | 2016-02-29 12:48:06 +0100 |
---|---|---|
committer | Sébastien Doeraene <sjrdoeraene@gmail.com> | 2016-03-01 15:47:56 +0100 |
commit | 18505cb2061235dba1b064b9379164e2a48254a6 (patch) | |
tree | a207c35b7610f2ecfa1b3b2d76c8d0041f596fe8 /src/dotty/tools/backend/sjs/JSDefinitions.scala | |
parent | cd4004a82d9713bbb0b120aba83b3ed8fc9f1372 (diff) | |
download | dotty-18505cb2061235dba1b064b9379164e2a48254a6.tar.gz dotty-18505cb2061235dba1b064b9379164e2a48254a6.tar.bz2 dotty-18505cb2061235dba1b064b9379164e2a48254a6.zip |
Store the JSDefinitions in a custom platform SJSPlatform.
This required the ability to instantiate a different `Platform`
depending on settings, which, in turn, required to defer the
initialization of `ContextBase.platform`.
Diffstat (limited to 'src/dotty/tools/backend/sjs/JSDefinitions.scala')
-rw-r--r-- | src/dotty/tools/backend/sjs/JSDefinitions.scala | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/src/dotty/tools/backend/sjs/JSDefinitions.scala b/src/dotty/tools/backend/sjs/JSDefinitions.scala index 1ee560b35..0f4415b31 100644 --- a/src/dotty/tools/backend/sjs/JSDefinitions.scala +++ b/src/dotty/tools/backend/sjs/JSDefinitions.scala @@ -8,22 +8,12 @@ import Symbols._ import StdNames._ import Decorators._ +import dotty.tools.dotc.config.SJSPlatform + object JSDefinitions { - @dotty.tools.sharable - private val cache = new java.util.WeakHashMap[ContextBase, JSDefinitions] - - // TODO Figure out where best to define this - def jsdefn(implicit ctx: Context): JSDefinitions = cache.synchronized { - val baseCtx = ctx.base - val cached = cache.get(baseCtx) - if (cached != null) { - cached - } else { - val newJSDefinitions = new JSDefinitions() - cache.put(baseCtx, newJSDefinitions) - newJSDefinitions - } - } + /** The Scala.js-specific definitions for the current context. */ + def jsdefn(implicit ctx: Context): JSDefinitions = + ctx.platform.asInstanceOf[SJSPlatform].jsDefinitions } final class JSDefinitions()(implicit ctx: Context) { |