[gjs] legacy class: Reinstate Lang.getMetaClass()



commit d9218eb6859025ef0555b46bf781460ff968e360
Author: Philip Chimento <philip endlessm com>
Date:   Wed Aug 9 16:14:17 2017 +0200

    legacy class: Reinstate Lang.getMetaClass()
    
    Some client code was using this, so we should keep it as public API. Add
    a trivial test to make sure it doesn't break in the future.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=785652

 installed-tests/js/testLegacyClass.js |    6 ++++++
 modules/lang.js                       |    2 +-
 2 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/installed-tests/js/testLegacyClass.js b/installed-tests/js/testLegacyClass.js
index 6805532..ac59e8e 100644
--- a/installed-tests/js/testLegacyClass.js
+++ b/installed-tests/js/testLegacyClass.js
@@ -114,6 +114,12 @@ describe('A metaclass', function () {
         expect(instance).toEqual(jasmine.objectContaining({ one: 1, two: 2, three: 3 }));
         expect(instance.dynamic_method()).toEqual(73);
     });
+
+    it('can be detected with Lang.getMetaClass', function () {
+        expect(Lang.getMetaClass({
+            Extends: CustomMetaOne,
+        })).toBe(MetaClass);
+    });
 });
 
 const MagicBase = new Lang.Class({
diff --git a/modules/lang.js b/modules/lang.js
index da6d0dc..54b5dbd 100644
--- a/modules/lang.js
+++ b/modules/lang.js
@@ -23,7 +23,7 @@ countProperties */
 
 // Utilities that are "meta-language" things like manipulating object props
 
-var {Class, Interface} = imports._legacy;
+var {Class, Interface, getMetaClass} = imports._legacy;
 
 function countProperties(obj) {
     let count = 0;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]