public void DefineString_Array() { var abc = new AbcFile(); var arr = new[] { "", "aaa", "aa", "aaa", "aa" }; for (int i = 0; i < arr.Length; ++i) { var s = arr[i]; var c1 = abc.DefineString(s); var c2 = abc.DefineString(s); Assert.AreSame(c1, c2, "#A" + i); } }
public void TestStringPool() { var abc = new AbcFile(); for (int i = 0; i < 10; ++i) { var c1 = abc.DefineString("name" + i); var c2 = abc.DefineString("name" + i); Assert.IsTrue(ReferenceEquals(c1, c2)); c1 = abc.ImportConst(c1); c2 = abc.ImportConst(c2); Assert.IsTrue(ReferenceEquals(c1, c2)); } }
public void DefineString_Empty() { var abc = new AbcFile(); var c1 = abc.DefineString(""); Assert.AreEqual(1, c1.Index, "#1"); }
public void ImportString1() { var abc1 = new AbcFile(); var c1 = abc1.DefineString("aaa"); var abc2 = new AbcFile(); var c2 = abc2.ImportConst(c1); Assert.AreEqual(c1.Index, c2.Index, "#1"); Assert.AreEqual(c1.Value, c2.Value, "#2"); }
public AbcMethod GetProperty(AbcMultiname prop) { if (prop == null) { throw new ArgumentNullException("prop"); } var m = _abc.DefineMethod( Sig.@global(AvmTypeCode.Object), code => { code.Getlex(prop); code.ReturnValue(); }); #if DEBUG m.Name = _abc.DefineString("get_" + prop.NameString); #endif return(m); }