Lines Matching refs:vm
52 bool IsEqual(EcmaVM *vm, Local<JSValueRef> jsArg0, Local<JSValueRef> jsArg1)
54 if (jsArg0->IsStrictEquals(vm, jsArg1)) {
56 } else if ((jsArg0->IsJSArray(vm) && jsArg1->IsJSArray(vm))) {
59 uint32_t length = arr0->Length(vm);
60 if (length != arr1->Length(vm)) {
64 Local<JSValueRef> arg0 = ArrayRef::GetValueAt(vm, arr0, i);
65 Local<JSValueRef> arg1 = ArrayRef::GetValueAt(vm, arr1, i);
66 if (!IsEqual(vm, arg0, arg1)) {
77 EcmaVM *vm = runtimeInfo->GetVM();
82 auto error = panda::Exception::TypeError(vm, StringRef::NewFromUtf8(vm, errStr.c_str()));
83 panda::JSNApi::ThrowException(vm, error);
84 return JSValueRef::Undefined(vm);
90 if (!IsEqual(vm, jsArg0, jsArg1)) {
91 std::string errStr = std::string("Assertion failed: ").append(jsArg0->ToString(vm)->ToString(vm))
92 .append(" != ").append(jsArg1->ToString(vm)->ToString(vm));
93 auto error = panda::Exception::TypeError(vm, StringRef::NewFromUtf8(vm, errStr.c_str()));
94 panda::JSNApi::ThrowException(vm, error);
97 return JSValueRef::Undefined(vm);
102 EcmaVM *vm = runtimeInfo->GetVM();
107 auto error = panda::Exception::TypeError(vm, StringRef::NewFromUtf8(vm, errStr.c_str()));
108 panda::JSNApi::ThrowException(vm, error);
109 return JSValueRef::Undefined(vm);
115 std::string errStr = std::string("Assertion failed: Expect ").append(jsArg0->ToString(vm)->ToString(vm))
117 auto error = panda::Exception::TypeError(vm, StringRef::NewFromUtf8(vm, errStr.c_str()));
118 panda::JSNApi::ThrowException(vm, error);
121 return JSValueRef::Undefined(vm);
126 EcmaVM *vm = runtimeInfo->GetVM();
129 return JSValueRef::Undefined(vm);
132 bool ExecutePandaFile(EcmaVM *vm, JSRuntimeOptions &runtimeOptions, std::string &files)
135 LocalScope scope(vm);
144 context1 = JSNApi::CreateJSContext(vm);
145 JSNApi::SwitchCurrentContext(vm, context1);
148 Local<ObjectRef> globalObj = JSNApi::GetGlobalObject(vm);
149 Local<FunctionRef> assertEqual = FunctionRef::New(vm, AssertEqual);
150 globalObj->Set(vm, StringRef::NewFromUtf8(vm, "assert_equal"), assertEqual);
151 Local<FunctionRef> assertTrue = FunctionRef::New(vm, AssertTrue);
152 globalObj->Set(vm, StringRef::NewFromUtf8(vm, "assert_true"), assertTrue);
153 Local<FunctionRef> assertUnreachable = FunctionRef::New(vm, AssertUnreachable);
154 globalObj->Set(vm, StringRef::NewFromUtf8(vm, "assert_unreachable"), assertUnreachable);
157 JSNApi::LoadAotFile(vm, "");
161 auto res = JSNApi::Execute(vm, fileName, entry);
170 JSNApi::DestroyJSContext(vm, context1);
213 EcmaVM *vm = JSNApi::CreateEcmaVM(runtimeOptions);
214 if (vm == nullptr) {
215 std::cerr << "Cannot Create vm" << std::endl;
220 JSNApi::SetBundle(vm, !isMergeAbc);
221 ret = ExecutePandaFile(vm, runtimeOptions, files);
223 JSNApi::DestroyJSVM(vm);