OSDN Git Service

Remove the listener method from the object
authordhrname <dhrname@users.sourceforge.jp>
Wed, 19 Oct 2016 13:19:35 +0000 (22:19 +0900)
committerdhrname <dhrname@users.sourceforge.jp>
Wed, 19 Oct 2016 13:19:35 +0000 (22:19 +0900)
org/w3c/dom/smil.js
tool/Spec/spec/SvgDomSpec.js

index b85c60f..92197e1 100644 (file)
@@ -391,7 +391,7 @@ base("$frame").mix ( {
       this.begin = Math.floor( this.begin * this.fpms);\r
       if (str === "indefinite") {\r
         /*begin属性の値がindefiniteの場合は、何もしない。\r
-         * 開始時刻はlistenerメソッドの呼び出しか、beginElementメソッドに依存*/\r
+         * 開始時刻はbeginElementメソッドに依存*/\r
       } else if (event) {\r
         ele = event.id ? this.eventTarget.ownerDocument.getElementById(event.id)\r
                         : this.eventTarget;\r
@@ -457,18 +457,6 @@ base("$frame").mix ( {
       return this;\r
     },\r
     \r
-    /*イベントのリスナーとして、parseメソッドで使う*/\r
-    listener: function(evt) {\r
-      this.begin = this.eventOffset + this.$frame.currentFrame;\r
-      var s = this.$activate;\r
-      s.begin = this.begin;\r
-      this.activeTime = s.call() || Number.MAX_VALUE;\r
-      this.simpleDuration = s.simpleDur;\r
-      s = void 0;\r
-      this.$frame.addLine(this);\r
-      this.isResolved = true;\r
-    }\r
-    \r
   /*$activate オブジェクト\r
    * 活動継続時間などを計算するための計算実体\r
    * $begin オブジェクトからの継承*/\r
@@ -584,23 +572,7 @@ base("$frame").mix ( {
                              : "indefinite";\r
     }\r
   } ).mix( {\r
-    $list: $frame.$begin.$list.up(),\r
-    \r
-    /*イベントリスナー用の関数*/\r
-    listener: function(evt) {\r
-      if (this.begin <= 0) {\r
-        /*強制的に終了させる*/\r
-        this.removeLine(this.$begin);\r
-      }\r
-      this.begin = this.eventOffset + this.$frame.currentFrame;\r
-      var s = this.$begin.$activate;\r
-      s.end = this.begin;\r
-      /*未解決だったendの値が、イベントの発生により、解決して再定義されたとき、\r
-       * $activateオブジェクトを使って活動継続時間を再計算する*/\r
-      this.$begin.activeTime = s.call();\r
-      this.isResolved = true;\r
-      s = void 0;\r
-    }\r
+    $list: $frame.$begin.$list.up()\r
   } );\r
 } );\r
 /*$from オブジェクト\r
@@ -1128,10 +1100,7 @@ base("$calcMode").up("$attribute").mix( {
     function eleMethod (obj, eventName) {\r
       return (obj.string !== "indefinite") ? function(){}\r
                         : function() {\r
-                            obj.listener( {\r
-                              /*アニメーションの開始をこのメソッドが呼ばれた時点とする*/\r
-                              timeStamp: Date.now()\r
-                            } );\r
+                            base("$frame").addLine(obj.$list);\r
                             var evt = this.ownerDocument.createEvent("MouseEvents");\r
                             evt.initMouseEvent(eventName + "Event" ,true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, this);\r
                             this.dispatchEvent(evt);\r
