Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1283091 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/supportClasses/ToggleButtonBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ToggleButtonBase.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package spark.components.supportClasses
 {


Node type

Node type

error: pathspec 'src/ageofai/map/constant/CMapNodeType.as' did not match any file(s) known to git

--- src/ageofai/map/constant/CMapNodeType.as
+++ src/ageofai/map/constant/CMapNodeType.as
@@ -0,0 +1,14 @@
+package ageofai.map.constant
+{
+	/**
+     * ...
+     * @author
+     */
+    public class CMapNodeType
+    {
+        public static const GRASS:int = 0;
+        public static const DARK_GRASS:int = 1;
+        public static const WATER:int = 2;
+    }
+
+}


Bug 707133: regression test (r=fklockii).

error: pathspec 'test/acceptance/regress/bug_707133.as' did not match any file(s) known to git

--- test/acceptance/regress/bug_707133.as
+++ test/acceptance/regress/bug_707133.as
@@ -0,0 +1,102 @@
+/* ***** BEGIN LICENSE BLOCK *****
+* Version: MPL 1.1/GPL 2.0/LGPL 2.1
+*
+* The contents of this file are subject to the Mozilla Public License Version
+* 1.1 (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+* http://www.mozilla.org/MPL/
+*
+* Software distributed under the License is distributed on an "AS IS" basis,
+* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+* for the specific language governing rights and limitations under the
+* License.
+*
+* The Original Code is [Open Source Virtual Machine.].
+*
+* The Initial Developer of the Original Code is
+* Adobe System Incorporated.
+* Portions created by the Initial Developer are Copyright (C) 2011
+* the Initial Developer. All Rights Reserved.
+*
+* Contributor(s):
+*   Adobe AS3 Team
+*
+* Alternatively, the contents of this file may be used under the terms of
+* either the GNU General Public License Version 2 or later (the "GPL"), or
+* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+* in which case the provisions of the GPL or the LGPL are applicable instead
+* of those above. If you wish to allow use of your version of this file only
+* under the terms of either the GPL or the LGPL, and not to allow others to
+* use your version of this file under the terms of the MPL, indicate your
+* decision by deleting the provisions above and replace them with the notice
+* and other provisions required by the GPL or the LGPL. If you do not delete
+* the provisions above, a recipient may use your version of this file under
+* the terms of any one of the MPL, the GPL or the LGPL.
+*
+* ***** END LICENSE BLOCK ***** */
+
+var SECTION = "regress_707133";
+var VERSION = "AS3";
+var TITLE   = "adjusting arrays length should not introduce phantom elements";
+var bug = "707133";
+
+startTest();
+writeHeaderToLog(SECTION + " " + TITLE);
+
+function reducedTestCase()
+{
+    var a = new Array();
+    a.length = 1; // or any semi-small K1; leaves m_denseArray at 0 elems
+    a.length = 2; // or any semi-small K2+K1; oldLength = K1, and inserts
+                  //   only K2 atomNotFound's instead of K2+K1 such entries.
+
+    var keys = [];
+    for (var keyObj:Object in a)
+        keys.push(keyObj);
+    keys.sort();
+
+    var output="";
+    for (var i=0; i < keys.length; i++)
+    {
+        var val:Object = a[keys[i]];
+        output += "<" + keys[i] + ", " + val +">; ";
+    }
+    return output;
+}
+
+function originalTestCase()
+{
+    var ar:Array = new Array();
+
+    for(var i:int = 0; i < 4; i++)
+    {
+        var key:String = "keyname_" + i;
+        var value:Object = new Object();
+        ar[key] = value;
+        ar.length++;
+    }
+
+    // normalize output by making list of keys and sorting it.
+    var keys = [];
+    for (var keyObj:Object in ar)
+        keys.push(keyObj);
+    keys.sort();
+
+    var output = "";
+    for (var i=0; i < keys.length; i++)
+    {
+        var val:Object = ar[keys[i]];
+        output += "<" + keys[i] + ", " + val +">; ";
+    }
+    return output;
+}
+
+AddTestCase("reduced test case", "", reducedTestCase());
+AddTestCase("original test case",
+            ("<keyname_0, [object Object]>; "+
+             "<keyname_1, [object Object]>; "+
+             "<keyname_2, [object Object]>; "+
+             "<keyname_3, [object Object]>; "),
+            originalTestCase());
+
+test();


fixed print margin, merged with master version, improved some code

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/rafaelcordoba/cocktail-demo.git/'


Update Home.as

Update Home.as

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/jerome-desmedt/daelysid.git/'


Added class for the recorder.

Added class for the recorder.

error: pathspec 'flash/org/windmill/WMRecorder.as' did not match any file(s) known to git

--- flash/org/windmill/WMRecorder.as
+++ flash/org/windmill/WMRecorder.as
@@ -0,0 +1,27 @@
+/*
+Copyright 2009, Matthew Eernisse (mde@fleegix.org) and Slide, Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+package org.windmill {
+  import org.windmill.Windmill;
+  import org.windmill.WMLogger;
+  import flash.display.DisplayObject;
+  import flash.display.DisplayObjectContainer;
+
+  public class WMRecorder {
+
+    public function WMRecorder():void {}
+}
+


refactor:   - renaming redirect to "go"  - adding timeout()/clear_timeouts() to api  - adding event(): shortcut to the {what-you-want-here} addEventListener


:bug: BC initial value

:bug: BC initial value


fixed xml path

fixed xml path


swfaddress

swfaddress

git-svn-id: 864080e30cc358c5edb906449bbf014f90258007@22 96db6a20-122f-0410-8d9f-89437bbe4005

error: pathspec 'src/com/asual/SWFAddress.as' did not match any file(s) known to git

--- src/com/asual/SWFAddress.as
+++ src/com/asual/SWFAddress.as
@@ -0,0 +1,137 @@
+/**
+ * SWFAddress v1.1: Deep linking for Flash - http://www.asual.com/swfaddress/
+ *
+ * SWFAddress is (c) 2006 Rostislav Hristov and is released under the MIT License:
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ */
+
+package com.asual{
+
+    import flash.external.ExternalInterface;
+    import flash.utils.clearInterval;
+    import flash.utils.setInterval;
+
+    public class SWFAddress {
+
+        private static var _value:String = '';
+        private static var _availability:Boolean = ExternalInterface.available;
+
+        public static var onChange:Function;
+
+        private static function _check():void {
+            if (SWFAddress.onChange != null) {
+                clearInterval(SWFAddress._interval);
+                if (_availability) {
+                    ExternalInterface.addCallback('getSWFAddressValue',
+                        function():String {return _value});
+                    ExternalInterface.addCallback('setSWFAddressValue',
+                        SWFAddress.setValue);
+                }
+                SWFAddress.setValue(SWFAddress.getValue());
+            }
+        }
+        private static var _interval:Number = setInterval(SWFAddress._check, 10);
+
+        public static function getTitle():String {
+            var title:String = (_availability) ?
+                ExternalInterface.call('SWFAddress.getTitle') as String : '';
+            if (title == 'undefined' || title == null) title = '';
+            return title;
+        }
+
+        public static function setTitle(title:String):void {
+            if (_availability) ExternalInterface.call('SWFAddress.setTitle', title);
+        }
+
+        public static function getStatus():String {
+            var status:String = (_availability) ?
+                ExternalInterface.call('SWFAddress.getStatus') as String : '';
+            if (status == 'undefined' || status == null) status = '';
+            return status;
+        }
+
+        public static function setStatus(status:String):void {
+            if (_availability) ExternalInterface.call('SWFAddress.setStatus', status);
+        }
+
+        public static function resetStatus():void {
+            if (_availability) ExternalInterface.call('SWFAddress.resetStatus');
+        }
+
+        public static function getPath():String {
+            var value:String = SWFAddress.getValue();
+            if (value.indexOf('?') != 1) {
+                return value.split('?')[0];
+            } else {
+                return value;
+            }
+        }
+
+        public static function getQueryString():String {
+            var value:String = SWFAddress.getValue();
+            var index:Number = value.indexOf('?');
+            if (index != -1 && index < value.length) {
+                return value.substr(index + 1);
+            }
+            return '';
+        }
+
+        public static function getParameter(param:String):String {
+            var value:String = SWFAddress.getValue();
+            var index:Number = value.indexOf('?');
+            if (index != -1) {
+                value = value.substr(index + 1);
+                var params:Array = value.split('&');
+                var p:Array;
+                var i:Number = params.length;
+                while(i--) {
+                    p = params[i].split('=');
+                    if (p[0] == param) {
+                        return p[1];
+                    }
+                }
+            }
+            return '';
+        }
+
+        public static function getParameterNames():Array {
+            var value:String = SWFAddress.getValue();
+            var index:Number = value.indexOf('?');
+            var names:Array = new Array();
+            if (index != -1) {
+                value = value.substr(index + 1);
+                if (value != '' && value.indexOf('=') != -1) {
+                    var params:Array = value.split('&');
+                    var i:Number = 0;
+                    while(i < params.length) {
+                        names.push(params[i].split('=')[0]);
+                        i++;
+                    }
+                }
+            }
+            return names;
+        }
+
+        public static function getValue():String {
+            var addr:String, id:String = null;
+            if (_availability) {
+                addr = ExternalInterface.call('SWFAddress.getValue') as String;
+                id = ExternalInterface.call('SWFAddress.getId') as String;
+            }
+            if (id == null || !_availability) {
+                addr = SWFAddress._value;
+            } else {
+                if (addr == 'undefined' || addr == null) addr = '';
+            }
+            return addr;
+        }
+
+        public static function setValue(addr:String):void {
+            if (addr == 'undefined' || addr == null) addr = '';
+            SWFAddress._value = addr;
+            if (_availability) ExternalInterface.call('SWFAddress.setValue', addr);
+            if (SWFAddress.onChange != null) SWFAddress.onChange();
+        }
+    }
+}


Add namespace "dolly_internal".

Add namespace "dolly_internal".

error: pathspec 'dolly-framework/src/main/actionscript/dolly/core/dolly_internal.as' did not match any file(s) known to git

--- dolly-framework/src/main/actionscript/dolly/core/dolly_internal.as
+++ dolly-framework/src/main/actionscript/dolly/core/dolly_internal.as
@@ -0,0 +1,5 @@
+package dolly.core {
+
+public namespace dolly_internal;
+
+}


innit commit

innit commit

error: pathspec 'main.as' did not match any file(s) known to git

--- main.as
+++ main.as
@@ -0,0 +1,22 @@
+function initApp ():Void
+{
+	if (MovieClip (root).currentFrame == 1)
+	{
+		#include "as/main/frame1.as"
+	}
+	if (MovieClip (root).currentFrame == 2)
+	{
+		#include "as/main/frame2.as"
+	}
+	if (MovieClip (root).currentFrame == 3)
+	{
+		#include "as/main/frame3.as"
+	}
+	if (MovieClip (root).currentFrame == 4)
+	{
+		#include "as/main/frame4.as"
+	}
+}
+initApp ();
+
+// Copyright Delfi Ramirez @ Segonquart Studio HQ  2007.


[utils] Adds VersionUtil to compare version strings

error: pathspec 'skein-utils/src/skein/utils/VersionUtil.as' did not match any file(s) known to git

--- skein-utils/src/skein/utils/VersionUtil.as
+++ skein-utils/src/skein/utils/VersionUtil.as
@@ -0,0 +1,48 @@
+/**
+ * Created by max.rozdobudko@gmail.com on 6/14/18.
+ */
+package skein.utils {
+public class VersionUtil {
+
+    public static function isVersionString(string: String): Boolean {
+        var pattern: RegExp = /^((\d)+(\.{0,1}(\d))*)+$/g;
+        return pattern.test(string);
+    }
+
+    public static function compare(lhs: String, rhs: String): int {
+        if (!isVersionString(lhs) || !isVersionString(rhs)) {
+            return 0;
+        }
+
+        var lhsNumbers: Array = lhs.split(".").map(function(chars: String, ...rest): int {return parseInt(chars)}).filter(function(number: Number, ...rest): Boolean { return !isNaN(number)});
+        var rhsNumbers: Array = rhs.split(".").map(function(chars: String, ...rest): int {return parseInt(chars)}).filter(function(number: Number, ...rest): Boolean { return !isNaN(number)});
+
+        for (var i: int = 0, n:int = Math.max(lhsNumbers.length, rhsNumbers.length); i < n; i++) {
+            var lhsNumber: int = lhsNumbers.length <= i ? 0 : int(lhsNumbers[i]);
+            var rhsNumber: int = rhsNumbers.length <= i ? 0 : int(rhsNumbers[i]);
+
+            if (lhsNumber < rhsNumber) {
+                return -1;
+            }
+            if (lhsNumber > rhsNumber) {
+                return +1;
+            }
+        }
+
+        return 0;
+    }
+
+    public static function isGreaterThan(version: String, versionToCompare: String): Boolean {
+        return compare(version, versionToCompare) > 0;
+    }
+
+    public static function isEqual(version: String, versionToCompare: String): Boolean {
+        return compare(version, versionToCompare) == 0;
+    }
+
+    public static function isLessThan(version: String, versionToCompare: String): Boolean {
+        return compare(version, versionToCompare) < 0;
+    }
+
+}
+}


Actually CommandEvent needs to live back here, Controller depends on it.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@4520 542714f4-19e9-0310-aa3c-eee0fc999fb1

error: pathspec 'src/as/com/threerings/util/CommandEvent.as' did not match any file(s) known to git

--- src/as/com/threerings/util/CommandEvent.as
+++ src/as/com/threerings/util/CommandEvent.as
@@ -0,0 +1,88 @@
+package com.threerings.util {
+
+import flash.errors.IllegalOperationError;
+
+import flash.events.Event;
+import flash.events.IEventDispatcher;
+
+public class CommandEvent extends Event
+{
+    /** The event type for all controller events. */
+    public static const TYPE :String = "commandEvt";
+
+    /**
+     * Use this method to dispatch CommandEvents.
+     */
+    public static function dispatch (
+            disp :IEventDispatcher, cmd :String, arg :Object = null) :void
+    {
+        // Create the event
+        var event :CommandEvent = create(cmd, arg);
+
+        // Dispatch it. A return value of true means that the event was
+        // never cancelled, so we complain.
+        if (disp == null || disp.dispatchEvent(event)) {
+            Log.getLog(CommandEvent).warning("Unhandled controller command " +
+                "[cmd=" + cmd + ", arg=" + arg + "].");
+        }
+    }
+
+    /** The command. */
+    public var command :String;
+
+    /** An optional argument. */
+    public var arg :Object;
+
+    /**
+     * Command events may not be directly constructed, use the dispatch
+     * method to do your work.
+     */
+    public function CommandEvent (command :String, arg :Object)
+    {
+        super(TYPE, true, true);
+        if (_blockConstructor) {
+            throw new IllegalOperationError();
+        }
+        this.command = command;
+        this.arg = arg;
+    }
+
+    /**
+     * Mark this command as handled, stopping its propagation up the
+     * hierarchy.
+     */
+    public function markAsHandled () :void
+    {
+        preventDefault();
+        stopImmediatePropagation();
+    }
+
+    override public function clone () :Event
+    {
+        return create(command, arg);
+    }
+
+    override public function toString () :String
+    {
+        return "CommandEvent[" + command + " (" + arg + ")]";
+    }
+
+    /**
+     * A factory method for privately creating command events.
+     */
+    protected static function create (cmd :String, arg :Object) :CommandEvent
+    {
+        var event :CommandEvent;
+        _blockConstructor = false;
+        try {
+            event = new CommandEvent(cmd, arg);
+        } finally {
+            _blockConstructor = true;
+        }
+        return event;
+    }
+
+    /** Used to prevent unauthorized construction. */
+    protected static var _blockConstructor :Boolean = true;
+}
+}


Merging OVV 1.2 AdPaused scenario

Merging OVV 1.2 AdPaused scenario

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/7thsky/openvv.git/'


rename to TestRunner

rename to TestRunner

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/jisobkim/gaforflash.git/'


Small formatting change, removing extra newlines

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/OnCircle/vpaid-wrapper.git/'


git-svn-id: http://svn.rails2u.com/as3rails2u/trunk@16 96db6a20-122f-0410-8d9f-89437bbe4005

error: pathspec 'src/com/rails2u/net/URLLoaderWithTimeout.as' did not match any file(s) known to git

--- src/com/rails2u/net/URLLoaderWithTimeout.as
+++ src/com/rails2u/net/URLLoaderWithTimeout.as
@@ -0,0 +1,53 @@
+package com.rails2u.net
+{
+    import flash.net.URLRequest;
+    import flash.net.URLLoader;
+    import flash.events.TimerEvent;
+    import flash.utils.Timer;
+    import flash.events.Event;
+    import flash.events.IOErrorEvent;
+
+    /*
+     * URLLoader with Timeout
+     * loader.addEventListener(IOErrorEvent.IO_ERROR,
+     *    function(e:*):void { trace('timeout!') });
+     * loader.loadWithTimeout(request, 30);
+     */
+    public class URLLoaderWithTimeout extends URLLoader
+    {
+        public function URLLoaderWithTimeout(request:URLRequest=null)
+        {
+            super(request);
+        }
+
+        public function loadWithTimeout(request:URLRequest, timeout:Number = 30):void
+        {
+            addEventListener(Event.COMPLETE, cancelTimeoutError, false, 1, true);
+            observeTimeout(timeout);
+            load(request);
+        }
+
+        private var observeTimer:Timer;
+        private function observeTimeout(sec:Number):void
+        {
+            observeTimer = new Timer(sec * 1000, 1);
+            observeTimer.addEventListener(
+               TimerEvent.TIMER, timeoutError, false, 1, true
+            );
+            observeTimer.start();
+        }
+
+        private function cancelTimeoutError(e:Event):void
+        {
+            if (observeTimer) {
+                observeTimer.removeEventListener(TimerEvent.TIMER, timeoutError);
+            }
+        }
+
+        private function timeoutError(e:TimerEvent):void
+        {
+            dispatchEvent(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, 'request timeout'));
+            observeTimer = null;
+        }
+    }
+}


