fix(compiler-cli): ensure that ngI18nClosureMode is guarded in generated code (#34211)
				
					
				
			If the `ngI18nClosureMode` global check actually makes it through to the runtime, then checks for its existence should be guarded to prevent `Reference undefined` errors in strict mode. (Normally, it is stripped out by dead code elimination during build optimization.) This comment ensures that generated template code guards this global check. PR Close #34211
This commit is contained in:
		
							parent
							
								
									bc7cde0f01
								
							
						
					
					
						commit
						c4ce24647b
					
				| @ -195,7 +195,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc descA | ||||
|              * @meaning meaningA | ||||
| @ -207,7 +207,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           $I18N_0$ = $localize \`:meaningA|descA@@idA:Content A\`;
 | ||||
|         } | ||||
|         var $I18N_3$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc descB | ||||
|              * @meaning meaningB | ||||
| @ -220,7 +220,7 @@ describe('i18n support in the template compiler', () => { | ||||
|         } | ||||
|         const $_c5$ = ["title", $I18N_3$]; | ||||
|         var $I18N_7$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @meaning meaningC | ||||
|              */ | ||||
| @ -232,7 +232,7 @@ describe('i18n support in the template compiler', () => { | ||||
|         } | ||||
|         const $_c9$ = ["title", $I18N_7$]; | ||||
|         var $I18N_11$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc descD | ||||
|              * @meaning meaningD | ||||
| @ -245,7 +245,7 @@ describe('i18n support in the template compiler', () => { | ||||
|         } | ||||
|         const $_c13$ = ["title", $I18N_11$]; | ||||
|         var $I18N_15$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc meaningE | ||||
|              */ | ||||
| @ -257,7 +257,7 @@ describe('i18n support in the template compiler', () => { | ||||
|         } | ||||
|         const $_c17$ = ["title", $I18N_15$]; | ||||
|         var $I18N_19$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_idF$$APP_SPEC_TS_20$ = goog.getMsg("Title F"); | ||||
|             $I18N_19$ = $MSG_EXTERNAL_idF$$APP_SPEC_TS_20$; | ||||
|         } | ||||
| @ -266,7 +266,7 @@ describe('i18n support in the template compiler', () => { | ||||
|         } | ||||
|         const $_c21$ = ["title", $I18N_19$]; | ||||
|         var $I18N_23$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc [BACKUP_$` +
 | ||||
|           String.raw `{MESSAGE}_ID:idH]` + | ||||
| @ -280,7 +280,7 @@ describe('i18n support in the template compiler', () => { | ||||
|         } | ||||
|         const $_c25$ = ["title", $I18N_23$]; | ||||
|         var $I18N_20$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc Some text \' [BACKUP_MESSAGE_ID: xxx] | ||||
|              */ | ||||
| @ -381,7 +381,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|           /** | ||||
|            * @desc d | ||||
|            * @meaning m | ||||
| @ -422,7 +422,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|           const $MSG_EXTERNAL_5526535577705876535$$APP_SPEC_TS_1$ = goog.getMsg("static text"); | ||||
|           $I18N_1$ = $MSG_EXTERNAL_5526535577705876535$$APP_SPEC_TS_1$; | ||||
|         } | ||||
| @ -430,7 +430,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           $I18N_1$ = $localize \`static text\`;
 | ||||
|         } | ||||
|         var $I18N_2$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|           /** | ||||
|            * @desc d | ||||
|            * @meaning m | ||||
| @ -445,7 +445,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           String.raw `{"\uFFFD0\uFFFD"}:INTERPOLATION:\`;
 | ||||
|         } | ||||
|         var $I18N_3$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc d1 | ||||
|              * @meaning m1 | ||||
| @ -465,7 +465,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "aria-label", $I18N_3$ | ||||
|         ]; | ||||
|         var $I18N_6$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc d2 | ||||
|              * @meaning m2 | ||||
| @ -482,7 +482,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           String.raw `{"\uFFFD2\uFFFD"}:INTERPOLATION_2:\`;
 | ||||
|         } | ||||
|         var $I18N_7$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_6639222533406278123$$APP_SPEC_TS_7$ = goog.getMsg("{$interpolation}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD" | ||||
|             }); | ||||
| @ -529,7 +529,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc d | ||||
|              * @meaning m | ||||
| @ -571,7 +571,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc d | ||||
|              * @meaning m | ||||
| @ -625,7 +625,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_3462388422673575127$$APP_SPEC_TS_2$ = goog.getMsg("{$interpolation} title", { | ||||
|               "interpolation": "\uFFFD0\uFFFD" | ||||
|             }); | ||||
| @ -673,7 +673,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_5526535577705876535$$APP_SPEC_TS_1$ = goog.getMsg("static text"); | ||||
|             $I18N_1$ = $MSG_EXTERNAL_5526535577705876535$$APP_SPEC_TS_1$; | ||||
|         } | ||||
| @ -681,7 +681,7 @@ describe('i18n support in the template compiler', () => { | ||||
|             $I18N_1$ = $localize \`static text\`;
 | ||||
|         } | ||||
|         var $I18N_2$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc d | ||||
|              * @meaning m | ||||
| @ -696,7 +696,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           String.raw `{"\uFFFD0\uFFFD"}:INTERPOLATION:\`;
 | ||||
|         } | ||||
|         var $I18N_3$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc d1 | ||||
|              * @meaning m1 | ||||
| @ -716,7 +716,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "aria-label", $I18N_3$ | ||||
|         ]; | ||||
|         var $I18N_6$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc d2 | ||||
|              * @meaning m2 | ||||
| @ -733,7 +733,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           String.raw `{"\uFFFD2\uFFFD"}:INTERPOLATION_2:\`;
 | ||||
|         } | ||||
|         var $I18N_7$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_6639222533406278123$$APP_SPEC_TS_7$ = goog.getMsg("{$interpolation}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD" | ||||
|             }); | ||||
| @ -785,7 +785,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_2$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc d | ||||
|              * @meaning m | ||||
| @ -839,7 +839,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc d | ||||
|              * @meaning m | ||||
| @ -852,7 +852,7 @@ describe('i18n support in the template compiler', () => { | ||||
|         } | ||||
|         const $_c1$ = ["title", $I18N_0$]; | ||||
|         var $I18N_2$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_4969674997806975147$$APP_SPEC_TS_2$ = goog.getMsg("Some content"); | ||||
|             $I18N_2$ = $MSG_EXTERNAL_4969674997806975147$$APP_SPEC_TS_2$; | ||||
|         } | ||||
| @ -882,7 +882,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_ID_WITH_INVALID_CHARS$$APP_SPEC_TS_1$ = goog.getMsg("Element title"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_ID_WITH_INVALID_CHARS$$APP_SPEC_TS_1$; | ||||
|         } | ||||
| @ -891,7 +891,7 @@ describe('i18n support in the template compiler', () => { | ||||
|         } | ||||
|         const $_c1$ = ["title", $I18N_0$]; | ||||
|         var $I18N_2$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_ID_WITH_INVALID_CHARS_2$$APP_SPEC_TS_4$ = goog.getMsg(" Some content "); | ||||
|             $I18N_2$ = $MSG_EXTERNAL_ID_WITH_INVALID_CHARS_2$$APP_SPEC_TS_4$; | ||||
|         } | ||||
| @ -943,7 +943,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|       var $I18N_0$; | ||||
|       if (ngI18nClosureMode) { | ||||
|       if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|           const $MSG_APP_SPEC_TS_1$ = goog.getMsg("Some  text"); | ||||
|           $I18N_0$ = $MSG_APP_SPEC_TS_1$; | ||||
|       } | ||||
| @ -961,7 +961,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_4924931801512133405$$APP_SPEC_TS_0$ = goog.getMsg("Some text 'with single quotes', \"with double quotes\", ` +
 | ||||
|           '`with backticks`' + String.raw ` and without quotes.");
 | ||||
|             $I18N_0$ = $MSG_EXTERNAL_4924931801512133405$$APP_SPEC_TS_0$; | ||||
| @ -978,7 +978,7 @@ describe('i18n support in the template compiler', () => { | ||||
|       const input = '<div i18n>`{{ count }}`</div>'; | ||||
|       const output = String.raw ` | ||||
|       var $I18N_0$; | ||||
|       if (ngI18nClosureMode) { | ||||
|       if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|           const $MSG_APP_SPEC_TS_1$ = goog.getMsg("` +
 | ||||
|           '`{$interpolation}`' + String.raw `", { "interpolation": "\uFFFD0\uFFFD" });
 | ||||
|           $I18N_0$ = $MSG_APP_SPEC_TS_1$; | ||||
| @ -1001,7 +1001,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_4890179241114413722$$APP_SPEC_TS_0$ = goog.getMsg("My i18n block #1"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_4890179241114413722$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -1009,7 +1009,7 @@ describe('i18n support in the template compiler', () => { | ||||
|             $I18N_0$ = $localize \`My i18n block #1\`;
 | ||||
|         } | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_2413150872298537152$$APP_SPEC_TS_1$ = goog.getMsg("My i18n block #2"); | ||||
|             $I18N_1$ = $MSG_EXTERNAL_2413150872298537152$$APP_SPEC_TS_1$; | ||||
|         } | ||||
| @ -1017,7 +1017,7 @@ describe('i18n support in the template compiler', () => { | ||||
|             $I18N_1$ = $localize \`My i18n block #2\`;
 | ||||
|         } | ||||
|         var $I18N_2$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_5023003143537152794$$APP_SPEC_TS_2$ = goog.getMsg("My i18n block #3"); | ||||
|             $I18N_2$ = $MSG_EXTERNAL_5023003143537152794$$APP_SPEC_TS_2$; | ||||
|         } | ||||
| @ -1059,7 +1059,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_7597881511811528589$$APP_SPEC_TS_0$ = goog.getMsg(" Named interpolation: {$phA} Named interpolation with spaces: {$phB} ", { | ||||
|               "phA": "\uFFFD0\uFFFD", | ||||
|               "phB": "\uFFFD1\uFFFD" | ||||
| @ -1097,7 +1097,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_6749967533321674787$$APP_SPEC_TS_0$ = goog.getMsg("{$interpolation}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD" | ||||
|             }); | ||||
| @ -1134,7 +1134,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_APP_SPEC_TS_1$$APP_SPEC_TS_1$ = goog.getMsg(" {$interpolation} {$interpolation_1} {$interpolation_2} ", { | ||||
|               "interpolation": "\uFFFD0\uFFFD", | ||||
|               "interpolation_1": "\uFFFD1\uFFFD", | ||||
| @ -1176,7 +1176,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_572579892698764378$$APP_SPEC_TS_0$ = goog.getMsg("My i18n block #{$interpolation}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD" | ||||
|             }); | ||||
| @ -1187,7 +1187,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           String.raw `{"\uFFFD0\uFFFD"}:INTERPOLATION:\`;
 | ||||
|         } | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_609623417156596326$$APP_SPEC_TS_1$ = goog.getMsg("My i18n block #{$interpolation}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD" | ||||
|             }); | ||||
| @ -1198,7 +1198,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           String.raw `{"\uFFFD0\uFFFD"}:INTERPOLATION:\`;
 | ||||
|         } | ||||
|         var $I18N_2$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_3998119318957372120$$APP_SPEC_TS_2$ = goog.getMsg("My i18n block #{$interpolation}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD" | ||||
|             }); | ||||
| @ -1258,7 +1258,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_7905233330103651696$$APP_SPEC_TS_0$ = goog.getMsg(" My i18n block #{$interpolation} {$startTagSpan}Plain text in nested element{$closeTagSpan}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD", | ||||
|               "startTagSpan": "\uFFFD#2\uFFFD", | ||||
| @ -1273,7 +1273,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           String.raw `{"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPAN:\`;
 | ||||
|         } | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_5788821996131681377$$APP_SPEC_TS_1$ = goog.getMsg(" My i18n block #{$interpolation} {$startTagDiv}{$startTagDiv}{$startTagSpan} More bindings in more nested element: {$interpolation_1} {$closeTagSpan}{$closeTagDiv}{$closeTagDiv}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD", | ||||
|               "startTagDiv": "[\uFFFD#6\uFFFD|\uFFFD#7\uFFFD]", | ||||
| @ -1347,7 +1347,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_2$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_4782264005467235841$$APP_SPEC_TS_3$ = goog.getMsg("Span title {$interpolation} and {$interpolation_1}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD", | ||||
|               "interpolation_1": "\uFFFD1\uFFFD" | ||||
| @ -1361,7 +1361,7 @@ describe('i18n support in the template compiler', () => { | ||||
|         } | ||||
|         const $_c4$ = ["title", $I18N_2$]; | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_4446430594603971069$$APP_SPEC_TS_5$ = goog.getMsg(" My i18n block #1 with value: {$interpolation} {$startTagSpan} Plain text in nested element (block #1) {$closeTagSpan}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD", | ||||
|               "startTagSpan": "\uFFFD#2\uFFFD", | ||||
| @ -1376,7 +1376,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           String.raw `{"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPAN:\`;
 | ||||
|         } | ||||
|         var $I18N_7$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_2719594642740200058$$APP_SPEC_TS_8$ = goog.getMsg("Span title {$interpolation}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD" | ||||
|             }); | ||||
| @ -1388,7 +1388,7 @@ describe('i18n support in the template compiler', () => { | ||||
|         } | ||||
|         const $_c9$ = ["title", $I18N_7$]; | ||||
|         var $I18N_6$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_2778714953278357902$$APP_SPEC_TS_10$ = goog.getMsg(" My i18n block #2 with value {$interpolation} {$startTagSpan} Plain text in nested element (block #2) {$closeTagSpan}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD", | ||||
|               "startTagSpan": "\uFFFD#7\uFFFD", | ||||
| @ -1457,7 +1457,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_7679414751795588050$$APP_SPEC_TS__1$ = goog.getMsg(" Some other content {$interpolation} {$startTagDiv} More nested levels with bindings {$interpolation_1} {$closeTagDiv}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD", | ||||
|               "startTagDiv": "\uFFFD#3\uFFFD", | ||||
| @ -1526,7 +1526,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           } | ||||
|         } | ||||
|         var $I18N_2$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_2367729185105559721$$APP_SPEC_TS__2$ = goog.getMsg("App logo #{$interpolation}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD" | ||||
|             }); | ||||
| @ -1631,7 +1631,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           } | ||||
|         } | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$ = goog.getMsg(" Some content {$startTagDiv_2} Some other content {$interpolation} {$startTagDiv} More nested levels with bindings {$interpolation_1} {$startTagDiv_1} Content inside sub-template {$interpolation_2} {$startTagDiv} Bottom level element {$interpolation_3} {$closeTagDiv}{$closeTagDiv}{$closeTagDiv}{$closeTagDiv}{$startTagDiv_3} Some other content {$interpolation_4} {$startTagDiv} More nested levels with bindings {$interpolation_5} {$closeTagDiv}{$closeTagDiv}", { | ||||
|               "startTagDiv_2": "\uFFFD*2:1\uFFFD\uFFFD#1:1\uFFFD", | ||||
|               "closeTagDiv": "[\uFFFD/#2:2\uFFFD|\uFFFD/#1:2\uFFFD\uFFFD/*4:2\uFFFD|\uFFFD/#2:1\uFFFD|\uFFFD/#1:1\uFFFD\uFFFD/*2:1\uFFFD|\uFFFD/#2:3\uFFFD|\uFFFD/#1:3\uFFFD\uFFFD/*3:3\uFFFD]", | ||||
| @ -1722,7 +1722,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_119975189388320493$$APP_SPEC_TS__1$ = goog.getMsg("Some other content {$startTagSpan}{$interpolation}{$closeTagSpan}", { | ||||
|               "startTagSpan": "\uFFFD#2\uFFFD", | ||||
|               "interpolation": "\uFFFD0\uFFFD", | ||||
| @ -1775,7 +1775,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_APP_SPEC_TS_2$ = goog.getMsg("Hello"); | ||||
|             $I18N_1$ = $MSG_APP_SPEC_TS_2$; | ||||
|         } | ||||
| @ -1806,7 +1806,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_4890179241114413722$$APP_SPEC_TS_0$ = goog.getMsg("My i18n block #1"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_4890179241114413722$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -1833,7 +1833,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} other {other}}"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -1870,7 +1870,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_2413150872298537152$$APP_SPEC_TS_0$ = goog.getMsg("My i18n block #2"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_2413150872298537152$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -1878,7 +1878,7 @@ describe('i18n support in the template compiler', () => { | ||||
|             $I18N_0$ = $localize \`My i18n block #2\`;
 | ||||
|         } | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_4890179241114413722$$APP_SPEC_TS__1$ = goog.getMsg("My i18n block #1"); | ||||
|             $I18N_1$ = $MSG_EXTERNAL_4890179241114413722$$APP_SPEC_TS__1$; | ||||
|         } | ||||
| @ -1912,7 +1912,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_5295701706185791735$$APP_SPEC_TS_1$ = goog.getMsg("Text #1"); | ||||
|             $I18N_1$ = $MSG_EXTERNAL_5295701706185791735$$APP_SPEC_TS_1$; | ||||
|         } | ||||
| @ -1920,7 +1920,7 @@ describe('i18n support in the template compiler', () => { | ||||
|             $I18N_1$ = $localize \`Text #1\`;
 | ||||
|         } | ||||
|         var $I18N_3$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_4722270221386399294$$APP_SPEC_TS_3$ = goog.getMsg("Text #2"); | ||||
|             $I18N_3$ = $MSG_EXTERNAL_4722270221386399294$$APP_SPEC_TS_3$; | ||||
|         } | ||||
| @ -1955,7 +1955,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|           const $MSG_EXTERNAL_355394464191978948$$APP_SPEC_TS_0$ = goog.getMsg("Some content: {$interpolation}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD" | ||||
|             }); | ||||
| @ -1992,7 +1992,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_355394464191978948$$APP_SPEC_TS__0$ = goog.getMsg("Some content: {$interpolation}", { | ||||
|               "interpolation": "\uFFFD0\uFFFD" | ||||
|             }); | ||||
| @ -2035,7 +2035,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|           const $MSG_EXTERNAL_702706566400598764$$APP_SPEC_TS_0$ = goog.getMsg("{$startTagNgTemplate}Template content: {$interpolation}{$closeTagNgTemplate}{$startTagNgContainer}Container content: {$interpolation_1}{$closeTagNgContainer}", { | ||||
|             "startTagNgTemplate": "\uFFFD*2:1\uFFFD", | ||||
|             "closeTagNgTemplate": "\uFFFD/*2:1\uFFFD", | ||||
| @ -2097,7 +2097,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} other {other}}"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -2108,7 +2108,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "VAR_SELECT": "\uFFFD0\uFFFD" | ||||
|         }); | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS__1$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); | ||||
|             $I18N_1$ = $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS__1$; | ||||
|         } | ||||
| @ -2187,7 +2187,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           } | ||||
|         } | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$ = goog.getMsg("{$startTagNgTemplate} Template A: {$interpolation} {$startTagNgTemplate} Template B: {$interpolation_1} {$startTagNgTemplate} Template C: {$interpolation_2} {$closeTagNgTemplate}{$closeTagNgTemplate}{$closeTagNgTemplate}", { | ||||
|               "startTagNgTemplate": "[\uFFFD*2:1\uFFFD|\uFFFD*2:2\uFFFD|\uFFFD*1:3\uFFFD]", | ||||
|               "closeTagNgTemplate": "[\uFFFD/*1:3\uFFFD|\uFFFD/*2:2\uFFFD|\uFFFD/*2:1\uFFFD]", | ||||
| @ -2251,7 +2251,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -2262,7 +2262,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "VAR_SELECT": "\uFFFD0\uFFFD" | ||||
|         }); | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS__1$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} other {other}}"); | ||||
|             $I18N_1$ = $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS__1$; | ||||
|         } | ||||
| @ -2314,7 +2314,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_4891196282781544695$$APP_SPEC_TS_0$ = goog.getMsg("{$tagImg} is my logo #1 ", { | ||||
|               "tagImg": "\uFFFD#2\uFFFD\uFFFD/#2\uFFFD" | ||||
|             }); | ||||
| @ -2325,7 +2325,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           String.raw `{"\uFFFD#2\uFFFD\uFFFD/#2\uFFFD"}:TAG_IMG: is my logo #1 \`;
 | ||||
|         } | ||||
|         var $I18N_2$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_461986953980355147$$APP_SPEC_TS__2$ = goog.getMsg("{$tagImg} is my logo #2 ", { | ||||
|               "tagImg": "\uFFFD#1\uFFFD\uFFFD/#1\uFFFD" | ||||
|             }); | ||||
| @ -2371,7 +2371,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_8537814667662432133$$APP_SPEC_TS__0$ = goog.getMsg(" Root content {$startTagNgContainer} Nested content {$closeTagNgContainer}", { | ||||
|               "startTagNgContainer": "\uFFFD*1:1\uFFFD\uFFFD#1:1\uFFFD", | ||||
|               "closeTagNgContainer": "\uFFFD/#1:1\uFFFD\uFFFD/*1:1\uFFFD" | ||||
| @ -2401,7 +2401,7 @@ describe('i18n support in the template compiler', () => { | ||||
|       // that can be implemented in the future within FW-635.
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_6563391987554512024$$APP_SPEC_TS_0$ = goog.getMsg("Test"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_6563391987554512024$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -2409,7 +2409,7 @@ describe('i18n support in the template compiler', () => { | ||||
|             $I18N_0$ = $localize \`Test\`;
 | ||||
|         } | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_6563391987554512024$$APP_SPEC_TS_1$ = goog.getMsg("Test"); | ||||
|             $I18N_1$ = $MSG_EXTERNAL_6563391987554512024$$APP_SPEC_TS_1$; | ||||
|         } | ||||
| @ -2431,7 +2431,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|           const $MSG_APP_SPEC_TS_1$ = goog.getMsg(" Hello {$startTagNgContainer}there{$closeTagNgContainer}", { "startTagNgContainer": "\uFFFD#2\uFFFD", "closeTagNgContainer": "\uFFFD/#2\uFFFD" }); | ||||
|           $I18N_0$ = $MSG_APP_SPEC_TS_1$; | ||||
|         } | ||||
| @ -2467,7 +2467,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|          const output = String.raw ` | ||||
|           var $I18N_0$; | ||||
|           if (ngI18nClosureMode) { | ||||
|           if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_APP_SPEC_TS_1$ = goog.getMsg(" Hello {$startTagNgContainer}there {$startTagStrong}!{$closeTagStrong}{$closeTagNgContainer}", { "startTagNgContainer": "\uFFFD#2\uFFFD", "startTagStrong": "\uFFFD#3\uFFFD", "closeTagStrong": "\uFFFD/#3\uFFFD", "closeTagNgContainer": "\uFFFD/#2\uFFFD" }); | ||||
|             $I18N_0$ = $MSG_APP_SPEC_TS_1$; | ||||
|           } | ||||
| @ -2507,7 +2507,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_3308216566145348998$$APP_SPEC_TS___2$ = goog.getMsg("Content A"); | ||||
|             $I18N_1$ = $MSG_EXTERNAL_3308216566145348998$$APP_SPEC_TS___2$; | ||||
|         } else { | ||||
| @ -2524,7 +2524,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           } | ||||
|         } | ||||
|         var $I18N_3$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_8349021389088127654$$APP_SPEC_TS__4$ = goog.getMsg("Content B"); | ||||
|             $I18N_3$ = $MSG_EXTERNAL_8349021389088127654$$APP_SPEC_TS__4$; | ||||
|         } else { | ||||
| @ -2568,7 +2568,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_963542717423364282$$APP_SPEC_TS_0$ = goog.getMsg("\n          Some text\n          {$startTagSpan}Text inside span{$closeTagSpan}\n        ", { | ||||
|               "startTagSpan": "\uFFFD#3\uFFFD", | ||||
|               "closeTagSpan": "\uFFFD/#3\uFFFD" | ||||
| @ -2609,7 +2609,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -2645,7 +2645,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_4166854826696768832$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, single {'single quotes'} double {\"double quotes\"} other {other}}"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_4166854826696768832$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -2667,7 +2667,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} other {other}}"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -2707,7 +2707,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -2718,7 +2718,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "VAR_SELECT": "\uFFFD0\uFFFD" | ||||
|         }); | ||||
|         var $I18N_3$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS__3$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} other {other}}"); | ||||
|             $I18N_3$ = $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS__3$; | ||||
|         } | ||||
| @ -2743,7 +2743,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           } | ||||
|         } | ||||
|         var $I18N_5$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_1922743304863699161$$APP_SPEC_TS__5$ = goog.getMsg("{VAR_SELECT, select, 0 {no emails} 1 {one email} other {{INTERPOLATION} emails}}"); | ||||
|             $I18N_5$ = $MSG_EXTERNAL_1922743304863699161$$APP_SPEC_TS__5$; | ||||
|         } | ||||
| @ -2801,7 +2801,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_2949673783721159566$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} other {{INTERPOLATION}}}"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_2949673783721159566$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -2840,7 +2840,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_2417296354340576868$$APP_SPEC_TS_1$ = goog.getMsg("{VAR_SELECT, select, male {male - {START_BOLD_TEXT}male{CLOSE_BOLD_TEXT}} female {female {START_BOLD_TEXT}female{CLOSE_BOLD_TEXT}} other {{START_TAG_DIV}{START_ITALIC_TEXT}other{CLOSE_ITALIC_TEXT}{CLOSE_TAG_DIV}}}"); | ||||
|             $I18N_1$ = $MSG_EXTERNAL_2417296354340576868$$APP_SPEC_TS_1$; | ||||
|         } | ||||
| @ -2857,7 +2857,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "CLOSE_TAG_DIV": "</div>" | ||||
|         }); | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_5791551881115084301$$APP_SPEC_TS_0$ = goog.getMsg(" {$icu} {$startBoldText}Other content{$closeBoldText}{$startTagDiv}{$startItalicText}Another content{$closeItalicText}{$closeTagDiv}", { | ||||
|               "startBoldText": "\uFFFD#2\uFFFD", | ||||
|               "closeBoldText": "\uFFFD/#2\uFFFD", | ||||
| @ -2911,7 +2911,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_6879461626778511059$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, male {male of age: {INTERPOLATION}} female {female} other {other}}"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_6879461626778511059$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -2951,7 +2951,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); | ||||
|             $I18N_1$ = $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$; | ||||
|         } | ||||
| @ -2962,7 +2962,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "VAR_SELECT": "\uFFFD0\uFFFD" | ||||
|         }); | ||||
|         var $I18N_2$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_7068143081688428291$$APP_SPEC_TS_2$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} 30 {thirty} other {other}}"); | ||||
|             $I18N_2$ = $MSG_EXTERNAL_7068143081688428291$$APP_SPEC_TS_2$; | ||||
|         } | ||||
| @ -2973,7 +2973,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "VAR_SELECT": "\uFFFD1\uFFFD" | ||||
|         }); | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_2967249209167308918$$APP_SPEC_TS_0$ = goog.getMsg(" {$icu} {$icu_1} ", { | ||||
|               "icu": $I18N_1$, | ||||
|               "icu_1": $I18N_2$ | ||||
| @ -3018,7 +3018,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_APP_SPEC_TS_1$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); | ||||
|             $I18N_1$ = $MSG_APP_SPEC_TS_1$; | ||||
|         } | ||||
| @ -3029,7 +3029,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "VAR_SELECT": "\uFFFD0\uFFFD" | ||||
|         }); | ||||
|         var $I18N_2$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_APP_SPEC_TS_2$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); | ||||
|             $I18N_2$ = $MSG_APP_SPEC_TS_2$; | ||||
|         } | ||||
| @ -3040,7 +3040,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "VAR_SELECT": "\uFFFD1\uFFFD" | ||||
|         }); | ||||
|         var $I18N_4$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_APP_SPEC_TS__4$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); | ||||
|             $I18N_4$ = $MSG_APP_SPEC_TS__4$; | ||||
|         } | ||||
| @ -3051,7 +3051,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "VAR_SELECT": "\uFFFD0:1\uFFFD" | ||||
|         }); | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_APP_SPEC_TS_0$ = goog.getMsg(" {$icu} {$startTagDiv} {$icu} {$closeTagDiv}{$startTagDiv_1} {$icu} {$closeTagDiv}", { | ||||
|               "startTagDiv": "\uFFFD#2\uFFFD", | ||||
|               "closeTagDiv": "[\uFFFD/#2\uFFFD|\uFFFD/#1:1\uFFFD\uFFFD/*3:1\uFFFD]", | ||||
| @ -3126,7 +3126,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_343563413083115114$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT_1, select, male {male of age: {VAR_SELECT, select, 10 {ten} 20 {twenty} 30 {thirty} other {other}}} female {female} other {other}}"); | ||||
|             $I18N_1$ = $MSG_EXTERNAL_343563413083115114$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -3138,7 +3138,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "VAR_SELECT_1": "\uFFFD1\uFFFD" | ||||
|         }); | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_3052001905251380936$$APP_SPEC_TS_3$ = goog.getMsg(" {$icu} ", { "icu": $I18N_1$ }); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_3052001905251380936$$APP_SPEC_TS_3$; | ||||
|         } | ||||
| @ -3181,7 +3181,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_6870293071705078389$$APP_SPEC_TS_1$ = goog.getMsg("{VAR_PLURAL, plural, =0 {zero} =2 {{INTERPOLATION} {VAR_SELECT, select, cat {cats} dog {dogs} other {animals}} !} other {other - {INTERPOLATION}}}"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_6870293071705078389$$APP_SPEC_TS_1$; | ||||
|         } | ||||
| @ -3224,7 +3224,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); | ||||
|             $I18N_1$ = $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$; | ||||
|         } | ||||
| @ -3235,7 +3235,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "VAR_SELECT": "\uFFFD0\uFFFD" | ||||
|         }); | ||||
|         var $I18N_3$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_7068143081688428291$$APP_SPEC_TS__3$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} 30 {thirty} other {other}}"); | ||||
|             $I18N_3$ = $MSG_EXTERNAL_7068143081688428291$$APP_SPEC_TS__3$; | ||||
|         } | ||||
| @ -3246,7 +3246,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "VAR_SELECT": "\uFFFD0:1\uFFFD" | ||||
|         }); | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_1194472282609532229$$APP_SPEC_TS_0$ = goog.getMsg(" {$icu} {$startTagSpan} {$icu_1} {$closeTagSpan}", { | ||||
|               "startTagSpan": "\uFFFD*2:1\uFFFD\uFFFD#1:1\uFFFD", | ||||
|               "closeTagSpan": "\uFFFD/#1:1\uFFFD\uFFFD/*2:1\uFFFD", | ||||
| @ -3310,7 +3310,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_1$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_7825031864601787094$$APP_SPEC_TS_1$ = goog.getMsg("{VAR_SELECT, select, male {male {INTERPOLATION}} female {female {INTERPOLATION_1}} other {other}}"); | ||||
|             $I18N_1$ = $MSG_EXTERNAL_7825031864601787094$$APP_SPEC_TS_1$; | ||||
|         } | ||||
| @ -3323,7 +3323,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "INTERPOLATION_1": "\uFFFD2\uFFFD" | ||||
|         }); | ||||
|         var $I18N_3$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_2310343208266678305$$APP_SPEC_TS__3$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} 30 {thirty} other {other: {INTERPOLATION}}}"); | ||||
|             $I18N_3$ = $MSG_EXTERNAL_2310343208266678305$$APP_SPEC_TS__3$; | ||||
|         } | ||||
| @ -3335,7 +3335,7 @@ describe('i18n support in the template compiler', () => { | ||||
|           "INTERPOLATION": "\uFFFD1:1\uFFFD" | ||||
|         }); | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_7186042105600518133$$APP_SPEC_TS_0$ = goog.getMsg(" {$icu} {$startTagSpan} {$icu_1} {$closeTagSpan}", { | ||||
|               "startTagSpan": "\uFFFD*2:1\uFFFD\uFFFD#1:1\uFFFD", | ||||
|               "closeTagSpan": "\uFFFD/#1:1\uFFFD\uFFFD/*2:1\uFFFD", | ||||
| @ -3400,7 +3400,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             const $MSG_EXTERNAL_6318060397235942326$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, male {male {PH_A}} female {female {PH_B}} other {other {PH_WITH_SPACES}}}"); | ||||
|             $I18N_0$ = $MSG_EXTERNAL_6318060397235942326$$APP_SPEC_TS_0$; | ||||
|         } | ||||
| @ -3439,7 +3439,7 @@ describe('i18n support in the template compiler', () => { | ||||
| 
 | ||||
|       const output = String.raw ` | ||||
|         var $I18N_0$; | ||||
|         if (ngI18nClosureMode) { | ||||
|         if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { | ||||
|             /** | ||||
|              * @desc descA | ||||
|              * @meaning meaningA | ||||
|  | ||||
| @ -2070,7 +2070,7 @@ const NG_I18N_CLOSURE_MODE = 'ngI18nClosureMode'; | ||||
|  * | ||||
|  * ``` | ||||
|  * var I18N_1; | ||||
|  * if (ngI18nClosureMode) { | ||||
|  * if (typeof ngI18nClosureMode !== undefined && ngI18nClosureMode) { | ||||
|  *     var MSG_EXTERNAL_XXX = goog.getMsg( | ||||
|  *          "Some message with {$interpolation}!", | ||||
|  *          { "interpolation": "\uFFFD0\uFFFD" } | ||||
| @ -2098,8 +2098,7 @@ export function getTranslationDeclStmts( | ||||
|   const statements: o.Statement[] = [ | ||||
|     declareI18nVariable(variable), | ||||
|     o.ifStmt( | ||||
|         o.variable(NG_I18N_CLOSURE_MODE), | ||||
|         createGoogleGetMsgStatements( | ||||
|         createClosureModeGuard(), createGoogleGetMsgStatements( | ||||
|                                       variable, message, closureVar, | ||||
|                                       i18nFormatPlaceholderNames(params, /* useCamelCase */ true)), | ||||
|         createLocalizeStatements( | ||||
| @ -2112,3 +2111,17 @@ export function getTranslationDeclStmts( | ||||
| 
 | ||||
|   return statements; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Create the expression that will be used to guard the closure mode block | ||||
|  * It is equivalent to: | ||||
|  * | ||||
|  * ``` | ||||
|  * typeof ngI18nClosureMode !== undefined && ngI18nClosureMode | ||||
|  * ``` | ||||
|  */ | ||||
| function createClosureModeGuard(): o.BinaryOperatorExpr { | ||||
|   return o.typeofExpr(o.variable(NG_I18N_CLOSURE_MODE)) | ||||
|       .notIdentical(o.literal('undefined', o.STRING_TYPE)) | ||||
|       .and(o.variable(NG_I18N_CLOSURE_MODE)); | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user