ソースを参照

Update megengine.js

Lutz Roeder 2 年 前
コミット
f1a549c160
1 ファイル変更27 行追加29 行削除
  1. 27 29
      source/megengine.js

+ 27 - 29
source/megengine.js

@@ -35,37 +35,35 @@ megengine.ModelFactory = class {
         return '';
     }
 
-    open(context, match) {
-        return context.metadata('megengine-metadata.json').then((metadata) => {
-            switch (match) {
-                case 'megengine.tm': {
-                    const obj = context.open('pkl');
-                    return new megengine.Model(metadata, obj, match);
-                }
-                case 'megengine.mge': {
-                    return context.require('./megengine-schema').then(() => {
-                        megengine.schema = flatbuffers.get('megengine').mgb.serialization.fbs;
-                        let model = null;
-                        const stream = context.stream;
-                        try {
-                            const buffer = stream.peek(12);
-                            const tag = String.fromCharCode.apply(null, buffer);
-                            stream.skip(tag.startsWith('mgbtest0') ? 12 : 0);
-                            stream.skip(4);
-                            const reader = flatbuffers.BinaryReader.open(stream);
-                            model = megengine.schema.v2.Model.create(reader);
-                        } catch (error) {
-                            const message = error && error.message ? error.message : error.toString();
-                            throw new megengine.Error('File format is not megengine.Model (' + message.replace(/\.$/, '') + ').');
-                        }
-                        return new megengine.Model(metadata, model, match);
-                    });
-                }
-                default: {
-                    throw new megengine.Error("Unsupported MegEngine format '" + match.replace(/^megengine\./, '') + "'.");
+    async open(context, match) {
+        const metadata = await context.metadata('megengine-metadata.json');
+        switch (match) {
+            case 'megengine.tm': {
+                const obj = context.open('pkl');
+                return new megengine.Model(metadata, obj, match);
+            }
+            case 'megengine.mge': {
+                await context.require('./megengine-schema');
+                megengine.schema = flatbuffers.get('megengine').mgb.serialization.fbs;
+                let model = null;
+                const stream = context.stream;
+                try {
+                    const buffer = stream.peek(12);
+                    const tag = String.fromCharCode.apply(null, buffer);
+                    stream.skip(tag.startsWith('mgbtest0') ? 12 : 0);
+                    stream.skip(4);
+                    const reader = flatbuffers.BinaryReader.open(stream);
+                    model = megengine.schema.v2.Model.create(reader);
+                } catch (error) {
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new megengine.Error('File format is not megengine.Model (' + message.replace(/\.$/, '') + ').');
                 }
+                return new megengine.Model(metadata, model, match);
+            }
+            default: {
+                throw new megengine.Error("Unsupported MegEngine format '" + match.replace(/^megengine\./, '') + "'.");
             }
-        });
+        }
     }
 };