writing InteractiveView destroy routine

writing InteractiveView destroy routine


Missing from change 3748 which was a fix for bug 544714

error: pathspec 'test/acceptance/as3/sampling/StringMaster.as' did not match any file(s) known to git

--- test/acceptance/as3/sampling/StringMaster.as
+++ test/acceptance/as3/sampling/StringMaster.as
@@ -0,0 +1,68 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is [Open Source Virtual Machine.].
+ *
+ * The Initial Developer of the Original Code is
+ * Adobe System Incorporated.
+ * Portions created by the Initial Developer are Copyright (C) 2010
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   Adobe AS3 Team
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/* testcases:
+ *   master string exposed to heap graph
+ */
+
+package {
+
+    import flash.sampler.*
+    import avmplus.*
+
+    var SECTION = "Sampling";
+    var VERSION = "AS3";
+    var TITLE   = "Master String";
+
+    startTest();
+    writeHeaderToLog("Sampling master string test");
+
+    var isdebugger=System.isDebugger();
+
+    var helloWorld = "hello, world";
+    var hello = helloWorld.substr(0, 5);
+
+    AddTestCase("assert that static string constant does not have a master string",
+        null,
+        getMasterString(helloWorld));
+
+    AddTestCase("assert that substring has a master string",
+        isdebugger ? helloWorld : null,
+        getMasterString(hello));
+
+    test();
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19060
Author:   harishs@adobe.com
Date:     2010-12-06T17:34:15.020965Z

Log Message:
-----------
QE notes: Did checkintests, performed full cyclone run. There were 19 failures in mustella report. QE Judy (Mingzhou Gao and Joann Chung Anderson) confirmed that they are known problems.
Doc notes: As part of Sort and Sortfield updates, the asdoc comments were updated to reflect globalization changes.
Bugs: Fixed sdk-28493, 28691,28494, 28345, 28320, 28387, 28314, 28145
Reviewer: Gordon Smith
Tests run: cyclone, checkintests, bugs testfiles
Is noteworthy for integration: Sort and Sortfield updated with globalization support using the new spark globalization sort classes.
Number and CurrencyValidators support national digits and unicode minus symbols.
groupingPattern property dropped for Number and Currency Validators.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/NumberValidatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ICollectionView.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/NumberValidator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/olap/OLAPCube.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/CurrencyValidator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/bundles/en_US/validators.properties</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/treeClasses/HierarchicalCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationUtils.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/olap/DefaultCubeImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/SortTestScript.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ModifiedCollectionView.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/SortTests.mxml</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1258716 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/collections/ModifiedCollectionView.as
+++ frameworks/projects/framework/src/mx/collections/ModifiedCollectionView.as
@@ -200,7 +200,7 @@
 	     *  @playerversion AIR 1.1
 	     *  @productversion Flex 3
 	     */
-		public function get sort():Sort
+		public function get sort():ISort
 		{
 			return null;
 		}
@@ -213,7 +213,7 @@
 	     *  @playerversion AIR 1.1
 	     *  @productversion Flex 3
 	     */
-		public function set sort(value:Sort):void
+		public function set sort(value:ISort):void
 		{
 		}


Base class for animations that all get updated simultaneously each frame.

git-svn-id: b675b909355d5cf946977f44a8ec5a6ceb3782e4@163 ed5b42cb-e716-0410-a449-f6a68f950b19

error: pathspec 'src/as/com/threerings/flash/Animation.as' did not match any file(s) known to git

--- src/as/com/threerings/flash/Animation.as
+++ src/as/com/threerings/flash/Animation.as
@@ -0,0 +1,101 @@
+package com.threerings.flash {
+
+import flash.display.DisplayObject;
+
+import flash.events.TimerEvent;
+
+import flash.utils.getTimer; // func import
+import flash.utils.Timer;
+
+public class Animation
+{
+    public function Animation ()
+    {
+    }
+
+    public function start () :void
+    {
+        addAnimation(this);
+    }
+
+    public function stop () :void
+    {
+        removeAnimation(this);
+//        didStop();
+    }
+
+    /**
+     * The primary working method for your animation.
+     */
+    protected function enterFrame () :void
+    {
+        // do your business here
+    }
+
+    /**
+     * Add the specified anim to the list of active anims.
+     */
+    protected static function addAnimation (anim :Animation) :void
+    {
+        // add it
+        _anims.push(anim);
+
+        // set up the timer
+        if (!_timer) {
+            _timer = new Timer(10); // 10ms: will be limited by frame rate
+            _timer.addEventListener(TimerEvent.TIMER, frameHandler);
+        }
+        _timer.start();
+    }
+
+    /**
+     * Remove the specified anim.
+     */
+    protected static function removeAnimation (anim :Animation) :void
+    {
+        var dex :int = _anims.indexOf(anim);
+        if (dex != -1) {
+            _anims.splice(dex, 1);
+
+        } else {
+            Log.getLog(Animation).warning("Removing unknown Animation: " + anim);
+        }
+
+        if (_anims.length == 0) {
+            _timer.reset();
+        }
+    }
+
+    /**
+     * Handle our timer event.
+     */
+    protected static function frameHandler (event :TimerEvent) :void
+    {
+        _now = getTimer();
+        var an :Animation;
+        for (var ii :int = _anims.length - 1; ii >= 0; ii--) {
+            an = Animation(_anims[ii]);
+            if (isNaN(an._start)) {
+                an._start = _now;
+//                an.didStart();
+            }
+            an.enterFrame();
+        }
+
+        // and instruct the flash player to update the display list (now!)
+        event.updateAfterEvent();
+    }
+
+    /** Our own personal start stamp. */
+    protected var _start :Number = NaN;
+
+    /** The current timestamp, accessable to all animations. */
+    protected static var _now :Number;
+
+    /** All the currently running animations. */
+    protected static var _anims :Array = [];
+
+    /** The timer we use to manage our animations. */
+    protected static var _timer :Timer;
+}
+}


add async md5 calculator utility class

add async md5 calculator utility class

error: pathspec 'src/com/ryanberdeen/utils/MD5Calculator.as' did not match any file(s) known to git

--- src/com/ryanberdeen/utils/MD5Calculator.as
+++ src/com/ryanberdeen/utils/MD5Calculator.as
@@ -0,0 +1,83 @@
+package com.ryanberdeen.utils {
+  import com.adobe.crypto.MD5Stream;
+
+  import flash.events.Event;
+  import flash.events.EventDispatcher;
+  import flash.events.ProgressEvent;
+  import flash.utils.ByteArray;
+  import flash.utils.Timer;
+
+  public class MD5Calculator extends EventDispatcher {
+    private var timer:Timer;
+    private var stream:MD5Stream;
+    private var buffer:ByteArray;
+    private var source:ByteArray;
+
+    private var _md5:String;
+    private var _delay:int;
+    private var _chunkSize:int;
+
+    private var dispatchProgressEvent:Boolean;
+
+    public function MD5Calculator() {
+      _delay = 1;
+      _chunkSize = 51200;
+    }
+
+    public function set delay(delay:int):void {
+      _delay = delay;
+    }
+
+    public function set chunkSize(chunkSize:int):void {
+      _chunkSize = chunkSize;
+    }
+
+    public function get md5():String {
+      return _md5;
+    }
+
+    public function calculate(source:ByteArray):void {
+      this.source = source;
+
+      dispatchProgressEvent = hasEventListener(ProgressEvent.PROGRESS);
+
+      stream = new MD5Stream();
+      buffer = new ByteArray();
+
+      source.position = 0;
+
+      timer = new Timer(_delay);;
+      timer.addEventListener('timer', iterate);
+      timer.start();
+    }
+
+    private function iterate(e:Event):void {
+      if (source.bytesAvailable == 0) {
+        timer.stop();
+        timer = null;
+        _md5 = stream.complete();
+        stream = null;
+        buffer = null;
+        source = null;
+        dispatchEvent(new Event(Event.COMPLETE));
+        return;
+      }
+
+      var length:int = Math.min(_chunkSize, source.bytesAvailable);
+      buffer.length = length;
+      source.readBytes(buffer, 0, length);
+      stream.update(buffer);
+
+      if (dispatchProgressEvent) {
+        var progressEvent:ProgressEvent = new ProgressEvent(ProgressEvent.PROGRESS);
+        progressEvent.bytesLoaded = source.position;
+        progressEvent.bytesTotal = source.length
+        dispatchEvent(progressEvent);
+      }
+    }
+
+    public function stop():void {
+      timer.stop();
+    }
+  }
+}


moving pre processor interface (fix)

moving pre processor interface (fix)


added a image plotter at a coordinate

added a image plotter at a coordinate

Change-Id: I2611821ae411c2503c3e0d44ad3ac5e5e6e5e062

error: pathspec 'WeaveUI/src/weave/visualization/plotters/ImageCoordinatesPlotter.as' did not match any file(s) known to git

--- WeaveUI/src/weave/visualization/plotters/ImageCoordinatesPlotter.as
+++ WeaveUI/src/weave/visualization/plotters/ImageCoordinatesPlotter.as
@@ -0,0 +1,139 @@
+package weave.visualization.plotters
+{
+	import flash.display.Bitmap;
+	import flash.display.BitmapData;
+	import flash.geom.Matrix;
+	import flash.geom.Point;
+	import flash.net.URLRequest;
+
+	import mx.controls.Alert;
+	import mx.rpc.events.FaultEvent;
+	import mx.rpc.events.ResultEvent;
+
+	import weave.api.WeaveAPI;
+	import weave.api.getCallbackCollection;
+	import weave.api.primitives.IBounds2D;
+	import weave.api.registerLinkableChild;
+	import weave.core.ErrorManager;
+	import weave.core.LinkableNumber;
+	import weave.core.LinkableString;
+	import weave.core.SessionManager;
+	import weave.data.AttributeColumns.RunningTotalColumn;
+	import weave.primitives.Bounds2D;
+	import weave.utils.BitmapText;
+	import weave.utils.BitmapUtils;
+
+	public class ImageCoordinatesPlotter extends AbstractPlotter
+	{
+		public function ImageCoordinatesPlotter()
+		{
+		}
+
+
+		public const horizontalAlign:LinkableString =  registerLinkableChild(this,new LinkableString(BitmapText.HORIZONTAL_ALIGN_LEFT));
+		public const verticalAlign:LinkableString = registerLinkableChild(this, new LinkableString(BitmapText.VERTICAL_ALIGN_TOP));
+
+		public const dataX:LinkableNumber = registerLinkableChild(this,new LinkableNumber());
+		public const dataY:LinkableNumber = registerLinkableChild(this,new LinkableNumber());
+
+		public const dataWidth:LinkableNumber = registerLinkableChild(this,new LinkableNumber());
+		public const dataHeight:LinkableNumber = registerLinkableChild(this,new LinkableNumber());
+
+		public const imageURL:LinkableString = registerLinkableChild(this,new LinkableString(),handleImageURLChange);
+
+		private var _tempDataBounds:IBounds2D;
+		private var _tempScreenBounds:IBounds2D;
+		private var _tempBitmapData:BitmapData;
+		private var _tempMatrix:Matrix = new Matrix();
+		override public function drawBackground(dataBounds:IBounds2D, screenBounds:IBounds2D, destination:BitmapData):void
+		{
+			_tempDataBounds = dataBounds;
+			_tempScreenBounds = screenBounds;
+
+			var tempPoint:Point = new Point(dataX.value,dataY.value);
+
+			_tempDataBounds.projectPointTo(tempPoint,_tempScreenBounds);
+
+			if(_tempBitmapData == null)
+				WeaveAPI.URLRequestUtils.getContent(new URLRequest(imageURL.value),handleImageRequest,handleImageFaultRequest,imageURL.value);
+			else
+			{
+				_tempMatrix.identity();
+
+				var xOffset:Number=0;
+				var yOffset:Number=0;
+
+
+				switch (verticalAlign.value)
+				{
+					default: // default vertical align: top
+					case BitmapText.VERTICAL_ALIGN_TOP:
+						yOffset = 0;
+						break;
+					case BitmapText.VERTICAL_ALIGN_CENTER:
+						yOffset = -_tempBitmapData.height/2;
+						break;
+					case BitmapText.VERTICAL_ALIGN_BOTTOM:
+						yOffset = -_tempBitmapData.height;
+						break;
+				}
+
+				switch (horizontalAlign.value)
+				{
+					default: // default horizontal align: left
+					case BitmapText.HORIZONTAL_ALIGN_LEFT: // x is aligned to left side of text
+						xOffset = 0;
+						break;
+					case BitmapText.HORIZONTAL_ALIGN_CENTER:
+						xOffset = -_tempBitmapData.width/2;
+						break;
+					case BitmapText.HORIZONTAL_ALIGN_RIGHT: // x is aligned to right side of text
+						xOffset = -_tempBitmapData.width;
+						break;
+				}
+				_tempMatrix.translate(xOffset,yOffset);
+
+				var scaleWidth:Number = screenBounds.getWidth() / dataBounds.getWidth()/_tempBitmapData.width*dataWidth.value;
+				var scaleHeight:Number = -screenBounds.getHeight() / dataBounds.getHeight()/_tempBitmapData.height*dataHeight.value;
+				if(isNaN(dataWidth.value))
+				{
+					scaleWidth =1;
+				}
+				if(isNaN(dataHeight.value))
+				{
+					scaleHeight = 1;
+				}
+
+
+				_tempMatrix.scale(scaleWidth, scaleHeight);
+
+				_tempMatrix.translate(tempPoint.x,tempPoint.y);
+				destination.draw(_tempBitmapData,_tempMatrix);
+			}
+		}
+
+		private function handleImageRequest(event:ResultEvent,token:Object=null):void
+		{
+
+			if((WeaveAPI.SessionManager as SessionManager).objectWasDisposed(this))
+					return;
+			if((token as String)== imageURL.value)
+			{
+			_tempBitmapData = (event.result as Bitmap).bitmapData;
+			getCallbackCollection(this).triggerCallbacks();
+			}
+
+
+		}
+
+		private function handleImageFaultRequest(event:FaultEvent,token:Object=null):void
+		{
+			WeaveAPI.ErrorManager.reportError(event.fault);
+		}
+
+		private function handleImageURLChange():void
+		{
+			_tempBitmapData = null;
+		}
+	}
+}


Bug 707997: testmedia for  Vector.<float4> access beyond vector length

error: pathspec 'test/acceptance/as3/Types/Float4/vector_access.as' did not match any file(s) known to git

--- test/acceptance/as3/Types/Float4/vector_access.as
+++ test/acceptance/as3/Types/Float4/vector_access.as
@@ -0,0 +1,67 @@
+/* -*- c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4 -*- */
+/* vi: set ts=4 sw=4 expandtab: (add to ~/.vimrc: set modeline modelines=5) */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is [Open Source Virtual Machine.].
+ *
+ * The Initial Developer of the Original Code is
+ * Adobe System Incorporated.
+ * Portions created by the Initial Developer are Copyright (C) 2011
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   Adobe AS3 Team
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+var SECTION = "5.5.2";
+var VERSION = "AS3";
+var TITLE   = "Vector.<float4> access beyond vector length";
+
+startTest();
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var vec:Vector.<float4> = new <float4> [float4(0, 0, 0, 0),
+                                        float4(1, 1, 1, 1),
+                                        float4(2, 2, 2, 2)];
+
+for (var j:int = 0; j < vec.length; j++)
+    AddStrictTestCase("Global: read", float4(j, j, j, j), vec[j]);
+
+AddErrorTest("Global: vector access beyond length", RANGEERROR+1125,  function(){ vec[vec.length+1]; });
+AddErrorTest("Global: vector access -1", RANGEERROR+1125,  function(){ vec[-1]; });
+
+
+function getValue(flt4:Vector.<float4>, index:int):float4 { return flt4[index]; }
+for (var j:int = 0; j < vec.length; j++)
+    AddStrictTestCase("Function: read", float4(j, j, j, j), getValue(vec, j));
+
+AddErrorTest("Function: vector access beyond length", RANGEERROR+1125,  function(){ getValue(vec, vec.length+1); });
+AddErrorTest("Function: vector access -1", RANGEERROR+1125,  function(){ getValue(vec, -1); });
+
+
+
+test();


Added support for combination transforms. Each operation is applied in sequence. For example: "translate(5,5) scale(2,2) translate(17, 14)" creates a transform which represents those matrix operations applied in sequence.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/leymannx/svgweb.git/'


http://community.igniterealtime.org/thread/44221?tstart=0

git-svn-id: c197267f952b24206666de142881703007ca05d5@13178 b35dd754-fafc-0310-a699-88a17e54d16e

error: pathspec 'src/org/igniterealtime/xiff/core/XMPPRTMPConnection.as' did not match any file(s) known to git

--- src/org/igniterealtime/xiff/core/XMPPRTMPConnection.as
+++ src/org/igniterealtime/xiff/core/XMPPRTMPConnection.as
@@ -0,0 +1,225 @@
+/*
+ * Copyright (C) 2003-2011 Igniterealtime Community Contributors
+ *
+ *     Daniel Henninger
+ *     Derrick Grigg <dgrigg@rogers.com>
+ *     Juga Paazmaya <olavic@gmail.com>
+ *     Nick Velloff <nick.velloff@gmail.com>
+ *     Sean Treadway <seant@oncotype.dk>
+ *     Sean Voisen <sean@voisen.org>
+ *     Mark Walters
+ *
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.igniterealtime.xiff.core
+{
+	import flash.errors.IOError;
+	import flash.events.ProgressEvent;
+	import flash.events.Event;
+	import flash.events.IOErrorEvent;
+	import flash.events.AsyncErrorEvent;
+	import flash.events.NetStatusEvent;
+	import flash.events.SecurityErrorEvent;
+
+	import flash.events.SecurityErrorEvent;
+	import flash.xml.XMLDocument;
+	import flash.xml.XMLNode;
+
+	import flash.net.NetConnection;
+	import flash.net.Responder;
+	import flash.net.NetStream;
+	import flash.utils.ByteArray;
+
+	import org.igniterealtime.xiff.events.*;
+
+
+	/**
+	 * A child of XMPPConnection, this class makes use of the
+	 * Flash RTMP connection instead of the XMLSocket.
+	 *
+	 * @see org.jivesoftware.xiff.core.XMPPConnection
+	 */
+	public class XMPPRTMPConnection extends XMPPConnection
+	{
+
+		public var netConnection:NetConnection = null;
+		private var xmppUrl:String = "rtmp:/xmpp";
+
+
+		public function XMPPRTMPConnection(xmppUrl:String = "rtmp:/xmpp")
+		{
+			super();
+			this.xmppUrl = xmppUrl;
+
+			configureRedfire();
+		}
+
+		private function configureRedfire():void {
+
+			NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;
+			netConnection = new NetConnection();
+			netConnection.client = this;
+			netConnection.addEventListener( NetStatusEvent.NET_STATUS , netStatus );
+			netConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
+	    	}
+
+
+		private function netStatus (evt:NetStatusEvent ):void {
+
+			switch(evt.info.code) {
+
+				case "NetConnection.Connect.Success":
+					active = true;
+					dispatchEvent( new ConnectionSuccessEvent() );
+
+					var myResult:Responder = new Responder(this.onResult);
+					netConnection.call("xmppConnect", myResult, username, password, resource);
+
+					break;
+
+				case "NetConnection.Connect.Failed":
+					dispatchError( "service-unavailable", "Service Unavailable", "cancel", 503 );
+					break;
+
+				case "NetConnection.Connect.Closed":
+					var event2:DisconnectionEvent = new DisconnectionEvent();
+					dispatchEvent( event2 );
+					break;
+
+				case "NetConnection.Connect.Rejected":
+					dispatchError( "not-authorized", "Not Authorized", "auth", 401 );
+					break;
+
+				default:
+
+			}
+		}
+
+		private function onResult (loginOK:Boolean): void
+		{
+			if (loginOK)
+			{
+				dispatchEvent( new LoginEvent() );
+
+			} else {
+
+				dispatchError( "not-authorized", "Not Authorized", "auth", 401 );
+			}
+		}
+
+		private function asyncErrorHandler(event:AsyncErrorEvent):void {
+           		//trace("AsyncErrorEvent: " + event);
+        	}
+
+		private function securityErrorHandler(event:SecurityErrorEvent):void {
+            		//trace("securityErrorHandler: " + event);
+        	}
+
+
+	    	override protected function sendXML( someData:* ):void
+		{
+			var xmlData:String;
+
+			if (someData is XML)
+			{
+				xmlData =  (someData as XML).toXMLString();
+
+			} else if (someData is String) {
+
+				xmlData =  someData;
+
+			} else {
+
+				xmlData = someData.toString();
+			}
+
+			netConnection.call("xmppSend", null, xmlData);
+
+			var event:OutgoingDataEvent = new OutgoingDataEvent();
+			var byteData:ByteArray = new ByteArray();
+			byteData.writeUTFBytes(xmlData);
+			event.data = byteData;
+
+			dispatchEvent( event );
+		}
+
+		override public function disconnect():void
+		{
+			if( isActive() ) {
+				netConnection.close();
+				active = false;
+				loggedIn = false;
+				var event:DisconnectionEvent = new DisconnectionEvent();
+				dispatchEvent(event);
+			}
+		}
+
+		override public function connect( streamType:uint=0  ):Boolean
+		{
+			active = false;
+			loggedIn = false;
+
+			netConnection.connect(xmppUrl);
+			return true;
+		}
+
+		override public function sendKeepAlive():void
+		{
+
+		}
+
+		override protected function restartStream():void
+		{
+			disconnect();
+			connect();
+		}
+
+
+		public function xmppRecieve(rawXML:String):*
+		{
+			var xmlData:XMLDocument = new XMLDocument();
+			xmlData.ignoreWhite = ignoreWhitespace;
+			var isComplete:Boolean = true;
+
+			if ("<?xml version='1.0' encoding='UTF-8'?>" == rawXML.substring(0, 38))
+			{
+				rawXML = rawXML.substring(38) + "</stream:stream>";
+			}
+
+			try {
+				xmlData.parseXML( rawXML );
+			}
+			catch(err:Error){
+				isComplete = false;
+			}
+
+
+			if (isComplete)
+			{
+				var event:IncomingDataEvent = new IncomingDataEvent();
+				var byteData:ByteArray = new ByteArray();
+				byteData.writeUTFBytes(rawXML);
+				event.data = byteData;
+				dispatchEvent( event );
+
+				for (var i:int = 0; i<xmlData.childNodes.length; i++)
+				{
+					var currentNode:XMLNode = xmlData.childNodes[i];
+					handleNodeType( currentNode );
+				}
+			}
+		}
+	}
+}


