mirror of
https://github.com/status-im/realm-js.git
synced 2025-01-23 12:58:55 +00:00
clean up prototype and defaults state
This commit is contained in:
parent
69bf42c4f4
commit
5edb205978
@ -31,3 +31,4 @@ realm::Schema RJSParseSchema(JSContextRef ctx, JSObjectRef jsonObject);
|
||||
|
||||
JSValueRef RJSPrototypeForClassName(const std::string &className);
|
||||
realm::ObjectDefaults &RJSDefaultsForClassName(const std::string &className);
|
||||
void RJSSchemaClearState(JSContextRef ctx);
|
@ -55,6 +55,20 @@ JSValueRef RJSPrototypeForClassName(const std::string &className) {
|
||||
return s_prototypes[className];
|
||||
}
|
||||
|
||||
void RJSSchemaClearState(JSContextRef ctx) {
|
||||
for (auto prototype : s_prototypes) {
|
||||
JSValueUnprotect(ctx, prototype.second);
|
||||
}
|
||||
s_prototypes.clear();
|
||||
|
||||
for (auto defaults : s_defaults) {
|
||||
for (auto value : defaults.second) {
|
||||
JSValueUnprotect(ctx, value.second);
|
||||
}
|
||||
}
|
||||
s_defaults.clear();
|
||||
}
|
||||
|
||||
static inline Property RJSParseProperty(JSContextRef ctx, JSObjectRef propertyObject) {
|
||||
static JSStringRef nameString = JSStringCreateWithUTF8CString("name");
|
||||
static JSStringRef typeString = JSStringCreateWithUTF8CString("type");
|
||||
|
@ -20,6 +20,7 @@
|
||||
#import "RJSRealm.hpp"
|
||||
#import "RJSObject.hpp"
|
||||
#import "RJSUtil.hpp"
|
||||
#import "RJSSchema.hpp"
|
||||
|
||||
#include "shared_realm.hpp"
|
||||
|
||||
@ -57,6 +58,7 @@ NSString *RealmFileDirectory() {
|
||||
|
||||
static JSValueRef ClearTestState(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) {
|
||||
[RealmJS clearTestState];
|
||||
RJSSchemaClearState(ctx);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user