File tree Expand file tree Collapse file tree 2 files changed +17
-13
lines changed
runtime/compiler/compilers Expand file tree Collapse file tree 2 files changed +17
-13
lines changed Original file line number Diff line number Diff line change @@ -78,7 +78,8 @@ export class TypeCellCodeModel extends lifecycle.Disposable {
7878
7979 private disposeMonacoModel ( ) {
8080 if ( this . monacoModelReferences > 0 ) {
81- throw new Error ( "disposing TypeCellCodeModel, but still has references" ) ;
81+ // This is suspicious, happens when compiling code and releasing at same time?
82+ console . error ( "disposing TypeCellCodeModel, but still has references" ) ;
8283 }
8384
8485 if (
Original file line number Diff line number Diff line change @@ -121,21 +121,24 @@ async function _compile(
121121 }
122122
123123 console . log ( "recompile" , model . path ) ;
124- const monacoModel = model . acquireMonacoModel ( ) ;
125124
126- if ( ! mainWorker ) {
127- mainWorker =
128- await monacoInstance . languages . typescript . getTypeScriptWorker ( ) ;
129- }
125+ const monacoModel = model . acquireMonacoModel ( ) ;
126+ try {
127+ if ( ! mainWorker ) {
128+ mainWorker =
129+ await monacoInstance . languages . typescript . getTypeScriptWorker ( ) ;
130+ }
130131
131- let compiledCode = ( await getCompiledCode ( mainWorker , monacoModel . uri ) )
132- . firstJSCode ;
133- model . releaseMonacoModel ( ) ;
134- if ( ENABLE_CACHE ) {
135- saveCachedItem ( model , { hash : hsh , compiledCode } ) ;
132+ let compiledCode = ( await getCompiledCode ( mainWorker , monacoModel . uri ) )
133+ . firstJSCode ;
134+ if ( ENABLE_CACHE ) {
135+ saveCachedItem ( model , { hash : hsh , compiledCode } ) ;
136+ }
137+ // console.log(tscode, compiledCode);
138+ return compiledCode ;
139+ } finally {
140+ model . releaseMonacoModel ( ) ;
136141 }
137- // console.log(tscode, compiledCode);
138- return compiledCode ;
139142}
140143
141144export const compile = awaitFirst ( _compile ) ;
You can’t perform that action at this time.
0 commit comments