[test] add mediator test

[test] add mediator test

error: pathspec 'src/test/actionscript/com/dotfold/dotvimstat/mediator/MediatorTest.as' did not match any file(s) known to git

--- src/test/actionscript/com/dotfold/dotvimstat/mediator/MediatorTest.as
+++ src/test/actionscript/com/dotfold/dotvimstat/mediator/MediatorTest.as
@@ -0,0 +1,8 @@
+package com.dotfold.dotvimstat.mediator
+{
+	public class MediatorTest
+	{
+
+
+	}
+}


Logic to pick up rock on trigger

Logic to pick up rock on trigger

error: pathspec 'Game/Resources/Constant' did not match any file(s) known to git
error: pathspec 'Scene/Minecart/Script/Controller.as' did not match any file(s) known to git


villagerEvent

villagerEvent

villagerEvent

error: pathspec 'src/ageofai/villager/event/VillagerEvent.as' did not match any file(s) known to git

--- src/ageofai/villager/event/VillagerEvent.as
+++ src/ageofai/villager/event/VillagerEvent.as
@@ -0,0 +1,35 @@
+package ageofai.villager.event
+{
+	import flash.events.Event;
+	/**
+	 * ...
+	 * @author Tibor Túri
+	 */
+	public class VillagerEvent extends Event
+	{
+        public static const VILLAGER_BORN:String = "VillagerEvent.born";
+        public static const VILLAGER_DIED:String = "VillagerEvent.villagerDied";
+        public static const VILLAGER_MOVE:String = "VillagerEvent.move";
+        public static const VILLAGER_HARVEST:String = "VillagerEvent.harvest";
+
+        public var progressPercentage:int;
+
+		public function VillagerEvent()
+		{
+
+		}
+
+        public function VillagerEvent( type:String, bubbles:Boolean = false, cancelable:Boolean = false )
+        {
+            super( type, bubbles, cancelable );
+        }
+
+        public override function clone():Event
+        {
+            var event:VillagerEvent = new VillagerEvent( type );
+
+            return event;
+        }
+	}
+
+}


