| 301 | } |
| 302 | |
| 303 | override runInContext<ReturnT>(fn: () => ReturnT): ReturnT { |
| 304 | assertNotDestroyed(this); |
| 305 | |
| 306 | const previousInjector = setCurrentInjector(this); |
| 307 | const previousInjectImplementation = setInjectImplementation(undefined); |
| 308 | |
| 309 | let prevInjectContext: InjectorProfilerContext | undefined; |
| 310 | if (ngDevMode) { |
| 311 | prevInjectContext = setInjectorProfilerContext({injector: this, token: null}); |
| 312 | } |
| 313 | |
| 314 | try { |
| 315 | return fn(); |
| 316 | } finally { |
| 317 | setCurrentInjector(previousInjector); |
| 318 | setInjectImplementation(previousInjectImplementation); |
| 319 | ngDevMode && setInjectorProfilerContext(prevInjectContext!); |
| 320 | } |
| 321 | } |
| 322 | |
| 323 | override get<T>( |
| 324 | token: ProviderToken<T>, |