From 18505cb2061235dba1b064b9379164e2a48254a6 Mon Sep 17 00:00:00 2001 From: Sébastien Doeraene Date: Mon, 29 Feb 2016 12:48:06 +0100 Subject: 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`. --- src/dotty/tools/backend/sjs/JSDefinitions.scala | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) (limited to 'src/dotty/tools/backend/sjs/JSDefinitions.scala') 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) { -- cgit v1.2.3