combine

combine

error: pathspec 'src/com/kemsky/combine.as' did not match any file(s) known to git

--- src/com/kemsky/combine.as
+++ src/com/kemsky/combine.as
@@ -0,0 +1,36 @@
+package com.kemsky
+{
+    /**
+     * Creates combined function
+     * @param rest a list of functions
+     * @return combined function
+     * @example
+     * <pre>
+     * var lower:Function = function(value:String):String
+     * {
+     *    return value.toLowerCase();
+     * };
+     *
+     * var first:Function = function(value:String):String
+     * {
+     *    return value.charAt(0);
+     * };
+     *
+     * var c:Function = combine(first, lower);
+     * trace(c("ALEX"));
+     * //a
+     * </pre>
+     */
+    public function combine(...rest):Function
+    {
+        return function (arg:*):*
+        {
+            var result:* = arg;
+            for each (var f:Function in rest)
+            {
+                result = f(result);
+            }
+            return result;
+        };
+    }
+}


Bug 639495 - MethodEnv::op_newobject is aggressive, perf test case (r=brbaker)

error: pathspec 'test/performance/asmicro/alloc-0.as' did not match any file(s) known to git

--- test/performance/asmicro/alloc-0.as
+++ test/performance/asmicro/alloc-0.as
@@ -0,0 +1,48 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is [Open Source Virtual Machine.].
+ *
+ * The Initial Developer of the Original Code is
+ * Adobe System Incorporated.
+ * Portions created by the Initial Developer are Copyright (C) 2010
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   Adobe AS3 Team
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+var DESC = "Object allocation, zero properties";
+include "driver.as"
+
+function allocloop():uint {
+    var v;
+    for ( var i:uint=0 ; i < 100000 ; i++ )
+        v = {};
+    return i;
+}
+
+TEST(allocloop, "alloc-0");