@@ -1140,15 +1109,6 @@ base("$calcMode").up("$attribute").mix( {
     ele.beginElement = eleMethod(frame, "begin");\r
     /*endElementメソッドを追加*/\r
     ele.endElement = eleMethod(frame.$activate.end, "end");\r
-    if (frame.isResolved) {\r
-      /*開始時間が初期化されてしまうのを防ぐ*/\r
-      var cacheBegin = frame.begin;\r
-      frame.listener( {\r
-        /*アニメーションの開始をこのメソッドが呼ばれた時点とする*/\r
-        timeStamp: Date.now()\r
-      } );\r
-      frame.begin = cacheBegin;\r
-    }\r
     /*setFrameメソッドを使ったときの、再帰スタックの使いすぎを防ぐため*/\r
     frame.timelines = [];\r
     begin = ele = void 0;\r
index 1a9afd2..12db12f 100644 (file)
@@ -483,7 +483,6 @@ describe("SMIL Animation Spec", function() {
       expect(begin.string).toBe("");\r
       expect(begin.isResolved).toBeFalsy();\r
       expect(begin.eventTarget).toBe(document.documentElement);\r
-      expect(typeof begin.listener).toBe("function");\r
       expect(begin.eventOffset).toBe(0);\r
       expect(begin.repeat).toBe(0);\r
       expect(begin.accessKey).toBe("");\r
@@ -801,102 +800,6 @@ describe("SMIL Animation Spec", function() {
         expect(begin.isResolved).toBeFalsy();\r
       } );\r
     } );\r
-    \r
-    describe("A listener method in $begin object", function() {\r
-      var obj = begin.up();\r
-       beforeEach( function() {\r
-        begin.string = "";\r
-        /*配列は初期化しておく*/\r
-        begin.timelines.length = 0;\r
-        obj.$activate = begin.$activate.up();\r
-        obj.startTime = Date.now();\r
-        obj.setFrame(0);\r
-      } );\r
-      /*境界条件を調べておく (limit value analysis)*/\r
-      it("should be this for the value  (limit value analysis)", function() {\r
-        obj.isResolved = true;\r
-        obj.listener();\r
-        expect(obj.begin).toBe(0);\r
-        \r
-        obj.listener( {\r
-            timeStamp: Date.now()\r
-        } );\r
-        expect(obj.begin).toBe(0);\r
-        expect(obj.activeTime).toBeGreaterThan(0);\r
-        expect(obj.timelines.length).toBe(1);\r
-\r
-        obj.isResolved = false;\r
-        obj.listener( {\r
-            timeStamp: Date.now()\r
-        } );\r
-        expect(obj.begin).toBe(0);\r
-        expect(obj.activeTime).toBeGreaterThan(0);\r
-        expect(obj.timelines.length).toBe(1);\r
-        /*配列を初期化*/\r
-        obj.timelines.length = 0;\r
-\r
-        obj.up().mix( {\r
-                begin: 1,\r
-                eventOffset: 1,\r
-                $activate: begin.$activate.up().mix( {\r
-                    dur: "12"\r
-                  } )\r
-              })\r
-              .listener( {\r
-                timeStamp: Date.now()\r
-              } );\r
-        expect(obj.$1.begin).toBe(1);\r
-        expect(obj.$1.activeTime).toBe(Math.floor(12000*obj.fpms));\r
-        expect(obj.$1.$activate.begin).toBe(obj.$1.begin);\r
-        expect(obj.timelines[0]).toBe(obj.$1);\r
-      } );\r
-      /*同値分割をして、有効同値クラスを調べておく (Equivalence partitioning, the following is the valid partion)*/\r
-      it("should be this for the value (the valid partion)", function() {\r
-        obj.up().mix( {\r
-                begin: 1,\r
-                eventOffset: 1,\r
-                $activate: begin.$activate.up().mix( {\r
-                    end: begin.$activate.end.up().mix( {\r
-                       string: "1s"\r
-                      } )\r
-                  } )\r
-              })\r
-              .listener( {\r
-                timeStamp: Date.now()\r
-              } );\r
-        expect(obj.$1.begin).toBe(1);\r
-        expect(obj.$1.activeTime).toBe(Math.floor(1000*obj.fpms) - 1);\r
-        expect(obj.$1.$activate.begin).toBe(obj.$1.begin);\r
-        expect(obj.timelines[0]).toBe(obj.$1);\r
-\r
-        obj.up().mix( {\r
-                begin: 1,\r
-                eventOffset: 1,\r
-                $activate: begin.$activate.up().mix( {\r
-                    end: begin.$activate.end.up().mix( {\r
-                       string: "1s"\r
-                      } )\r
-                  } )\r
-              })\r
-              .listener( {\r
-                timeStamp: Date.now()\r
-              } );\r
-        expect(obj.$1.begin).toBe(1);\r
-        expect(obj.$1.activeTime).toBe(Math.floor(1000*obj.fpms) - 1);\r
-        expect(obj.$1.$activate.begin).toBe(obj.$1.begin);\r
-        expect(obj.timelines[1]).toBe(obj.$1);\r
-        obj.$1.listener( {\r
-          timeStamp: (Date.now() + 500)\r
-        } );\r
-        expect(obj.$1.begin).toBe(1);\r
-        expect(obj.$1.activeTime).toBe(Math.floor(1000*obj.fpms) - 1);\r
-        expect(obj.$1.$activate.begin).toBe(obj.$1.begin);\r
-        expect(obj.timelines[1]).toBe(obj.$1);\r
-      } );\r
-      /*無効同値クラスを調べておく (Equivalence partitioning, the following is the invalid partion)*/\r
-      it("should be this for the value (the invalid partion)", function() {\r
-      } );\r
-    } );\r
   } );\r
   describe("A $end object", function() {\r
     var end = base("$frame").$begin.$end.up();\r
@@ -930,70 +833,6 @@ describe("SMIL Animation Spec", function() {
       end.string = null;\r
       expect(end.up().call()).toBeNull();\r
     } );\r
-\r
-    describe("A listener method in $end object", function() {\r
-      var obj,\r
-          begin = base("$frame").$begin;\r
-       beforeEach( function() {\r
-        end.string = "";\r
-        /*配列は初期化しておく*/\r
-        end.timelines.length = 0;\r
-        obj = end.up();\r
-        obj.$begin = begin.up().mix( {\r
-          begin: 12,\r
-          activeTime: 120\r
-        } );\r
-        obj.$begin.$activate = begin.$activate.up();\r
-        obj.addLine(obj.$begin);\r
-      } );\r
-      /*境界条件を調べておく (limit value analysis)*/\r
-      it("should be this for the value  (limit value analysis)", function() {\r
-        expect(obj.timelines[0]).toBe(obj.$begin);\r
-        expect(obj.timelines[0]).not.toBe(obj);\r
-        obj.listener();\r
-        expect(obj.timelines[0]).not.toBe(obj.$begin);\r
-\r
-        obj.addLine(obj.$begin.mix( {\r
-          begin: 12,\r
-          activeTime: 120\r
-        } ) );\r
-        obj.listener({\r
-          timeStamp: (Date.now() + 12)\r
-        } );\r
-        expect(obj.timelines[0]).not.toBe(obj.$begin);\r
-      } );\r
-      /*同値分割をして、有効同値クラスを調べておく (Equivalence partitioning, the following is the valid partion)*/\r
-      it("should be this for the value (the valid partion)", function() {\r
-        obj.$begin.$activate.begin = 0;\r
-        obj.mix( {\r
-          string: "event"\r
-        } ).parse();\r
-        obj.listener({\r
-          timeStamp: (Date.now() + 120)\r
-        } );\r
-        expect(obj.timelines[0]).not.toBe(obj.$begin);\r
-        expect(obj.begin).toBe(0);\r
-        expect(obj.$begin.activeTime).toBe(0);\r
-\r
-        obj.addLine(obj.$begin.mix( {\r
-          begin: 12,\r
-          activeTime: 120\r
-        } ) );\r
-        obj.$begin.$activate.begin = 0;\r
-        obj.mix( {\r
-          string: "event+1000ms"\r
-        } ).parse();\r
-        obj.listener({\r
-          timeStamp: (Date.now() + 12)\r
-        } );\r
-        expect(obj.timelines[0]).toBe(obj.$begin);\r
-        expect(obj.begin).toBe(Math.ceil(1000*obj.fpms));\r
-        expect(obj.$begin.activeTime).toBe(Math.ceil(1000*obj.fpms));\r
-      } );\r
-      /*無効同値クラスを調べておく (Equivalence partitioning, the following is the invalid partion)*/\r
-      it("should be this for the value (the invalid partion)", function() {\r
-      } );\r
-    } )\r
   } );\r
   describe("A $activate object", function() {\r
     var act = base("$frame").$begin.$activate.up();\r