Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        public void TestUIntPool()
        {
            var abc = new AbcFile();

            for (uint i = 0; i < 10; ++i)
            {
                var c1 = abc.DefineUInt(i);
                var c2 = abc.DefineUInt(i);
                Assert.IsTrue(ReferenceEquals(c1, c2));

                c1 = abc.ImportConst(c1);
                c2 = abc.ImportConst(c2);
                Assert.IsTrue(ReferenceEquals(c1, c2));
            }
        }
Beispiel #3
0
        private static void TestBuiltinType(AbcFile abc, AvmTypeCode type)
        {
            var name = abc.BuiltinTypes[type];
            var mn   = abc.ImportConst(name);

            Assert.IsTrue(ReferenceEquals(name, mn));
        }
Beispiel #4
0
        public void TestQNames()
        {
            var abc = new AbcFile();

            for (int i = 0; i < 10; ++i)
            {
                string name  = "name" + i;
                var    c1    = abc.DefineName(QName.Global(name));
                string name1 = "name" + i;
                var    c2    = abc.DefineName(QName.Global(name1));
                Assert.IsTrue(ReferenceEquals(c1, c2));

                c1 = abc.ImportConst(c1);
                c2 = abc.ImportConst(c2);
                Assert.IsTrue(ReferenceEquals(c1, c2));
            }
        }
Beispiel #5
0
        public void TestNamespaces()
        {
            var abc = new AbcFile();

            Assert.IsTrue(ReferenceEquals(abc.KnownNamespaces.GlobalPackage, abc.DefineNamespace(AbcConstKind.PackageNamespace, "")));

            for (int i = 0; i < 10; ++i)
            {
                var c1 = abc.DefinePublicNamespace("name" + i);
                var c2 = abc.DefinePublicNamespace("name" + i);
                Assert.IsTrue(ReferenceEquals(c1, c2));

                c1 = abc.ImportConst(c1);
                c2 = abc.ImportConst(c2);
                Assert.IsTrue(ReferenceEquals(c1, c2));
            }
        }
Beispiel #6
0
        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");
        }
Beispiel #7
0
        public void ImportQName1()
        {
            var abc1 = new AbcFile();
            var c1 = abc1.DefineName(QName.Package("ns", "name"));

            var abc2 = new AbcFile();
            var c2 = abc2.ImportConst(c1);

            Assert.AreEqual(c1.Index, c2.Index, "#1");
            Assert.AreEqual(c1.Namespace.Index, c2.Namespace.Index, "#2");
            Assert.AreEqual(c1.Namespace.NameString, c2.Namespace.NameString, "#2");
        }
Beispiel #8
0
 public void ImportOperands(AbcFile abc)
 {
     if (HasOperands)
     {
         foreach (var op in _operands)
         {
             var c = op.Value as IAbcConst;
             if (c != null)
             {
                 c        = abc.ImportConst(c);
                 op.Value = c;
             }
         }
     }
 }
Beispiel #9
0
        private AbcMultiname GetMethodName(IMethod method)
        {
            var name = method.CallName();

            return(name != null?_abc.ImportConst(name) : null);
        }