예제 #1
0
 @NotNull
 public static TranslationContext rootContext(@NotNull StaticContext staticContext) {
   JsProgram program = staticContext.getProgram();
   JsBlock globalBlock = program.getGlobalBlock();
   DynamicContext rootDynamicContext =
       DynamicContext.rootContext(staticContext.getRootScope(), globalBlock);
   AliasingContext rootAliasingContext = AliasingContext.getCleanContext();
   return new TranslationContext(staticContext, rootDynamicContext, rootAliasingContext);
 }
예제 #2
0
 // TODO: consider passing a function here
 @NotNull
 public TranslationContext innerContextWithGivenScopeAndBlock(
     @NotNull JsScope scope, @NotNull JsBlock block) {
   return contextWithScope(dynamicContext.getScope().innerScope(scope), block);
 }
예제 #3
0
 @NotNull
 public TranslationContext innerBlock(@NotNull JsBlock block) {
   return new TranslationContext(staticContext, dynamicContext.innerBlock(block), aliasingContext);
 }
예제 #4
0
 @NotNull
 public TranslationContext contextWithScope(
     @NotNull NamingScope newScope, @NotNull JsBlock block) {
   return new TranslationContext(
       staticContext, DynamicContext.newContext(newScope, block), aliasingContext);
 }
예제 #5
0
 public void addStatementToCurrentBlock(@NotNull JsStatement statement) {
   dynamicContext.jsBlock().getStatements().add(statement);
 }
예제 #6
0
 @NotNull
 public JsScope jsScope() {
   return dynamicContext.jsScope();
 }
예제 #7
0
 @NotNull
 public TemporaryVariable declareTemporary(
     @NotNull JsExpression initExpression, boolean initialize) {
   return dynamicContext.declareTemporary(initExpression, initialize);
 }
예제 #8
0
 @NotNull
 public TemporaryVariable declareTemporary(@NotNull JsExpression initExpression) {
   return dynamicContext.declareTemporary(initExpression);
 }