Adam Barth 5192329f25 Script-based imports should basically work
This CL adds the beginning of a new module loading system that matches the
conceptual module in the spec. I've writed it up to the import API on
AbstractModule. In a future CL, I'll replace the old module loading system with
this one.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/720903002
2014-11-12 13:29:14 -08:00

46 lines
1.3 KiB
C++

// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SKY_ENGINE_CORE_APP_MODULE_H_
#define SKY_ENGINE_CORE_APP_MODULE_H_
#include "core/app/AbstractModule.h"
namespace blink {
class Application;
class Module : public AbstractModule {
DEFINE_WRAPPERTYPEINFO();
public:
static PassRefPtr<Module> create(ExecutionContext* context,
Application* application,
PassRefPtr<Document> document,
const String& url) {
return adoptRef(new Module(context, application, document, url));
}
virtual ~Module();
Application* application() const { return application_.get(); }
void setExports(const ScriptValue& exports) { exports_ = exports; }
const ScriptValue& exports() const { return exports_; }
private:
Module(ExecutionContext* context,
Application* application,
PassRefPtr<Document> document,
const String& url);
const AtomicString& interfaceName() const override;
Application* GetApplication() override;
RefPtr<Application> application_;
ScriptValue exports_;
};
} // namespace blink
#endif // SKY_ENGINE_CORE_APP_MODULE_H_