Browse Source

strip whitespaces from @:js metadata in optimization test macro

Simon Krajewski 11 years ago
parent
commit
413c58700e
2 changed files with 35 additions and 6 deletions
  1. 5 1
      tests/optimization/src/Macro.hx
  2. 30 5
      tests/optimization/src/Test.hx

+ 5 - 1
tests/optimization/src/Macro.hx

@@ -54,11 +54,15 @@ class Macro {
 		}
 	}
 	
+	static function stripWhitespaces(s:String) {
+		return ~/[\r\n\t]/g.replace(s, "");
+	}
+	
 	static function extractJs(meta:Metadata) {
 		for (m in meta) {
 			if (m.name == ":js") {
 				switch(m.params[0]) {
-					case macro $v{(s:String)}: return s;
+					case macro $v{(s:String)}: return stripWhitespaces(s);
 					case e: Context.error("String expected", e.pos);
 				}
 			}

+ 30 - 5
tests/optimization/src/Test.hx

@@ -9,7 +9,7 @@ class InlineCtor {
 }
 
 class Test {
-	@:js("3;")
+	@:js('3;')
 	static function testNoOpRemoval() {
 		1;
 		2;
@@ -17,13 +17,23 @@ class Test {
 		3;
 	}
 	
-	@:js("var a = 3;var b = 27;")
+	@:js('
+		var a = 3;
+		var b = 27;
+	')
 	static function testConstMath() {
 		var a = 1 + 2;
 		var b = 9 * 3;
 	}
 	
-	@:js("var c_x = 12;var c_y = \"foo\";var x = c_x;c_x = 13;x = c_x;var y = c_y;")
+	@:js('
+		var c_x = 12;
+		var c_y = "foo";
+		var x = c_x;
+		c_x = 13;
+		x = c_x;
+		var y = c_y;
+	')
 	static function testInlineCtor1() {
 		var c = new InlineCtor(12, "foo");
 		var x = c.x;
@@ -32,7 +42,14 @@ class Test {
 		var y = c.y;
 	}
 	
-	@:js("var a = 0;a = 1;a = 2;var c_x = 12;var c_y = \"foo\";a = c_x;")
+	@:js('
+		var a = 0;
+		a = 1;
+		a = 2;
+		var c_x = 12;
+		var c_y = "foo";
+		a = c_x;
+	')
 	static function testInlineCtor2() {
 		var a = 0;
 		var c = {
@@ -43,7 +60,15 @@ class Test {
 		a = c.x;
 	}
 	
-	@:js("var a = 0;var c_x = 1;var c_y = \"c\";a = 1;var b_x = 2;var b_y = \"b\";b_x = a;")
+	@:js('
+		var a = 0;
+		var c_x = 1;
+		var c_y = "c";
+		a = 1;
+		var b_x = 2;
+		var b_y = "b";
+		b_x = a;
+	')
 	static function testInlineCtor3() {
 		var a = 0;
 		var b = {