Adds Vigilance Extension to MVCS Bundle

Adds Vigilance Extension to MVCS Bundle

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/eric-stanley/robotlegs-framework.git/'


removing annoying traces

removing annoying traces

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/rafaelcordoba/cocktail-demo.git/'


Do for simple flash buttons what ImageButtonSkin does for flex Buttons.

git-svn-id: b675b909355d5cf946977f44a8ec5a6ceb3782e4@714 ed5b42cb-e716-0410-a449-f6a68f950b19

error: pathspec 'src/as/com/threerings/flash/SimpleIconButton.as' did not match any file(s) known to git

--- src/as/com/threerings/flash/SimpleIconButton.as
+++ src/as/com/threerings/flash/SimpleIconButton.as
@@ -0,0 +1,54 @@
+//
+// $Id$
+
+package com.threerings.flash {
+
+import flash.display.Bitmap;
+import flash.display.BitmapData;
+import flash.display.SimpleButton;
+import flash.display.Sprite;
+
+import flash.geom.ColorTransform;
+
+/**
+ * Takes a BitmapData and makes a button that brightens on hover and depresses when pushed.
+ */
+public class SimpleIconButton extends SimpleButton
+{
+    /**
+     * Constructor.
+     *
+     * @param icon a BitmapData, or Bitmap (from which the BitmapData will be extracted), or
+     *             a Class that instantiates into either a BitmapData or Bitmap.
+     */
+    public function SimpleIconButton (icon :*)
+    {
+        var bmp :BitmapData;
+        if (icon is Class) {
+            icon = new (Class(icon))();
+        }
+        if (icon is BitmapData ) {
+            bmp = BitmapData(icon);
+        } else if (icon is Bitmap) {
+            bmp = Bitmap(icon).bitmapData;
+        } else {
+            throw new Error("Unknown icon spec: must be a Bitmap or BitmapData, or a Class " +
+                "that becomes one.");
+        }
+
+        upState = new Bitmap(bmp);
+        hitTestState = upState;
+        overState = new Bitmap(bmp);
+
+        var down :Sprite = new Sprite();
+        var downBmp :Bitmap = new Bitmap(bmp);
+        downBmp.y = 1;
+        down.addChild(downBmp);
+        downState = down;
+
+        const bright :ColorTransform = new ColorTransform(1.25, 1.25, 1.25);
+        overState.transform.colorTransform = bright;
+        downState.transform.colorTransform = bright;
+    }
+}
+}


improving messages readability

improving messages readability


Button w/o text that uses CSS

Button w/o text that uses CSS

error: pathspec 'frameworks/as/src/org/apache/flex/html/staticControls/beads/CSSButtonView.as' did not match any file(s) known to git

--- frameworks/as/src/org/apache/flex/html/staticControls/beads/CSSButtonView.as
+++ frameworks/as/src/org/apache/flex/html/staticControls/beads/CSSButtonView.as
@@ -0,0 +1,128 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html.staticControls.beads
+{
+	import flash.display.Loader;
+	import flash.display.Shape;
+	import flash.display.SimpleButton;
+	import flash.display.Sprite;
+	import flash.events.Event;
+	import flash.net.URLRequest;
+
+	import org.apache.flex.core.IBeadView;
+    import org.apache.flex.core.CSSTextField;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.core.ITextModel;
+	import org.apache.flex.core.ValuesManager;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.utils.SolidBorderUtil;
+
+	public class CSSButtonView implements IBeadView
+	{
+		public function CSSButtonView()
+		{
+			upSprite = new Sprite();
+			downSprite = new Sprite();
+			overSprite = new Sprite();
+		}
+
+		private var textModel:ITextModel;
+
+		private var _strand:IStrand;
+
+		private var shape:Shape;
+
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+			shape = new Shape();
+			shape.graphics.beginFill(0xCCCCCC);
+			shape.graphics.drawRect(0, 0, 10, 10);
+			shape.graphics.endFill();
+			SimpleButton(value).upState = upSprite;
+			SimpleButton(value).downState = downSprite;
+			SimpleButton(value).overState = overSprite;
+			SimpleButton(value).hitTestState = shape;
+
+            setupBackground(overSprite, "hover");
+            setupBackground(downSprite, "active");
+            setupBackground(upSprite);
+		}
+
+		private function setupSkin(sprite:Sprite, state:String = null):void
+		{
+			var borderColor:uint;
+			var borderThickness:uint;
+			var borderStyle:String;
+			var borderStyles:Object = ValuesManager.valuesImpl.getValue(_strand, "border", state);
+			if (borderStyles is Array)
+			{
+				borderColor = borderStyles[2];
+				borderStyle = borderStyles[1];
+				borderThickness = borderStyles[0];
+			}
+			var value:Object = ValuesManager.valuesImpl.getValue(_strand, "border-style", state);
+			if (value != null)
+				borderStyle = value as String;
+			value = ValuesManager.valuesImpl.getValue(_strand, "border-color", state);
+			if (value != null)
+				borderColor = value as uint;
+			value = ValuesManager.valuesImpl.getValue(_strand, "border-thickness", state);
+			if (value != null)
+				borderThickness = value as uint;
+			var padding:Object = ValuesManager.valuesImpl.getValue(_strand, "padding", state);
+			var backgroundColor:Object = ValuesManager.valuesImpl.getValue(_strand, "background-color", state);
+			if (borderStyle == "solid")
+			{
+				SolidBorderUtil.drawBorder(sprite.graphics,
+					0, 0, sprite.width + Number(padding) * 2, sprite.height + Number(padding) * 2,
+					borderColor, backgroundColor, borderThickness);
+			}
+		}
+
+        private function setupBackground(sprite:Sprite, state:String = null):void
+        {
+            var backgroundImage:Object = ValuesManager.valuesImpl.getValue(_strand, "background-image", state);
+            if (backgroundImage)
+            {
+                var loader:Loader = new Loader();
+                sprite.addChildAt(loader, 0);
+                var url:String = backgroundImage as String;
+                loader.load(new URLRequest(url));
+                loader.contentLoaderInfo.addEventListener(flash.events.Event.COMPLETE, function (e:flash.events.Event):void {
+                    setupSkin(sprite, state);
+                    updateHitArea();
+                });
+            }
+        }
+
+		private var upSprite:Sprite;
+		private var downSprite:Sprite;
+		private var overSprite:Sprite;
+
+		private function updateHitArea():void
+		{
+			shape.graphics.clear();
+			shape.graphics.beginFill(0xCCCCCC);
+			shape.graphics.drawRect(0, 0, upSprite.width, upSprite.height);
+			shape.graphics.endFill();
+
+		}
+	}
+}


