throw error if nesting platform tags + test

This commit is contained in:
Vladimir Enchev
2015-06-17 16:07:42 +03:00
parent 1c1166d2b3
commit 7c5d1011cb
2 changed files with 20 additions and 4 deletions

View File

@@ -49,15 +49,16 @@ function parseInternal(value: string, exports: any): componentBuilder.ComponentM
if (args.eventType === xml.ParserEventType.StartElement) {
if (isPlatform(args.elementName)) {
if (currentPlatformContext) {
throw new Error("Already in '" + currentPlatformContext + "' platform context and cannot switch to '" + args.elementName + "' platform! Platform tags cannot be nested.");
}
currentPlatformContext = args.elementName;
return;
}
}
if (currentPlatformContext && !isCurentPlatform(currentPlatformContext)) {
return;
}
if (args.eventType === xml.ParserEventType.EndElement) {
if (isPlatform(args.elementName)) {
currentPlatformContext = undefined;
@@ -65,6 +66,10 @@ function parseInternal(value: string, exports: any): componentBuilder.ComponentM
}
}
if (currentPlatformContext && !isCurentPlatform(currentPlatformContext)) {
return;
}
if (templateBuilder) {
if (args.eventType === xml.ParserEventType.StartElement) {
templateBuilder.addStartElement(args.prefix, args.namespace, args.elementName, args.attributes);