diff --git a/crates/angular_conformance/README.md b/crates/angular_conformance/README.md
index e255c61b6..8302d8409 100644
--- a/crates/angular_conformance/README.md
+++ b/crates/angular_conformance/README.md
@@ -4,7 +4,7 @@ A conformance testing framework that validates the oxc Angular compiler implemen
## Overview
-This crate extracts test cases from Angular's TypeScript spec files and runs them against the Rust implementation to ensure compatibility. Currently maintains **100% pass rate** across 1,252 extracted test assertions.
+This crate extracts test cases from Angular's TypeScript spec files and runs them against the Rust implementation to ensure compatibility. It currently maintains a **100% pass rate** across **1,264** extracted test assertions against Angular **v22.0.0-rc.2**.
## Architecture
diff --git a/crates/angular_conformance/fixtures/compiler_facade_interface_spec.json b/crates/angular_conformance/fixtures/compiler_facade_interface_spec.json
index 581ec8324..cfaecf2ac 100644
--- a/crates/angular_conformance/fixtures/compiler_facade_interface_spec.json
+++ b/crates/angular_conformance/fixtures/compiler_facade_interface_spec.json
@@ -1,5 +1,5 @@
{
"name": "compiler_facade_interface_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/compiler_facade_interface_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/compiler_facade_interface_spec.ts",
"test_groups": []
}
diff --git a/crates/angular_conformance/fixtures/expression_parser_ast_spec.json b/crates/angular_conformance/fixtures/expression_parser_ast_spec.json
index 4af87fa72..3d1398039 100644
--- a/crates/angular_conformance/fixtures/expression_parser_ast_spec.json
+++ b/crates/angular_conformance/fixtures/expression_parser_ast_spec.json
@@ -1,6 +1,6 @@
{
"name": "ast_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/ast_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/ast_spec.ts",
"test_groups": [
{
"name": "RecursiveAstVisitor",
diff --git a/crates/angular_conformance/fixtures/expression_parser_lexer_spec.json b/crates/angular_conformance/fixtures/expression_parser_lexer_spec.json
index 9dbe2a637..800f28615 100644
--- a/crates/angular_conformance/fixtures/expression_parser_lexer_spec.json
+++ b/crates/angular_conformance/fixtures/expression_parser_lexer_spec.json
@@ -1,6 +1,6 @@
{
"name": "lexer_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/lexer_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/lexer_spec.ts",
"test_groups": [
{
"name": "lexer",
diff --git a/crates/angular_conformance/fixtures/expression_parser_parser_spec.json b/crates/angular_conformance/fixtures/expression_parser_parser_spec.json
index 29d3ea7a3..3045d33f6 100644
--- a/crates/angular_conformance/fixtures/expression_parser_parser_spec.json
+++ b/crates/angular_conformance/fixtures/expression_parser_parser_spec.json
@@ -1,6 +1,6 @@
{
"name": "parser_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/parser_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/parser_spec.ts",
"test_groups": [
{
"name": "parser",
@@ -1474,6 +1474,32 @@
"type": "CheckAction",
"input": "('key' in obj) && true",
"expected": "(\"key\" in obj) && true"
+ },
+ {
+ "type": "CheckAction",
+ "input": "'in' in {in: foo}",
+ "expected": "\"in\" in {in: foo}"
+ }
+ ]
+ },
+ {
+ "name": "should throw on invalid in expressions",
+ "path": "parser/parseAction/should throw on invalid in expressions",
+ "assertions": [
+ {
+ "type": "ExpectActionError",
+ "input": "in",
+ "error_contains": "Unexpected token in"
+ },
+ {
+ "type": "ExpectActionError",
+ "input": "in foo",
+ "error_contains": "Unexpected token in"
+ },
+ {
+ "type": "ExpectActionError",
+ "input": "'foo' in",
+ "error_contains": "Unexpected end of expression: 'foo' in at the end of the expression ['foo' in]"
}
]
},
@@ -2074,17 +2100,6 @@
}
]
},
- {
- "name": "should report missing comma between arrow function parameters",
- "path": "parser/parseBinding/arrow functions/arrow function validations/should report missing comma between arrow function parameters",
- "assertions": [
- {
- "type": "ExpectBindingError",
- "input": "(a b) => a + b",
- "error_contains": "Missing expected ,"
- }
- ]
- },
{
"name": "should report an error inside the arrow function expression",
"path": "parser/parseBinding/arrow functions/arrow function validations/should report an error inside the arrow function expression",
diff --git a/crates/angular_conformance/fixtures/expression_parser_serializer_spec.json b/crates/angular_conformance/fixtures/expression_parser_serializer_spec.json
index ac501d75e..609823cf9 100644
--- a/crates/angular_conformance/fixtures/expression_parser_serializer_spec.json
+++ b/crates/angular_conformance/fixtures/expression_parser_serializer_spec.json
@@ -1,6 +1,6 @@
{
"name": "serializer_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/serializer_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/expression_parser/serializer_spec.ts",
"test_groups": [
{
"name": "serializer",
diff --git a/crates/angular_conformance/fixtures/i18n_digest_spec.json b/crates/angular_conformance/fixtures/i18n_digest_spec.json
index 05d859c67..fa0e734a3 100644
--- a/crates/angular_conformance/fixtures/i18n_digest_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_digest_spec.json
@@ -1,6 +1,6 @@
{
"name": "digest_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/digest_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/digest_spec.ts",
"test_groups": [
{
"name": "digest",
diff --git a/crates/angular_conformance/fixtures/i18n_extractor_merger_spec.json b/crates/angular_conformance/fixtures/i18n_extractor_merger_spec.json
index a44b45078..242da7a4f 100644
--- a/crates/angular_conformance/fixtures/i18n_extractor_merger_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_extractor_merger_spec.json
@@ -1,6 +1,6 @@
{
"name": "extractor_merger_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/extractor_merger_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/extractor_merger_spec.ts",
"test_groups": [
{
"name": "Extractor",
@@ -153,8 +153,8 @@
"assertions": []
},
{
- "name": "should ignore implicit elements in non translatable ICU messages",
- "path": "Extractor/ICU messages/should ignore implicit elements in non translatable ICU messages",
+ "name": "should ignore implicit elements in non translatable ICU messages 2",
+ "path": "Extractor/ICU messages/should ignore implicit elements in non translatable ICU messages 2",
"assertions": []
}
]
diff --git a/crates/angular_conformance/fixtures/i18n_i18n_ast_spec.json b/crates/angular_conformance/fixtures/i18n_i18n_ast_spec.json
index 818089368..3b4d43882 100644
--- a/crates/angular_conformance/fixtures/i18n_i18n_ast_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_i18n_ast_spec.json
@@ -1,6 +1,6 @@
{
"name": "i18n_ast_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/i18n_ast_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/i18n_ast_spec.ts",
"test_groups": [
{
"name": "Message",
diff --git a/crates/angular_conformance/fixtures/i18n_i18n_html_parser_spec.json b/crates/angular_conformance/fixtures/i18n_i18n_html_parser_spec.json
index c2d406a0f..45b92d79c 100644
--- a/crates/angular_conformance/fixtures/i18n_i18n_html_parser_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_i18n_html_parser_spec.json
@@ -1,6 +1,6 @@
{
"name": "i18n_html_parser_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/i18n_html_parser_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/i18n_html_parser_spec.ts",
"test_groups": [
{
"name": "I18N html parser",
diff --git a/crates/angular_conformance/fixtures/i18n_i18n_parser_spec.json b/crates/angular_conformance/fixtures/i18n_i18n_parser_spec.json
index eb1a7575f..e8745b0a0 100644
--- a/crates/angular_conformance/fixtures/i18n_i18n_parser_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_i18n_parser_spec.json
@@ -1,6 +1,6 @@
{
"name": "i18n_parser_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/i18n_parser_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/i18n_parser_spec.ts",
"test_groups": [
{
"name": "I18nParser",
diff --git a/crates/angular_conformance/fixtures/i18n_integration_xliff2_spec.json b/crates/angular_conformance/fixtures/i18n_integration_xliff2_spec.json
index 0355e11dc..b42afd958 100644
--- a/crates/angular_conformance/fixtures/i18n_integration_xliff2_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_integration_xliff2_spec.json
@@ -1,5 +1,5 @@
{
"name": "integration_xliff2_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/integration_xliff2_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/integration_xliff2_spec.ts",
"test_groups": []
}
diff --git a/crates/angular_conformance/fixtures/i18n_integration_xliff_spec.json b/crates/angular_conformance/fixtures/i18n_integration_xliff_spec.json
index 08aa18a4c..785927a86 100644
--- a/crates/angular_conformance/fixtures/i18n_integration_xliff_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_integration_xliff_spec.json
@@ -1,5 +1,5 @@
{
"name": "integration_xliff_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/integration_xliff_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/integration_xliff_spec.ts",
"test_groups": []
}
diff --git a/crates/angular_conformance/fixtures/i18n_integration_xmb_xtb_spec.json b/crates/angular_conformance/fixtures/i18n_integration_xmb_xtb_spec.json
index c666a5ebe..1547eeb07 100644
--- a/crates/angular_conformance/fixtures/i18n_integration_xmb_xtb_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_integration_xmb_xtb_spec.json
@@ -1,5 +1,5 @@
{
"name": "integration_xmb_xtb_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/integration_xmb_xtb_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/integration_xmb_xtb_spec.ts",
"test_groups": []
}
diff --git a/crates/angular_conformance/fixtures/i18n_message_bundle_spec.json b/crates/angular_conformance/fixtures/i18n_message_bundle_spec.json
index f71ab7303..6579d602f 100644
--- a/crates/angular_conformance/fixtures/i18n_message_bundle_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_message_bundle_spec.json
@@ -1,6 +1,6 @@
{
"name": "message_bundle_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/message_bundle_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/message_bundle_spec.ts",
"test_groups": [
{
"name": "MessageBundle",
diff --git a/crates/angular_conformance/fixtures/i18n_serializers_i18n_ast_spec.json b/crates/angular_conformance/fixtures/i18n_serializers_i18n_ast_spec.json
index 086c1dd80..69e11ab00 100644
--- a/crates/angular_conformance/fixtures/i18n_serializers_i18n_ast_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_serializers_i18n_ast_spec.json
@@ -1,6 +1,6 @@
{
"name": "i18n_ast_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/i18n_ast_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/i18n_ast_spec.ts",
"test_groups": [
{
"name": "i18n AST",
diff --git a/crates/angular_conformance/fixtures/i18n_serializers_placeholder_spec.json b/crates/angular_conformance/fixtures/i18n_serializers_placeholder_spec.json
index f09cdf163..afdca773a 100644
--- a/crates/angular_conformance/fixtures/i18n_serializers_placeholder_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_serializers_placeholder_spec.json
@@ -1,6 +1,6 @@
{
"name": "placeholder_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/placeholder_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/placeholder_spec.ts",
"test_groups": [
{
"name": "PlaceholderRegistry",
diff --git a/crates/angular_conformance/fixtures/i18n_serializers_xliff2_spec.json b/crates/angular_conformance/fixtures/i18n_serializers_xliff2_spec.json
index b284b7571..2b8d630d4 100644
--- a/crates/angular_conformance/fixtures/i18n_serializers_xliff2_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_serializers_xliff2_spec.json
@@ -1,6 +1,6 @@
{
"name": "xliff2_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xliff2_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xliff2_spec.ts",
"test_groups": [
{
"name": "XLIFF 2.0 serializer",
diff --git a/crates/angular_conformance/fixtures/i18n_serializers_xliff_spec.json b/crates/angular_conformance/fixtures/i18n_serializers_xliff_spec.json
index 07e541405..7f26539d5 100644
--- a/crates/angular_conformance/fixtures/i18n_serializers_xliff_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_serializers_xliff_spec.json
@@ -1,6 +1,6 @@
{
"name": "xliff_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xliff_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xliff_spec.ts",
"test_groups": [
{
"name": "XLIFF serializer",
diff --git a/crates/angular_conformance/fixtures/i18n_serializers_xmb_spec.json b/crates/angular_conformance/fixtures/i18n_serializers_xmb_spec.json
index 4b8dfa494..00aded913 100644
--- a/crates/angular_conformance/fixtures/i18n_serializers_xmb_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_serializers_xmb_spec.json
@@ -1,6 +1,6 @@
{
"name": "xmb_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xmb_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xmb_spec.ts",
"test_groups": [
{
"name": "XMB serializer",
diff --git a/crates/angular_conformance/fixtures/i18n_serializers_xml_helper_spec.json b/crates/angular_conformance/fixtures/i18n_serializers_xml_helper_spec.json
index 2e502b051..a6a84107b 100644
--- a/crates/angular_conformance/fixtures/i18n_serializers_xml_helper_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_serializers_xml_helper_spec.json
@@ -1,6 +1,6 @@
{
"name": "xml_helper_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xml_helper_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xml_helper_spec.ts",
"test_groups": [
{
"name": "XML helper",
diff --git a/crates/angular_conformance/fixtures/i18n_serializers_xtb_spec.json b/crates/angular_conformance/fixtures/i18n_serializers_xtb_spec.json
index 91aed981f..1490c78c7 100644
--- a/crates/angular_conformance/fixtures/i18n_serializers_xtb_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_serializers_xtb_spec.json
@@ -1,6 +1,6 @@
{
"name": "xtb_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xtb_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/serializers/xtb_spec.ts",
"test_groups": [
{
"name": "XTB serializer",
diff --git a/crates/angular_conformance/fixtures/i18n_translation_bundle_spec.json b/crates/angular_conformance/fixtures/i18n_translation_bundle_spec.json
index 0e9fbace6..0966156a2 100644
--- a/crates/angular_conformance/fixtures/i18n_translation_bundle_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_translation_bundle_spec.json
@@ -1,6 +1,6 @@
{
"name": "translation_bundle_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/translation_bundle_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/translation_bundle_spec.ts",
"test_groups": [
{
"name": "TranslationBundle",
diff --git a/crates/angular_conformance/fixtures/i18n_whitespace_sensitivity_spec.json b/crates/angular_conformance/fixtures/i18n_whitespace_sensitivity_spec.json
index cdb8b6ef3..15cdb22dd 100644
--- a/crates/angular_conformance/fixtures/i18n_whitespace_sensitivity_spec.json
+++ b/crates/angular_conformance/fixtures/i18n_whitespace_sensitivity_spec.json
@@ -1,6 +1,6 @@
{
"name": "whitespace_sensitivity_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/whitespace_sensitivity_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/i18n/whitespace_sensitivity_spec.ts",
"test_groups": [
{
"name": "i18nPreserveWhitespaceForLegacyExtraction",
diff --git a/crates/angular_conformance/fixtures/integration_spec.json b/crates/angular_conformance/fixtures/integration_spec.json
index d23da8112..a96e23801 100644
--- a/crates/angular_conformance/fixtures/integration_spec.json
+++ b/crates/angular_conformance/fixtures/integration_spec.json
@@ -1,6 +1,6 @@
{
"name": "integration_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/integration_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/integration_spec.ts",
"test_groups": [
{
"name": "integration tests",
diff --git a/crates/angular_conformance/fixtures/ml_parser_ast_serializer_spec.json b/crates/angular_conformance/fixtures/ml_parser_ast_serializer_spec.json
index 8cf0a1423..f2573a382 100644
--- a/crates/angular_conformance/fixtures/ml_parser_ast_serializer_spec.json
+++ b/crates/angular_conformance/fixtures/ml_parser_ast_serializer_spec.json
@@ -1,6 +1,6 @@
{
"name": "ast_serializer_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/ml_parser/ast_serializer_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/ml_parser/ast_serializer_spec.ts",
"test_groups": [
{
"name": "Node serializer",
diff --git a/crates/angular_conformance/fixtures/ml_parser_html_parser_spec.json b/crates/angular_conformance/fixtures/ml_parser_html_parser_spec.json
index 3a8800645..440d49118 100644
--- a/crates/angular_conformance/fixtures/ml_parser_html_parser_spec.json
+++ b/crates/angular_conformance/fixtures/ml_parser_html_parser_spec.json
@@ -1,6 +1,6 @@
{
"name": "html_parser_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/ml_parser/html_parser_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/ml_parser/html_parser_spec.ts",
"test_groups": [
{
"name": "HtmlParser",
@@ -90,6 +90,28 @@
}
]
},
+ {
+ "name": "should parse named HTML entities containing digits",
+ "path": "HtmlParser/parse/text nodes/should parse named HTML entities containing digits",
+ "assertions": [
+ {
+ "type": "HumanizeDom",
+ "input": "
¹
",
+ "expected": [
+ ["html.Element", "div", 0.0],
+ ["html.Text", "¹", 1.0, [""], ["¹", "¹"], [""]]
+ ]
+ },
+ {
+ "type": "HumanizeDom",
+ "input": "½
",
+ "expected": [
+ ["html.Element", "div", 0.0],
+ ["html.Text", "½", 1.0, [""], ["½", "½"], [""]]
+ ]
+ }
+ ]
+ },
{
"name": "should normalize line endings within CDATA",
"path": "HtmlParser/parse/text nodes/should normalize line endings within CDATA",
@@ -605,32 +627,6 @@
}
]
},
- {
- "name": "should parse attributes containing unquoted interpolation",
- "path": "HtmlParser/parse/attributes/should parse attributes containing unquoted interpolation",
- "assertions": [
- {
- "type": "HumanizeDom",
- "input": "",
- "expected": [
- ["html.Element", "div", 0.0],
- [
- "html.Attribute",
- "foo",
- "{{message}}",
- [""],
- ["{{", "message", "}}"],
- [""]
- ]
- ]
- }
- ]
- },
- {
- "name": "should parse bound inputs with expressions containing newlines",
- "path": "HtmlParser/parse/attributes/should parse bound inputs with expressions containing newlines",
- "assertions": []
- },
{
"name": "should decode HTML entities in interpolated attributes",
"path": "HtmlParser/parse/attributes/should decode HTML entities in interpolated attributes",
@@ -770,8 +766,8 @@
"groups": [],
"tests": [
{
- "name": "should parse out expansion forms",
- "path": "HtmlParser/parse/expansion forms/should parse out expansion forms",
+ "name": "should parse out expansion forms (with multiple cases)",
+ "path": "HtmlParser/parse/expansion forms/should parse out expansion forms (with multiple cases)",
"assertions": []
},
{
@@ -790,8 +786,8 @@
"assertions": []
},
{
- "name": "should not normalize line-endings in ICU expressions in external templates when `i18nNormalizeLineEndingsInICUs` is not set",
- "path": "HtmlParser/parse/expansion forms/should not normalize line-endings in ICU expressions in external templates when `i18nNormalizeLineEndingsInICUs` is not set",
+ "name": "should not normalize line-endings in ICU expressions in external templates when `i18nNormalizeLineEndingsInICUs` is not set (escapedString:false)",
+ "path": "HtmlParser/parse/expansion forms/should not normalize line-endings in ICU expressions in external templates when `i18nNormalizeLineEndingsInICUs` is not set (escapedString:false)",
"assertions": []
},
{
@@ -981,6 +977,24 @@
}
]
},
+ {
+ "name": "should parse exhaustive default checks in a switch block",
+ "path": "HtmlParser/parse/blocks/should parse exhaustive default checks in a switch block",
+ "assertions": [
+ {
+ "type": "HumanizeDom",
+ "input": "@switch (expr) {@case ('foo') {} @default never;}",
+ "expected": [
+ ["html.Block", "switch", 0.0],
+ ["html.BlockParameter", "expr"],
+ ["html.Block", "case", 1.0],
+ ["html.BlockParameter", "'foo'"],
+ ["html.Text", " ", 1.0, [" "]],
+ ["html.Block", "default never", 1.0]
+ ]
+ }
+ ]
+ },
{
"name": "should close void elements used right before a block",
"path": "HtmlParser/parse/blocks/should close void elements used right before a block",
@@ -1032,8 +1046,8 @@
"assertions": []
},
{
- "name": "should parse an incomplete block with no parameters",
- "path": "HtmlParser/parse/blocks/should parse an incomplete block with no parameters",
+ "name": "should parse an incomplete block with no body",
+ "path": "HtmlParser/parse/blocks/should parse an incomplete block with no body",
"assertions": []
}
]
@@ -1081,7 +1095,7 @@
"html.LetDeclaration",
"foo",
"123 + 456",
- "@let foo = 123 + 456",
+ "@let foo = 123 + 456;",
"foo",
"123 + 456"
]
diff --git a/crates/angular_conformance/fixtures/ml_parser_html_whitespaces_spec.json b/crates/angular_conformance/fixtures/ml_parser_html_whitespaces_spec.json
index 90e5919eb..5a3474cdb 100644
--- a/crates/angular_conformance/fixtures/ml_parser_html_whitespaces_spec.json
+++ b/crates/angular_conformance/fixtures/ml_parser_html_whitespaces_spec.json
@@ -1,6 +1,6 @@
{
"name": "html_whitespaces_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/ml_parser/html_whitespaces_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/ml_parser/html_whitespaces_spec.ts",
"test_groups": [
{
"name": "removeWhitespaces",
diff --git a/crates/angular_conformance/fixtures/ml_parser_inline_comment_spec.json b/crates/angular_conformance/fixtures/ml_parser_inline_comment_spec.json
new file mode 100644
index 000000000..9bb14e721
--- /dev/null
+++ b/crates/angular_conformance/fixtures/ml_parser_inline_comment_spec.json
@@ -0,0 +1,57 @@
+{
+ "name": "inline_comment_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/ml_parser/inline_comment_spec.ts",
+ "test_groups": [
+ {
+ "name": "Inline comments in attributes",
+ "groups": [],
+ "tests": [
+ {
+ "name": "should ignore single line comments between attributes",
+ "path": "Inline comments in attributes/should ignore single line comments between attributes",
+ "assertions": []
+ },
+ {
+ "name": "should ignore single line comments between inputs and outputs",
+ "path": "Inline comments in attributes/should ignore single line comments between inputs and outputs",
+ "assertions": []
+ },
+ {
+ "name": "should ignore single line comments at the end of tag",
+ "path": "Inline comments in attributes/should ignore single line comments at the end of tag",
+ "assertions": []
+ },
+ {
+ "name": "should handle commented out attribute",
+ "path": "Inline comments in attributes/should handle commented out attribute",
+ "assertions": []
+ },
+ {
+ "name": "should comment an attribute with a // on a new line",
+ "path": "Inline comments in attributes/should comment an attribute with a // on a new line",
+ "assertions": []
+ },
+ {
+ "name": "should ignore multi-line comments between attributes",
+ "path": "Inline comments in attributes/should ignore multi-line comments between attributes",
+ "assertions": []
+ },
+ {
+ "name": "should ignore multi-line comments at the end of tag",
+ "path": "Inline comments in attributes/should ignore multi-line comments at the end of tag",
+ "assertions": []
+ },
+ {
+ "name": "should handle * inside multi-line comments",
+ "path": "Inline comments in attributes/should handle * inside multi-line comments",
+ "assertions": []
+ },
+ {
+ "name": "should maintain correct source spans with comments",
+ "path": "Inline comments in attributes/should maintain correct source spans with comments",
+ "assertions": []
+ }
+ ]
+ }
+ ]
+}
diff --git a/crates/angular_conformance/fixtures/ml_parser_lexer_spec.json b/crates/angular_conformance/fixtures/ml_parser_lexer_spec.json
index e31eb2f97..8a0daaa99 100644
--- a/crates/angular_conformance/fixtures/ml_parser_lexer_spec.json
+++ b/crates/angular_conformance/fixtures/ml_parser_lexer_spec.json
@@ -1,6 +1,6 @@
{
"name": "lexer_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/ml_parser/lexer_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/ml_parser/lexer_spec.ts",
"test_groups": [
{
"name": "HtmlLexer",
@@ -961,8 +961,8 @@
"assertions": []
},
{
- "name": "should not normalize line-endings in ICU expressions when `i18nNormalizeLineEndingsInICUs` is not defined",
- "path": "HtmlLexer/open tags/expansion forms/[line ending normalization/{escapedString: false}/should not normalize line-endings in ICU expressions when `i18nNormalizeLineEndingsInICUs` is not defined",
+ "name": "should not normalize line-endings in ICU expressions when `i18nNormalizeLineEndingsInICUs` is not defined (escapedString:false)",
+ "path": "HtmlLexer/open tags/expansion forms/[line ending normalization/{escapedString: false}/should not normalize line-endings in ICU expressions when `i18nNormalizeLineEndingsInICUs` is not defined (escapedString:false)",
"assertions": []
},
{
@@ -2715,30 +2715,6 @@
}
]
},
- {
- "name": "should parse bound inputs with expressions containing newlines",
- "path": "HtmlLexer/attributes/should parse bound inputs with expressions containing newlines",
- "assertions": [
- {
- "type": "HtmlLexerTest",
- "input": "",
- "test_type": "HumanizeParts",
- "expected": [
- ["TokenType.TAG_OPEN_START", "", "app-component"],
- ["TokenType.ATTR_NAME", "", "[attr]"],
- ["TokenType.ATTR_QUOTE", "\""],
- [
- "TokenType.ATTR_VALUE_TEXT",
- "[\n {text: 'some text',url:'//www.google.com'},\n {text:'other text',url:'//www.google.com'}]"
- ],
- ["TokenType.ATTR_QUOTE", "\""],
- ["TokenType.TAG_OPEN_END"],
- ["TokenType.EOF"]
- ],
- "options": null
- }
- ]
- },
{
"name": "should allow whitespace",
"path": "HtmlLexer/attributes/should allow whitespace",
@@ -3136,6 +3112,48 @@
}
]
},
+ {
+ "name": "should parse named entities containing digits",
+ "path": "HtmlLexer/entities/should parse named entities containing digits",
+ "assertions": [
+ {
+ "type": "HtmlLexerTest",
+ "input": "¹",
+ "test_type": "HumanizeParts",
+ "expected": [
+ ["TokenType.TEXT", ""],
+ ["TokenType.ENCODED_ENTITY", "¹", "¹"],
+ ["TokenType.TEXT", ""],
+ ["TokenType.EOF"]
+ ],
+ "options": null
+ },
+ {
+ "type": "HtmlLexerTest",
+ "input": "½",
+ "test_type": "HumanizeParts",
+ "expected": [
+ ["TokenType.TEXT", ""],
+ ["TokenType.ENCODED_ENTITY", "½", "½"],
+ ["TokenType.TEXT", ""],
+ ["TokenType.EOF"]
+ ],
+ "options": null
+ },
+ {
+ "type": "HtmlLexerTest",
+ "input": "▓",
+ "test_type": "HumanizeParts",
+ "expected": [
+ ["TokenType.TEXT", ""],
+ ["TokenType.ENCODED_ENTITY", "▓", "▓"],
+ ["TokenType.TEXT", ""],
+ ["TokenType.EOF"]
+ ],
+ "options": null
+ }
+ ]
+ },
{
"name": "should parse hexadecimal entities",
"path": "HtmlLexer/entities/should parse hexadecimal entities",
@@ -4055,8 +4073,8 @@
"assertions": []
},
{
- "name": "should not normalize line-endings in ICU expressions when `i18nNormalizeLineEndingsInICUs` is not defined",
- "path": "HtmlLexer/expansion forms/[line ending normalization/{escapedString: false}/should not normalize line-endings in ICU expressions when `i18nNormalizeLineEndingsInICUs` is not defined",
+ "name": "should not normalize line-endings in ICU expressions when `i18nNormalizeLineEndingsInICUs` is not defined (escapeString: false)",
+ "path": "HtmlLexer/expansion forms/[line ending normalization/{escapedString: false}/should not normalize line-endings in ICU expressions when `i18nNormalizeLineEndingsInICUs` is not defined (escapeString: false)",
"assertions": []
},
{
@@ -5010,6 +5028,61 @@
}
]
},
+ {
+ "name": "should parse @default never;",
+ "path": "HtmlLexer/blocks/should parse @default never;",
+ "assertions": [
+ {
+ "type": "HtmlLexerTest",
+ "input": "@default never;",
+ "test_type": "HumanizeParts",
+ "expected": [
+ ["TokenType.BLOCK_OPEN_START", "default never"],
+ ["TokenType.BLOCK_OPEN_END"],
+ ["TokenType.BLOCK_CLOSE"],
+ ["TokenType.EOF"]
+ ],
+ "options": null
+ }
+ ]
+ },
+ {
+ "name": "should parse @default never(expr);",
+ "path": "HtmlLexer/blocks/should parse @default never(expr);",
+ "assertions": [
+ {
+ "type": "HtmlLexerTest",
+ "input": "@default never(expr);",
+ "test_type": "HumanizeParts",
+ "expected": [
+ ["TokenType.BLOCK_OPEN_START", "default never"],
+ ["TokenType.BLOCK_PARAMETER", "expr"],
+ ["TokenType.BLOCK_OPEN_END"],
+ ["TokenType.BLOCK_CLOSE"],
+ ["TokenType.EOF"]
+ ],
+ "options": null
+ }
+ ]
+ },
+ {
+ "name": "should parse @default never ;",
+ "path": "HtmlLexer/blocks/should parse @default never ;",
+ "assertions": [
+ {
+ "type": "HtmlLexerTest",
+ "input": "@default never ;",
+ "test_type": "HumanizeParts",
+ "expected": [
+ ["TokenType.BLOCK_OPEN_START", "default never"],
+ ["TokenType.BLOCK_OPEN_END"],
+ ["TokenType.BLOCK_CLOSE"],
+ ["TokenType.EOF"]
+ ],
+ "options": null
+ }
+ ]
+ },
{
"name": "should parse a block with parameters",
"path": "HtmlLexer/blocks/should parse a block with parameters",
diff --git a/crates/angular_conformance/fixtures/output_abstract_emitter_node_only_spec.json b/crates/angular_conformance/fixtures/output_abstract_emitter_node_only_spec.json
index 51ccdc4b7..95cc8ad34 100644
--- a/crates/angular_conformance/fixtures/output_abstract_emitter_node_only_spec.json
+++ b/crates/angular_conformance/fixtures/output_abstract_emitter_node_only_spec.json
@@ -1,9 +1,9 @@
{
"name": "abstract_emitter_node_only_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/output/abstract_emitter_node_only_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/output/abstract_emitter_node_only_spec.ts",
"test_groups": [
{
- "name": "AbstractEmitter",
+ "name": "AbstractEmitter (node only)",
"groups": [
{
"name": "EmitterVisitorContext",
@@ -11,42 +11,42 @@
"tests": [
{
"name": "should add source files to the source map",
- "path": "AbstractEmitter/EmitterVisitorContext/should add source files to the source map",
+ "path": "AbstractEmitter (node only)/EmitterVisitorContext/should add source files to the source map",
"assertions": []
},
{
"name": "should generate a valid mapping",
- "path": "AbstractEmitter/EmitterVisitorContext/should generate a valid mapping",
+ "path": "AbstractEmitter (node only)/EmitterVisitorContext/should generate a valid mapping",
"assertions": []
},
{
"name": "should be able to shift the content",
- "path": "AbstractEmitter/EmitterVisitorContext/should be able to shift the content",
+ "path": "AbstractEmitter (node only)/EmitterVisitorContext/should be able to shift the content",
"assertions": []
},
{
"name": "should use the default source file for the first character",
- "path": "AbstractEmitter/EmitterVisitorContext/should use the default source file for the first character",
+ "path": "AbstractEmitter (node only)/EmitterVisitorContext/should use the default source file for the first character",
"assertions": []
},
{
"name": "should use an explicit mapping for the first character",
- "path": "AbstractEmitter/EmitterVisitorContext/should use an explicit mapping for the first character",
+ "path": "AbstractEmitter (node only)/EmitterVisitorContext/should use an explicit mapping for the first character",
"assertions": []
},
{
"name": "should map leading segment without span",
- "path": "AbstractEmitter/EmitterVisitorContext/should map leading segment without span",
+ "path": "AbstractEmitter (node only)/EmitterVisitorContext/should map leading segment without span",
"assertions": []
},
{
"name": "should handle indent",
- "path": "AbstractEmitter/EmitterVisitorContext/should handle indent",
+ "path": "AbstractEmitter (node only)/EmitterVisitorContext/should handle indent",
"assertions": []
},
{
"name": "should coalesce identical span",
- "path": "AbstractEmitter/EmitterVisitorContext/should coalesce identical span",
+ "path": "AbstractEmitter (node only)/EmitterVisitorContext/should coalesce identical span",
"assertions": []
}
]
diff --git a/crates/angular_conformance/fixtures/output_abstract_emitter_spec.json b/crates/angular_conformance/fixtures/output_abstract_emitter_spec.json
index 8e1a4152c..469188113 100644
--- a/crates/angular_conformance/fixtures/output_abstract_emitter_spec.json
+++ b/crates/angular_conformance/fixtures/output_abstract_emitter_spec.json
@@ -1,6 +1,6 @@
{
"name": "abstract_emitter_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/output/abstract_emitter_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/output/abstract_emitter_spec.ts",
"test_groups": [
{
"name": "AbstractEmitter",
@@ -29,16 +29,6 @@
"path": "AbstractEmitter/escapeIdentifier/should escape carriage returns",
"assertions": []
},
- {
- "name": "should escape $",
- "path": "AbstractEmitter/escapeIdentifier/should escape $",
- "assertions": []
- },
- {
- "name": "should not escape $",
- "path": "AbstractEmitter/escapeIdentifier/should not escape $",
- "assertions": []
- },
{
"name": "should add quotes for non-identifiers",
"path": "AbstractEmitter/escapeIdentifier/should add quotes for non-identifiers",
diff --git a/crates/angular_conformance/fixtures/output_output_jit_spec.json b/crates/angular_conformance/fixtures/output_output_jit_spec.json
index 3fe4a45b2..bd1d74fb0 100644
--- a/crates/angular_conformance/fixtures/output_output_jit_spec.json
+++ b/crates/angular_conformance/fixtures/output_output_jit_spec.json
@@ -1,6 +1,6 @@
{
"name": "output_jit_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/output/output_jit_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/output/output_jit_spec.ts",
"test_groups": [
{
"name": "Output JIT",
diff --git a/crates/angular_conformance/fixtures/output_source_map_spec.json b/crates/angular_conformance/fixtures/output_source_map_spec.json
index 78fe394f9..b3764e93a 100644
--- a/crates/angular_conformance/fixtures/output_source_map_spec.json
+++ b/crates/angular_conformance/fixtures/output_source_map_spec.json
@@ -1,6 +1,6 @@
{
"name": "source_map_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/output/source_map_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/output/source_map_spec.ts",
"test_groups": [
{
"name": "source map generation",
diff --git a/crates/angular_conformance/fixtures/render3_r3_ast_absolute_span_spec.json b/crates/angular_conformance/fixtures/render3_r3_ast_absolute_span_spec.json
index bb0dcdb0a..e55dbaee9 100644
--- a/crates/angular_conformance/fixtures/render3_r3_ast_absolute_span_spec.json
+++ b/crates/angular_conformance/fixtures/render3_r3_ast_absolute_span_spec.json
@@ -1,6 +1,6 @@
{
"name": "r3_ast_absolute_span_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/render3/r3_ast_absolute_span_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/render3/r3_ast_absolute_span_spec.ts",
"test_groups": [
{
"name": "expression AST absolute source spans",
@@ -837,8 +837,8 @@
"assertions": []
},
{
- "name": "is correct for variables and placeholders",
- "path": "expression AST absolute source spans/ICU expressions/is correct for variables and placeholders",
+ "name": "is correct for variables and placeholders in nested ICUs",
+ "path": "expression AST absolute source spans/ICU expressions/is correct for variables and placeholders in nested ICUs",
"assertions": []
}
]
diff --git a/crates/angular_conformance/fixtures/render3_r3_ast_spans_spec.json b/crates/angular_conformance/fixtures/render3_r3_ast_spans_spec.json
index 1793f7c79..1a84935d1 100644
--- a/crates/angular_conformance/fixtures/render3_r3_ast_spans_spec.json
+++ b/crates/angular_conformance/fixtures/render3_r3_ast_spans_spec.json
@@ -1,6 +1,6 @@
{
"name": "r3_ast_spans_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/render3/r3_ast_spans_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/render3/r3_ast_spans_spec.ts",
"test_groups": [
{
"name": "R3 AST source spans",
@@ -164,7 +164,7 @@
"",
"
"
],
- ["BoundAttribute", "data-prop=\"{{v}}\"", "prop", "{{v}}"]
+ ["BoundAttribute", "data-prop=\"{{v}}\"", "data-prop", "{{v}}"]
],
"ignore_error": false
}
@@ -332,8 +332,8 @@
]
},
{
- "name": "is correct for reference via data-ref-...",
- "path": "R3 AST source spans/templates/is correct for reference via data-ref-...",
+ "name": "is correct for data-ref-... attribute",
+ "path": "R3 AST source spans/templates/is correct for data-ref-... attribute",
"assertions": [
{
"type": "ExpectFromHtml",
@@ -345,7 +345,7 @@
"",
""
],
- ["Reference", "data-ref-a", "a", ""]
+ ["TextAttribute", "data-ref-a", "data-ref-a", ""]
],
"ignore_error": false
}
@@ -372,8 +372,8 @@
]
},
{
- "name": "is correct for variables via data-let-...",
- "path": "R3 AST source spans/templates/is correct for variables via data-let-...",
+ "name": "is correct for data-let-... attribute",
+ "path": "R3 AST source spans/templates/is correct for data-let-... attribute",
"assertions": [
{
"type": "ExpectFromHtml",
@@ -385,7 +385,7 @@
"",
""
],
- ["Variable", "data-let-a=\"b\"", "a", "b"]
+ ["TextAttribute", "data-let-a=\"b\"", "data-let-a", "b"]
],
"ignore_error": false
}
@@ -605,8 +605,8 @@
]
},
{
- "name": "is correct for bound events via data-on-",
- "path": "R3 AST source spans/events/is correct for bound events via data-on-",
+ "name": "is correct for text attribute via data-on-",
+ "path": "R3 AST source spans/events/is correct for text attribute via data-on-",
"assertions": [
{
"type": "ExpectFromHtml",
@@ -618,7 +618,7 @@
"",
"
"
],
- ["BoundEvent", "data-on-event=\"v\"", "event", "v"]
+ ["TextAttribute", "data-on-event=\"v\"", "data-on-event", "v"]
],
"ignore_error": false
}
@@ -662,8 +662,8 @@
]
},
{
- "name": "is correct for bound events and properties via data-bindon-",
- "path": "R3 AST source spans/events/is correct for bound events and properties via data-bindon-",
+ "name": "is correct for TextAttribute and properties via data-bindon-",
+ "path": "R3 AST source spans/events/is correct for TextAttribute and properties via data-bindon-",
"assertions": [
{
"type": "ExpectFromHtml",
@@ -675,8 +675,7 @@
"",
"
"
],
- ["BoundAttribute", "data-bindon-prop=\"v\"", "prop", "v"],
- ["BoundEvent", "data-bindon-prop=\"v\"", "prop", "v"]
+ ["TextAttribute", "data-bindon-prop=\"v\"", "data-bindon-prop", "v"]
],
"ignore_error": false
}
@@ -752,21 +751,6 @@
"ignore_error": false
}
]
- },
- {
- "name": "is correct for references via data-ref-",
- "path": "R3 AST source spans/references/is correct for references via data-ref-",
- "assertions": [
- {
- "type": "ExpectFromHtml",
- "input": "",
- "expected": [
- ["Element", "", "", "
"],
- ["Reference", "ref-a", "a", ""]
- ],
- "ignore_error": false
- }
- ]
}
]
},
@@ -949,6 +933,29 @@
"ignore_error": false
}
]
+ },
+ {
+ "name": "is correct for switch blocks with exhaustive checking",
+ "path": "R3 AST source spans/switch blocks/is correct for switch blocks with exhaustive checking",
+ "assertions": [
+ {
+ "type": "ExpectFromHtml",
+ "input": "@switch (cond.kind) {@case (x()) {X case}@default never;}",
+ "expected": [
+ [
+ "SwitchBlock",
+ "@switch (cond.kind) {@case (x()) {X case}@default never;}",
+ "@switch (cond.kind) {",
+ "}"
+ ],
+ ["SwitchBlockCaseGroup", "@case (x()) {X case}", "@case (x()) {"],
+ ["SwitchBlockCase", "@case (x()) {X case}", "@case (x()) {"],
+ ["Text", "X case"],
+ ["SwitchExhaustiveCheck", "@default never;", "@default never;"]
+ ],
+ "ignore_error": false
+ }
+ ]
}
]
},
@@ -1041,7 +1048,7 @@
{
"type": "ExpectFromHtml",
"input": "@let foo = 123;",
- "expected": [["LetDeclaration", "@let foo = 123", "foo", "123"]],
+ "expected": [["LetDeclaration", "@let foo = 123;", "foo", "123"]],
"ignore_error": false
}
]
diff --git a/crates/angular_conformance/fixtures/render3_r3_ast_visitor_spec.json b/crates/angular_conformance/fixtures/render3_r3_ast_visitor_spec.json
new file mode 100644
index 000000000..cea650a33
--- /dev/null
+++ b/crates/angular_conformance/fixtures/render3_r3_ast_visitor_spec.json
@@ -0,0 +1,17 @@
+{
+ "name": "r3_ast_visitor_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/render3/r3_ast_visitor_spec.ts",
+ "test_groups": [
+ {
+ "name": "RecursiveVisitor",
+ "groups": [],
+ "tests": [
+ {
+ "name": "should not mutate IfBlockBranch children when visiting",
+ "path": "RecursiveVisitor/should not mutate IfBlockBranch children when visiting",
+ "assertions": []
+ }
+ ]
+ }
+ ]
+}
diff --git a/crates/angular_conformance/fixtures/render3_r3_template_transform_spec.json b/crates/angular_conformance/fixtures/render3_r3_template_transform_spec.json
index 14f06f3e8..c1794704f 100644
--- a/crates/angular_conformance/fixtures/render3_r3_template_transform_spec.json
+++ b/crates/angular_conformance/fixtures/render3_r3_template_transform_spec.json
@@ -1,6 +1,6 @@
{
"name": "r3_template_transform_spec.ts",
- "file_path": "/Users/brooklyn/workspace/github/oxc/crates/oxc_angular_compiler/angular/packages/compiler/test/render3/r3_template_transform_spec.ts",
+ "file_path": "crates/oxc_angular_compiler/angular/packages/compiler/test/render3/r3_template_transform_spec.ts",
"test_groups": [
{
"name": "R3 template transform",
@@ -943,12 +943,12 @@
]
},
{
- "name": "Ignored elements",
+ "name": "