changing JsonVerifier log prefix from "JVL" to "JSV"

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/rlowke/lowkemedia.git/'


testing auto-listen to click

testing auto-listen to click


IChrome interface

IChrome interface

error: pathspec 'frameworks/as/src/org/apache/flex/core/IChrome.as' did not match any file(s) known to git

--- frameworks/as/src/org/apache/flex/core/IChrome.as
+++ frameworks/as/src/org/apache/flex/core/IChrome.as
@@ -0,0 +1,31 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.core
+{
+	/**
+	 * Items that implement IChrome are designating themselves as being attached
+	 * to their parent in a way that's different from normal content. For example,
+	 * to a Container, a child being added that's an IChrome implementor will be
+	 * added outside of the content area.
+	 */
+	public interface IChrome
+	{
+
+	}
+}


added load call to src queue

added load call to src queue


created CustomHSlider

created CustomHSlider

error: pathspec 'WeaveUI/src/weave/ui/CustomHSlider.as' did not match any file(s) known to git

--- WeaveUI/src/weave/ui/CustomHSlider.as
+++ WeaveUI/src/weave/ui/CustomHSlider.as
@@ -0,0 +1,82 @@
+/*
+	Weave (Web-based Analysis and Visualization Environment)
+	Copyright (C) 2008-2011 University of Massachusetts Lowell
+
+	This file is a part of Weave.
+
+	Weave is free software: you can redistribute it and/or modify
+	it under the terms of the GNU General Public License, Version 3,
+	as published by the Free Software Foundation.
+
+	Weave is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with Weave.  If not, see <http://www.gnu.org/licenses/>.
+*/
+package weave.ui
+{
+	import mx.controls.HSlider;
+	import mx.controls.sliderClasses.Slider;
+	import mx.controls.sliderClasses.SliderLabel;
+	import mx.core.UIComponent;
+	import mx.core.mx_internal;
+
+	use namespace mx_internal;
+
+	/**
+	 * Adds labelPositions functionality.
+	 */
+	public class CustomHSlider extends HSlider
+	{
+		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
+		{
+			super.updateDisplayList(unscaledWidth, unscaledHeight);
+			setLabelPositions(this, _labelPositions);
+		}
+
+		private var _labelPositions:Array = [];
+
+		/**
+		 * Positions corresponding to the labels property.
+		 * @see #labels
+		 */
+		[Bindable] public function get labelPositions():Array
+		{
+			return _labelPositions;
+		}
+		public function set labelPositions(value:Array):void
+		{
+			_labelPositions = value;
+			invalidateDisplayList();
+		}
+
+		public static function getLabelObjects(slider:Slider):UIComponent
+		{
+			if (!slider.innerSlider || !slider.getTrackHitArea())
+				return null;
+			var i:int = slider.innerSlider.getChildIndex(slider.getTrackHitArea());
+			if (i == 0)
+				return null;
+			var component:UIComponent = slider.innerSlider.getChildAt(i - 1) as UIComponent;
+			if (component && component.numChildren > 0 && component.getChildAt(0) is SliderLabel)
+				return component;
+			return null;
+		}
+		public static function setLabelPositions(slider:Slider, positions:Array):void
+		{
+			var labelObjects:UIComponent = getLabelObjects(slider);
+			if (positions && labelObjects)
+			{
+				for (var i:int = 0; i < labelObjects.numChildren; i++)
+				{
+					var sliderLabel:SliderLabel = labelObjects.getChildAt(i) as SliderLabel;
+					if (sliderLabel)
+						sliderLabel.x = slider.getXFromValue(positions[i]) - sliderLabel.width;
+				}
+			}
+		}
+	}
+}


added new alignment spaceInsideHorizontal

error: pathspec 'src/ktu/utils/align/aligners/SpaceInsideHorizontalAligner.as' did not match any file(s) known to git

--- src/ktu/utils/align/aligners/SpaceInsideHorizontalAligner.as
+++ src/ktu/utils/align/aligners/SpaceInsideHorizontalAligner.as
@@ -0,0 +1,42 @@
+
+
+package ktu.utils.align.aligners {
+
+	import flash.geom.Rectangle;
+	import flash.utils.Dictionary;
+	import ktu.utils.align.IRectangleAligner;
+	import ktu.utils.sorting.sort_rectangle_left;
+
+	/**
+	 * SpaceHorizontalAligner evenly spaces the targets along the x axis inside of the target coordinate space
+	 * @author ktu
+	 */
+	public class SpaceInsideHorizontalAligner implements IRectangleAligner {
+
+		/**
+		 * evenly spaces the targets along the x axis inside of the target coordinate space
+		 *
+		 * @param	targetCoordinateSpace
+		 * @param	targets
+		 */
+		public function alignRectangles(targetCoordinateSpace:Rectangle, targets:Array/*Rectangle*/):void {
+			targets = targets.concat();																// 	copy targets into new array so i do not ruin ordering
+			targets = targets.sort ( sort_rectangle_left ) ;										//	sort targets on left edge
+
+			var objsWidth:Number = 0;																//	total width of all targets
+			var totalWidth:Number = targetCoordinateSpace.width;									//	total width of tcs
+			var length:int = targets.length;														// 	targets length for optimized looping
+			for ( var i:int = 0; i < length; i++ )	 												//	loop (each target)
+				objsWidth += targets[i].width ;														//		add width of target to total targets width
+
+			var spread:Number = ( totalWidth - objsWidth ) / ( length - 1 ) ;						//	the gap between each target
+			var right:Number = 0//targetCoordinateSpace.left + targets[0].width;						//	current right edge of the last placed target
+			//targets[0].x = targetCoordinateSpace.left;												//	place first target
+			for ( var j:int = 0; j < length; j++ ) {												//	loop (each target - first)
+				var item:Rectangle = targets[j];													//		grab current item
+				item.x = right + spread;															//		place item at right edge plus spread
+				right += item.width + spread;														//		update right edge to include current item
+			}																						//	end loop
+		}
+	}
+}


implemented LinkableCallbackScript

implemented LinkableCallbackScript

error: pathspec 'WeaveCore/src/weave/core/LinkableCallbackScript.as' did not match any file(s) known to git

--- WeaveCore/src/weave/core/LinkableCallbackScript.as
+++ WeaveCore/src/weave/core/LinkableCallbackScript.as
@@ -0,0 +1,87 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ *
+ * This file is part of Weave.
+ *
+ * The Initial Developer of Weave is the Institute for Visualization
+ * and Perception Research at the University of Massachusetts Lowell.
+ * Portions created by the Initial Developer are Copyright (C) 2008-2015
+ * the Initial Developer. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+package weave.core
+{
+	import weave.api.detectLinkableObjectChange;
+	import weave.api.registerLinkableChild;
+	import weave.api.reportError;
+	import weave.api.core.ICallbackCollection;
+	import weave.api.core.ILinkableDynamicObject;
+	import weave.api.core.ILinkableObject;
+	import weave.api.core.ILinkableVariable;
+	import weave.compiler.Compiler;
+	import weave.compiler.ProxyObject;
+
+	public class LinkableCallbackScript implements ILinkableObject
+	{
+		public function LinkableCallbackScript()
+		{
+			_callbacks = WeaveAPI.SessionManager.getCallbackCollection(this);
+			_callbacks.addImmediateCallback(null, selfCallback);
+		}
+
+		public const variables:LinkableHashMap = registerLinkableChild(this, new LinkableHashMap());
+		public const script:LinkableString = registerLinkableChild(this, new LinkableString());
+		public const delayWhileBusy:LinkableBoolean = registerLinkableChild(this, new LinkableBoolean(true));
+
+		private var _callbacks:ICallbackCollection;
+		private const _symbolTableProxy:ProxyObject = new ProxyObject(hasValue, getValue, null);
+		private var _compiledScript:Function = null;
+		private static const _compiler:Compiler = new Compiler(true);
+
+		public function getValue(name:String):*
+		{
+			var variable:ILinkableObject = variables.getObject(name);
+
+			if (variable is ILinkableVariable)
+				return (variable as ILinkableVariable).getSessionState();
+
+			if (variable is ILinkableDynamicObject)
+				return (variable as ILinkableDynamicObject).internalObject;
+
+			return variable
+				|| LinkableFunction.evaluateMacro(name)
+				|| undefined;
+		}
+
+		public function hasValue(name:String):Boolean
+		{
+			return variables.getObject(name) != null
+				|| LinkableFunction.macros.getObject(name) != null;
+		}
+
+		private function selfCallback():void
+		{
+			if (delayWhileBusy.value && WeaveAPI.SessionManager.linkableObjectIsBusy(this))
+				return;
+
+			if (!script.value)
+				return;
+
+			try
+			{
+				if (detectLinkableObjectChange(selfCallback, script))
+					_compiledScript = _compiler.compileToFunction(script.value, _symbolTableProxy, reportError, false);
+
+				_compiledScript.apply(this);
+			}
+			catch (e:Error)
+			{
+				reportError(e);
+			}
+		}
+	}
+}


fixed datasource naming

fixed datasource naming


加入 基本程式

加入 基本程式

error: pathspec 'flash/src/lambmei/starling/display/HandleSheet.as' did not match any file(s) known to git

