<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript">
        window['new-script-object-in-frame'] = function() {
            return FactoryFunction();
        };
        // A simple script object with a member function that takes
        // an NPObject as an argument
        FactoryFunction = function() {
            var TestObject = function() {
            };
            TestObject.prototype.createObject = function(plugin) {
                var newObject = plugin.testCloneObject();
                return newObject;
            };
            var instance = new TestObject();
            return instance;
        };
    </script>
</head>
<body>
</body>
</html>