--- flash/src/lambmei/starling/display/HandleSheet.as
+++ flash/src/lambmei/starling/display/HandleSheet.as
@@ -0,0 +1,261 @@
+package lambmei.starling.display
+{
+	import flash.geom.Point;
+
+	import starling.display.Button;
+	import starling.display.DisplayObject;
+	import starling.display.Sprite;
+	import starling.events.Touch;
+	import starling.events.TouchEvent;
+	import starling.events.TouchPhase;
+	import starling.textures.Texture;
+
+	public class HandleSheet extends Sprite
+	{
+		private var _selected:Boolean
+		private var _contents:DisplayObject
+
+		private var _ctrlButton:Button
+		private var _selectedGroup:Sprite
+
+
+		public static const CtrlButtonAlign_CENTER:String = "center"
+		public static const CtrlButtonAlign_LT:String = "LT"
+
+		private var _useCtrlButton:Boolean
+
+
+		public function HandleSheet(contents:DisplayObject=null)
+		{
+			addEventListener(TouchEvent.TOUCH, onTouch);
+			useHandCursor = true;
+
+
+			if (contents)
+			{
+				var _w:Number = contents.width
+				var _h:Number = contents.height
+				var _halfW:Number = _w/2
+				var _halfH:Number= _h/2
+				//將物件置中
+				contents.x = int(_halfW * -1);
+				contents.y = int(_halfH * -1);
+				addChild(contents);
+				_contents = contents
+
+			}
+
+			//init SelectGroup
+			_selectedGroup = new Sprite()
+			this.addChild(this._selectedGroup);
+		}
+
+		public function get useCtrlButton():Boolean
+		{
+			return _useCtrlButton;
+		}
+
+		public function set useCtrlButton(value:Boolean):void
+		{
+			_useCtrlButton = value;
+		}
+
+		public function setCtrlButtonInitTexture(upTexture:Texture , downTexture:Texture):void
+		{
+			useCtrlButton = true
+
+			if (_contents && upTexture!=null)
+			{
+				_ctrlButton = new Button(upTexture,"ctrlBtn",downTexture);
+
+				var _w:Number = _contents.width
+				var _h:Number = _contents.height
+				var _halfW:Number = _w/2
+				var _halfH:Number= _h/2
+				//放置右上角
+				_ctrlButton.x = int(_halfW)
+				_ctrlButton.y = - int(_halfH)
+
+				//置中對齊
+				_ctrlButton.x -= int(_ctrlButton.width/2)
+				_ctrlButton.y -= int(_ctrlButton.height/2)
+
+				_selectedGroup.addChild(_ctrlButton)
+			}
+		}
+
+		public function get selected():Boolean
+		{
+			return _selected;
+		}
+
+		public function set selected(value:Boolean):void
+		{
+			if(value!=_selected){
+				_selected = value;
+
+			}
+
+		}
+		private function onTouch(event:TouchEvent):void
+		{
+			var touches:Vector.<Touch> = event.getTouches(this, TouchPhase.MOVED);
+
+
+			//一隻手指
+			if (touches.length == 1)
+			{
+
+				//使用控制按鈕 點到ＢＵＴＴＯＮ
+				if(event.target == _ctrlButton){
+
+
+					var touchA:Touch = touches[0];
+
+					//var topStage:Point = this.localToGlobal(new Point(0, 0));
+					var touchB:Touch = touchA.clone();
+
+					//變成固定點 但應該不能用固
+					/*
+					var b:Button= new Button()
+					b.touchable=false
+					b.width = b.height = 10
+					this.addChild(b)
+
+					b.x = touchA.globalX
+					b.y = touchA.globalY
+					*/
+					var n = touchA.getLocation(this);
+
+					touchB.globalX = n.x * 1
+					touchB.globalY = n.y * -1
+
+					//touchB.globalX =
+					//					trace(this.x,this.y)
+					//					trace(touchA)
+					//											trace(touchA.globalX , touchA.globalY)
+					//					trace("-----------")
+
+					//var touchB:Touch = new Touch(1);
+
+					var currentPosA:Point  = touchA.getLocation(this);
+					var previousPosA:Point = touchA.getPreviousLocation(this);
+					var currentPosB:Point  = currentPosA.clone();
+					currentPosB.x *=-1;
+					currentPosB.y *=-1;
+
+					//var previousPosB:Point = touchB.getPreviousLocation(parent);
+					var previousPosB:Point  = previousPosA.clone();
+					previousPosB.x *=-1;
+					previousPosB.y *=-1;
+
+					var currentVector:Point  = currentPosA.subtract(currentPosB);
+					var previousVector:Point = previousPosA.subtract(previousPosB);
+
+					var currentAngle:Number  = Math.atan2(currentVector.y, currentVector.x);
+					var previousAngle:Number = Math.atan2(previousVector.y, previousVector.x);
+
+					var deltaAngle:Number = currentAngle - previousAngle;
+
+					// update pivot point based on previous center
+					var previousLocalA:Point  = touchA.getPreviousLocation(this);
+					var previousLocalB:Point  = touchB.getPreviousLocation(this);
+					//pivotX = (previousLocalA.x + previousLocalB.x) * 0.5;
+					//pivotY = (previousLocalA.y + previousLocalB.y) * 0.5;
+
+
+					// update location based on the current center
+					//x = (currentPosA.x + currentPosB.x) * 0.5;
+					//y = (currentPosA.y + currentPosB.y) * 0.5;
+
+					// rotate
+					rotation += deltaAngle;
+
+					// scale
+					var sizeDiff:Number = currentVector.length / previousVector.length;
+					scaleX *= sizeDiff;
+					scaleY *= sizeDiff;
+					_ctrlButton.scaleX /= sizeDiff
+					_ctrlButton.scaleY /= sizeDiff
+					//
+
+
+				}else{
+					//一隻手指平移
+					var delta:Point = touches[0].getMovement(parent);
+
+					x += delta.x;
+					y += delta.y;
+				}
+
+
+			}
+			else if (touches.length == 2)
+			{
+
+				// two fingers touching -> rotate and scale
+				var touchA:Touch = touches[0];
+				var touchB:Touch = touches[1];
+				trace("touchA" , touchA)
+				trace("touchB" , touchB)
+
+				var currentPosA:Point  = touchA.getLocation(parent);
+				var previousPosA:Point = touchA.getPreviousLocation(parent);
+				var currentPosB:Point  = touchB.getLocation(parent);
+				var previousPosB:Point = touchB.getPreviousLocation(parent);
+				trace(currentPosA , currentPosB)
+
+
+				var currentVector:Point  = currentPosA.subtract(currentPosB);
+				var previousVector:Point = previousPosA.subtract(previousPosB);
+
+				var currentAngle:Number  = Math.atan2(currentVector.y, currentVector.x);
+				var previousAngle:Number = Math.atan2(previousVector.y, previousVector.x);
+				var deltaAngle:Number = currentAngle - previousAngle;
+
+				// update pivot point based on previous center
+				var previousLocalA:Point  = touchA.getPreviousLocation(this);
+				var previousLocalB:Point  = touchB.getPreviousLocation(this);
+				trace(previousLocalA , previousLocalB)
+
+				pivotX = (previousLocalA.x + previousLocalB.x) * 0.5;
+				pivotY = (previousLocalA.y + previousLocalB.y) * 0.5;
+
+				// update location based on the current center
+				x = (currentPosA.x + currentPosB.x) * 0.5;
+				y = (currentPosA.y + currentPosB.y) * 0.5;
+
+				// rotate
+				rotation += deltaAngle;
+
+				// scale
+				var sizeDiff:Number = currentVector.length / previousVector.length;
+				scaleX *= sizeDiff;
+				scaleY *= sizeDiff;
+				trace("----")
+			}
+
+			var touch:Touch = event.getTouch(this, TouchPhase.ENDED);
+
+			//if (touch && touch.tapCount == 2)
+			//				parent.addChild(this); // bring self to front
+
+			// enable this code to see when you're hovering over the object
+			//			 touch = event.getTouch(this, TouchPhase.HOVER);
+			//			 alpha = touch ? 0.8 : 1.0;
+
+		}
+
+
+		public override function dispose():void
+		{
+			removeEventListener(TouchEvent.TOUCH, onTouch);
+			if(_contents){
+				_contents.dispose()
+			}
+			super.dispose();
+		}
+	}
+}
+import lambmei.starling.display.HandleSheet;
+


Bug 763519: regression test checking new capacity adjustment policy (r=dschaffe).

{{mercurial 3dcc16fb970d0e7532bd6fe0403a815530334891}}

CL@1076238

error: pathspec 'test/acceptance/as3/ByteArray/ByteArray_bug763519.as' did not match any file(s) known to git

--- test/acceptance/as3/ByteArray/ByteArray_bug763519.as
+++ test/acceptance/as3/ByteArray/ByteArray_bug763519.as
@@ -0,0 +1,101 @@
+/* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4 -*- */
+/* vi: set ts=4 sw=4 expandtab: (add to ~/.vimrc: set modeline modelines=5) */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is [Open Source Virtual Machine.].
+ *
+ * The Initial Developer of the Original Code is
+ * Adobe System Incorporated.
+ * Portions created by the Initial Developer are Copyright (C) 2012
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   Adobe AS3 Team
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+import flash.utils.ByteArray;
+import avmplus.System;
+
+var SECTION = "ByteArray";
+var VERSION = "as3";
+startTest();
+var TITLE   = "test ByteArray capacity growth regression";
+
+writeHeaderToLog( SECTION + " "+ TITLE );
+
+var b:ByteArray = new ByteArray();
+var MB:uint = 1024*1024;
+
+// Initial State: Measure private mem before any real byte array allocation.
+var privMem_0:uint = System.privateMemory;
+
+// Test setup: Start off with 100 MB byte array.
+b.length = 100*MB;
+b[100*MB - 1] = 1;
+
+var privMem_1:uint = System.privateMemory;
+
+// First test: Increase byte array by 30 MB.
+// Capacity should *not* increase to 200 MB.
+b.length = 130*MB;
+
+var privMem_2:uint = System.privateMemory;
+
+var delta_0_1:int = (privMem_1 - privMem_0);
+var delta_0_2:int = (privMem_2 - privMem_0);
+
+var deltaLessThan2x:Boolean = (delta_0_2 < 2 * delta_0_1);
+
+// Second test: Cut byte array to 1 MB.
+// Capacity should be cut down from the original 100 MB.
+b.length = 1*MB;
+
+var privMem_3:uint = System.privateMemory;
+var delta_1_3:int = (privMem_3 - privMem_1);
+var deltaNegative:Boolean = (delta_1_3 < 0);
+
+
+var info = {};
+info.privMem_0 = privMem_0;
+info.privMem_1 = privMem_1;
+info.privMem_2 = privMem_2;
+info.privMem_3 = privMem_3;
+info.delta_0_1 = delta_0_1;
+info.delta_0_2 = delta_0_2;
+info.delta_1_3 = delta_1_3;
+info.deltaLessThan2x = deltaLessThan2x;
+info.deltaNegative = deltaNegative;
+
+print(JSON.stringify(info));
+
+AddTestCase("small length increase incurs less than 2x capacity growth",
+            true, deltaLessThan2x);
+
+AddTestCase("huge length decrease causes capacity drop",
+            true, deltaNegative);
+
+test();


improving docs

improving docs


implemented LinkableSynchronizer

implemented LinkableSynchronizer

error: pathspec 'WeaveCore/src/weave/core/LinkableSynchronizer.as' did not match any file(s) known to git

--- WeaveCore/src/weave/core/LinkableSynchronizer.as
+++ WeaveCore/src/weave/core/LinkableSynchronizer.as
@@ -0,0 +1,73 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ *
+ * This file is part of Weave.
+ *
+ * The Initial Developer of Weave is the Institute for Visualization
+ * and Perception Research at the University of Massachusetts Lowell.
+ * Portions created by the Initial Developer are Copyright (C) 2008-2015
+ * the Initial Developer. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+package weave.core
+{
+	import weave.api.core.IDisposableObject;
+	import weave.api.core.ILinkableObject;
+	import weave.api.registerDisposableChild;
+	import weave.api.registerLinkableChild;
+
+	public class LinkableSynchronizer implements ILinkableObject
+	{
+		public const primaryPath:LinkableVariable = registerLinkableChild(this, new LinkableVariable(Array), setPrimaryPath);
+		public const secondaryPath:LinkableVariable = registerLinkableChild(this, new LinkableVariable(Array), setSecondaryPath);
+
+		private const primaryWatcher:LinkableWatcher = registerDisposableChild(this, new LinkableWatcher(null, synchronize));
+		private const secondaryWatcher:LinkableWatcher = registerDisposableChild(this, new LinkableWatcher(null, synchronize));
+
+		private function setPrimaryPath():void
+		{
+			primaryWatcher.targetPath = primaryPath.getSessionState() as Array;
+		}
+		private function setSecondaryPath():void
+		{
+			secondaryWatcher.targetPath = secondaryPath.getSessionState() as Array;
+		}
+
+		private var _primary:ILinkableObject;
+		private var _secondary:ILinkableObject;
+
+		private function synchronize():void
+		{
+			var primary:ILinkableObject = primaryWatcher.target;
+			var secondary:ILinkableObject = secondaryWatcher.target;
+			if (_primary != primary || _secondary != secondary)
+			{
+				if (_primary && _secondary)
+				{
+					WeaveAPI.SessionManager.getCallbackCollection(_primary).removeCallback(primaryCallback);
+					WeaveAPI.SessionManager.getCallbackCollection(_secondary).removeCallback(secondaryCallback);
+				}
+				_primary = primary;
+				_secondary = secondary;
+				if (primary && secondary)
+				{
+					WeaveAPI.SessionManager.getCallbackCollection(_secondary).addImmediateCallback(this, secondaryCallback);
+					WeaveAPI.SessionManager.getCallbackCollection(_primary).addImmediateCallback(this, primaryCallback, true);
+				}
+			}
+		}
+
+		private function primaryCallback():void
+		{
+			WeaveAPI.SessionManager.copySessionState(_primary, _secondary);
+		}
+		private function secondaryCallback():void
+		{
+			WeaveAPI.SessionManager.copySessionState(_secondary, _primary);
+		}
+	}
+}


Setting sub timeout to 10s

Setting sub timeout to 10s

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/pubnub/flash.git/'


horizontal mouse wheel

horizontal mouse wheel

error: pathspec 'sh/saqoo/util/SWFWheel2.as' did not match any file(s) known to git

--- sh/saqoo/util/SWFWheel2.as
+++ sh/saqoo/util/SWFWheel2.as
@@ -0,0 +1,117 @@
+package sh.saqoo.util {
+
+	import org.osflash.signals.Signal;
+
+	import flash.external.ExternalInterface;
+
+	/**
+	 * SWFWheel alternative which supports horizontal mouse wheel scroll.
+	 * @see http://flexamphetamine.blogspot.com/2010/03/horizontal-mouse-wheel-swipe-gesture.html
+	 */
+	public class SWFWheel2 {
+
+
+		private static const _sig:Signal = new Signal(Number, Number);
+
+
+		public static function init():Boolean {
+			if (!ExternalInterface.available || !ExternalInterface.objectID) return false;
+
+			ExternalInterface.call('eval', SCROLL_SCRIPT);
+			ExternalInterface.call('eval', 'setupScrolling("' + ExternalInterface.objectID + '");');
+			ExternalInterface.call('eval', 'true;');
+			ExternalInterface.addCallback('scrollEvent', _sig.dispatch);
+			return true;
+		}
+
+
+		public static function add(listener:Function):Function { return _sig.add(listener); }
+		public static function remove(listener:Function):Function { return _sig.remove(listener); }
+		public static function removeAll():void { _sig.removeAll(); }
+
+
+		private static const SCROLL_SCRIPT:String = (<![CDATA[
+			function setupScrolling(objectID) {
+				var flashObject = document.getElementsByName(objectID)[0];
+				var eventListenerObject = flashObject;
+				var isWebkit = false;
+
+				if (navigator && navigator.vendor) {
+					isWebkit = navigator.vendor.match("Apple") || navigator.vendor.match("Google");
+				}
+
+				// some events will need to point to the containing object tag
+				if (isWebkit && flashObject.parentNode.tagName.toLowerCase() == "object") {
+					eventListenerObject = flashObject.parentNode;
+				}
+
+				var scrollHandler = function (event) {
+						var xDelta = 0;
+						var yDelta = 0;
+
+						// IE special case
+						if (!event) event = window.event;
+
+						// IE/Webkit/Opera
+						if (event.wheelDelta) {
+							// horizontal scrolling is supported in Webkit
+							if (event.wheelDeltaX) {
+								// Webkit can scroll two directions simultaneously
+								xDelta = event.wheelDeltaX;
+								yDelta = event.wheelDeltaY;
+							} else {
+								// fallback to standard scrolling interface
+								yDelta = event.wheelDelta;
+							}
+
+							// you'll have to play with these,
+							// browsers on Windows and OS X handle them differently
+							xDelta /= 120;
+							yDelta /= 120;
+
+							// Opera special case
+							if (window.opera) {
+								yDelta = -yDelta;
+								// Opera doesn't support hscroll; vscroll is also buggy
+							}
+						}
+						// Firefox (Mozilla)
+						else if (event.detail) {
+							yDelta = -event.detail / 1.5;
+							// hscroll supported in FF3.1+
+							if (event.axis) {
+								if (event.axis == event.HORIZONTAL_AXIS) {
+									// FF can only scroll one dirction at a time
+									xDelta = yDelta;
+									yDelta = 0;
+								}
+							}
+						}
+
+						try {
+							flashObject.scrollEvent(xDelta, yDelta);
+						} catch (e) {};
+
+						if (event.preventDefault) event.preventDefault();
+						event.returnValue = false;
+					}
+
+				if (window.addEventListener) {
+					// not IE
+					eventListenerObject.addEventListener('mouseover', function (e) {
+						if (isWebkit) {
+							window.onmousewheel = scrollHandler;
+						} else {
+							window.addEventListener("DOMMouseScroll", scrollHandler, false);
+						}
+					}, false);
+				} else {
+					// IE
+					flashObject.onmouseover = function (e) {
+						document.onmousewheel = scrollHandler;
+					};
+				}
+			}
+		]]>).toString();
+	}
+}


A very boring and generic chatbox (moved from msoy).

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@4340 542714f4-19e9-0310-aa3c-eee0fc999fb1

error: pathspec 'src/as/com/threerings/mx/controls/ChatDisplayBox.as' did not match any file(s) known to git

--- src/as/com/threerings/mx/controls/ChatDisplayBox.as
+++ src/as/com/threerings/mx/controls/ChatDisplayBox.as
@@ -0,0 +1,82 @@
+package com.threerings.mx.controls {
+
+import flash.display.DisplayObjectContainer;
+
+import flash.events.Event;
+
+import mx.controls.TextArea;
+
+import com.threerings.crowd.chat.client.ChatDirector;
+import com.threerings.crowd.chat.client.ChatDisplay;
+import com.threerings.crowd.chat.data.ChatMessage;
+import com.threerings.crowd.chat.data.UserMessage;
+import com.threerings.crowd.util.CrowdContext;
+
+/**
+ * IMPORTANT NOTE: this class was written for testing things and does not
+ * necessarily represent a valid starting point for writing the chat
+ * widget we'll eventually need.
+ */
+public class ChatDisplayBox extends TextArea
+    implements ChatDisplay
+{
+    public function ChatDisplayBox (ctx :CrowdContext)
+    {
+        _ctx = ctx;
+        this.editable = false;
+
+        // TODO
+        width = 400;
+        height = 150;
+    }
+
+    // documentation inherited from interface ChatDisplay
+    public function clear () :void
+    {
+        this.htmlText = "";
+    }
+
+    // documentation inherited from interface ChatDisplay
+    public function displayMessage (msg :ChatMessage) :void
+    {
+        if (!_scrollBot) {
+            _scrollBot = (verticalScrollPosition == maxVerticalScrollPosition);
+        }
+
+        // display the message
+        if (msg is UserMessage) {
+            this.htmlText += "<" +
+                (msg as UserMessage).speaker + "> ";
+        }
+        this.htmlText += msg.message;
+    }
+
+    override public function parentChanged (p :DisplayObjectContainer) :void
+    {
+        super.parentChanged(p);
+
+        var chatdir :ChatDirector = _ctx.getChatDirector();
+        if (p != null) {
+            chatdir.addChatDisplay(this);
+        } else {
+            chatdir.removeChatDisplay(this);
+        }
+    }
+
+    // documentation inherited
+    override protected function updateDisplayList (uw :Number, uh :Number) :void
+    {
+        super.updateDisplayList(uw, uh);
+
+        if (_scrollBot) {
+            verticalScrollPosition = maxVerticalScrollPosition;
+            _scrollBot = false;
+        }
+    }
+
+    /** The giver of life. */
+    protected var _ctx :CrowdContext;
+
+    protected var _scrollBot :Boolean;
+}
+}


Add Animation namespace and modification for timelines

A New namespace to access confidential information inside timelines
M Each timeline has two new getter, need namespace minko_animation to use them

error: pathspec 'src/aerys/minko/ns/minko_animation.as' did not match any file(s) known to git

--- src/aerys/minko/ns/minko_animation.as
+++ src/aerys/minko/ns/minko_animation.as
@@ -0,0 +1,5 @@
+// ActionScript file
+package aerys.minko.ns
+{
+	public namespace minko_animation;
+}