本文整理汇总了C++中JSValueMakeUndefined函数的典型用法代码示例。如果您正苦于以下问题:C++ JSValueMakeUndefined函数的具体用法?C++ JSValueMakeUndefined怎么用?C++ JSValueMakeUndefined使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了JSValueMakeUndefined函数的17个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: keyDownCallback
static JSValueRef keyDownCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
if (argumentCount < 1)
return JSValueMakeUndefined(context);
static const JSStringRef lengthProperty = JSStringCreateWithUTF8CString("length");
webkit_web_frame_layout(mainFrame);
// handle modifier keys.
int state = 0;
if (argumentCount > 1) {
JSObjectRef modifiersArray = JSValueToObject(context, arguments[1], exception);
if (modifiersArray) {
for (int i = 0; i < JSValueToNumber(context, JSObjectGetProperty(context, modifiersArray, lengthProperty, 0), 0); ++i) {
JSValueRef value = JSObjectGetPropertyAtIndex(context, modifiersArray, i, 0);
JSStringRef string = JSValueToStringCopy(context, value, 0);
if (JSStringIsEqualToUTF8CString(string, "ctrlKey"))
state |= GDK_CONTROL_MASK;
else if (JSStringIsEqualToUTF8CString(string, "shiftKey"))
state |= GDK_SHIFT_MASK;
else if (JSStringIsEqualToUTF8CString(string, "altKey"))
state |= GDK_MOD1_MASK;
JSStringRelease(string);
}
}
}
// handle location argument.
int location = DOM_KEY_LOCATION_STANDARD;
if (argumentCount > 2)
location = (int)JSValueToNumber(context, arguments[2], exception);
JSStringRef character = JSValueToStringCopy(context, arguments[0], exception);
g_return_val_if_fail((!exception || !*exception), JSValueMakeUndefined(context));
int gdkKeySym = GDK_VoidSymbol;
if (location == DOM_KEY_LOCATION_NUMPAD) {
if (JSStringIsEqualToUTF8CString(character, "leftArrow"))
gdkKeySym = GDK_KP_Left;
else if (JSStringIsEqualToUTF8CString(character, "rightArrow"))
gdkKeySym = GDK_KP_Right;
else if (JSStringIsEqualToUTF8CString(character, "upArrow"))
gdkKeySym = GDK_KP_Up;
else if (JSStringIsEqualToUTF8CString(character, "downArrow"))
gdkKeySym = GDK_KP_Down;
else if (JSStringIsEqualToUTF8CString(character, "pageUp"))
gdkKeySym = GDK_KP_Page_Up;
else if (JSStringIsEqualToUTF8CString(character, "pageDown"))
gdkKeySym = GDK_KP_Page_Down;
else if (JSStringIsEqualToUTF8CString(character, "home"))
gdkKeySym = GDK_KP_Home;
else if (JSStringIsEqualToUTF8CString(character, "end"))
gdkKeySym = GDK_KP_End;
else
// Assume we only get arrow/pgUp/pgDn/home/end keys with
// location=NUMPAD for now.
g_assert_not_reached();
} else {
if (JSStringIsEqualToUTF8CString(character, "leftArrow"))
gdkKeySym = GDK_Left;
else if (JSStringIsEqualToUTF8CString(character, "rightArrow"))
gdkKeySym = GDK_Right;
else if (JSStringIsEqualToUTF8CString(character, "upArrow"))
gdkKeySym = GDK_Up;
else if (JSStringIsEqualToUTF8CString(character, "downArrow"))
gdkKeySym = GDK_Down;
else if (JSStringIsEqualToUTF8CString(character, "pageUp"))
gdkKeySym = GDK_Page_Up;
else if (JSStringIsEqualToUTF8CString(character, "pageDown"))
gdkKeySym = GDK_Page_Down;
else if (JSStringIsEqualToUTF8CString(character, "home"))
gdkKeySym = GDK_Home;
else if (JSStringIsEqualToUTF8CString(character, "end"))
gdkKeySym = GDK_End;
else if (JSStringIsEqualToUTF8CString(character, "delete"))
gdkKeySym = GDK_BackSpace;
else if (JSStringIsEqualToUTF8CString(character, "F1"))
gdkKeySym = GDK_F1;
else if (JSStringIsEqualToUTF8CString(character, "F2"))
gdkKeySym = GDK_F2;
else if (JSStringIsEqualToUTF8CString(character, "F3"))
gdkKeySym = GDK_F3;
else if (JSStringIsEqualToUTF8CString(character, "F4"))
gdkKeySym = GDK_F4;
else if (JSStringIsEqualToUTF8CString(character, "F5"))
gdkKeySym = GDK_F5;
else if (JSStringIsEqualToUTF8CString(character, "F6"))
gdkKeySym = GDK_F6;
else if (JSStringIsEqualToUTF8CString(character, "F7"))
gdkKeySym = GDK_F7;
else if (JSStringIsEqualToUTF8CString(character, "F8"))
gdkKeySym = GDK_F8;
else if (JSStringIsEqualToUTF8CString(character, "F9"))
gdkKeySym = GDK_F9;
else if (JSStringIsEqualToUTF8CString(character, "F10"))
gdkKeySym = GDK_F10;
else if (JSStringIsEqualToUTF8CString(character, "F11"))
gdkKeySym = GDK_F11;
else if (JSStringIsEqualToUTF8CString(character, "F12"))
//.........这里部分代码省略.........
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:101,代码来源:EventSender.cpp
示例2: JSValueMakeUndefined
JSValueRef LayoutTestController::originsWithApplicationCache(JSContextRef context)
{
// FIXME: Implement to get origins that contain application caches.
return JSValueMakeUndefined(context);
}
开发者ID:sohocoke,项目名称:webkit,代码行数:5,代码来源:LayoutTestControllerGtk.cpp
示例3: keyDownCallback
static JSValueRef keyDownCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
if (argumentCount < 1)
return JSValueMakeUndefined(context);
static const JSStringRef lengthProperty = JSStringCreateWithUTF8CString("length");
COMPtr<IWebFramePrivate> framePrivate;
if (SUCCEEDED(frame->QueryInterface(&framePrivate)))
framePrivate->layout();
JSStringRef character = JSValueToStringCopy(context, arguments[0], exception);
ASSERT(!*exception);
int virtualKeyCode;
int charCode = 0;
int keyData = 1;
bool needsShiftKeyModifier = false;
if (JSStringIsEqualToUTF8CString(character, "leftArrow")) {
virtualKeyCode = VK_LEFT;
keyData += KF_EXTENDED << 16; // In this case, extended means "not keypad".
} else if (JSStringIsEqualToUTF8CString(character, "rightArrow")) {
virtualKeyCode = VK_RIGHT;
keyData += KF_EXTENDED << 16;
} else if (JSStringIsEqualToUTF8CString(character, "upArrow")) {
virtualKeyCode = VK_UP;
keyData += KF_EXTENDED << 16;
} else if (JSStringIsEqualToUTF8CString(character, "downArrow")) {
virtualKeyCode = VK_DOWN;
keyData += KF_EXTENDED << 16;
} else if (JSStringIsEqualToUTF8CString(character, "pageUp"))
virtualKeyCode = VK_PRIOR;
else if (JSStringIsEqualToUTF8CString(character, "pageDown"))
virtualKeyCode = VK_NEXT;
else if (JSStringIsEqualToUTF8CString(character, "home"))
virtualKeyCode = VK_HOME;
else if (JSStringIsEqualToUTF8CString(character, "end"))
virtualKeyCode = VK_END;
else if (JSStringIsEqualToUTF8CString(character, "insert"))
virtualKeyCode = VK_INSERT;
else if (JSStringIsEqualToUTF8CString(character, "delete"))
virtualKeyCode = VK_DELETE;
else if (JSStringIsEqualToUTF8CString(character, "printScreen"))
virtualKeyCode = VK_SNAPSHOT;
else if (JSStringIsEqualToUTF8CString(character, "menu"))
virtualKeyCode = VK_APPS;
else if (JSStringIsEqualToUTF8CString(character, "leftControl"))
virtualKeyCode = VK_LCONTROL;
else if (JSStringIsEqualToUTF8CString(character, "leftShift"))
virtualKeyCode = VK_LSHIFT;
else if (JSStringIsEqualToUTF8CString(character, "leftAlt"))
virtualKeyCode = VK_LMENU;
else if (JSStringIsEqualToUTF8CString(character, "rightControl"))
virtualKeyCode = VK_RCONTROL;
else if (JSStringIsEqualToUTF8CString(character, "rightShift"))
virtualKeyCode = VK_RSHIFT;
else if (JSStringIsEqualToUTF8CString(character, "rightAlt"))
virtualKeyCode = VK_RMENU;
else {
charCode = JSStringGetCharactersPtr(character)[0];
virtualKeyCode = LOBYTE(VkKeyScan(charCode));
if (WTF::isASCIIUpper(charCode))
needsShiftKeyModifier = true;
}
JSStringRelease(character);
BYTE keyState[256];
if (argumentCount > 1 || needsShiftKeyModifier) {
::GetKeyboardState(keyState);
BYTE newKeyState[256];
memcpy(newKeyState, keyState, sizeof(keyState));
if (needsShiftKeyModifier)
newKeyState[VK_SHIFT] = 0x80;
if (argumentCount > 1) {
JSObjectRef modifiersArray = JSValueToObject(context, arguments[1], 0);
if (modifiersArray) {
int modifiersCount = JSValueToNumber(context, JSObjectGetProperty(context, modifiersArray, lengthProperty, 0), 0);
for (int i = 0; i < modifiersCount; ++i) {
JSValueRef value = JSObjectGetPropertyAtIndex(context, modifiersArray, i, 0);
JSStringRef string = JSValueToStringCopy(context, value, 0);
if (JSStringIsEqualToUTF8CString(string, "ctrlKey") || JSStringIsEqualToUTF8CString(string, "addSelectionKey"))
newKeyState[VK_CONTROL] = 0x80;
else if (JSStringIsEqualToUTF8CString(string, "shiftKey") || JSStringIsEqualToUTF8CString(string, "rangeSelectionKey"))
newKeyState[VK_SHIFT] = 0x80;
else if (JSStringIsEqualToUTF8CString(string, "altKey"))
newKeyState[VK_MENU] = 0x80;
JSStringRelease(string);
}
}
}
::SetKeyboardState(newKeyState);
}
MSG msg = makeMsg(webViewWindow, (::GetKeyState(VK_MENU) & 0x8000) ? WM_SYSKEYDOWN : WM_KEYDOWN, virtualKeyCode, keyData);
if (virtualKeyCode != 255)
dispatchMessage(&msg);
//.........这里部分代码省略.........
开发者ID:dzhshf,项目名称:WebKit,代码行数:101,代码来源:EventSender.cpp
示例4: main
int main(int argc, char* argv[])
{
const char *scriptPath = "testapi.js";
if (argc > 1) {
scriptPath = argv[1];
}
// Test garbage collection with a fresh context
context = JSGlobalContextCreateInGroup(NULL, NULL);
TestInitializeFinalize = true;
testInitializeFinalize();
JSGlobalContextRelease(context);
TestInitializeFinalize = false;
ASSERT(Base_didFinalize);
JSClassDefinition globalObjectClassDefinition = kJSClassDefinitionEmpty;
globalObjectClassDefinition.initialize = globalObject_initialize;
globalObjectClassDefinition.staticValues = globalObject_staticValues;
globalObjectClassDefinition.staticFunctions = globalObject_staticFunctions;
globalObjectClassDefinition.attributes = kJSClassAttributeNoAutomaticPrototype;
JSClassRef globalObjectClass = JSClassCreate(&globalObjectClassDefinition);
context = JSGlobalContextCreateInGroup(NULL, globalObjectClass);
JSGlobalContextRetain(context);
JSGlobalContextRelease(context);
JSObjectRef globalObject = JSContextGetGlobalObject(context);
ASSERT(JSValueIsObject(context, globalObject));
JSValueRef jsUndefined = JSValueMakeUndefined(context);
JSValueRef jsNull = JSValueMakeNull(context);
JSValueRef jsTrue = JSValueMakeBoolean(context, true);
JSValueRef jsFalse = JSValueMakeBoolean(context, false);
JSValueRef jsZero = JSValueMakeNumber(context, 0);
JSValueRef jsOne = JSValueMakeNumber(context, 1);
JSValueRef jsOneThird = JSValueMakeNumber(context, 1.0 / 3.0);
JSObjectRef jsObjectNoProto = JSObjectMake(context, NULL, NULL);
JSObjectSetPrototype(context, jsObjectNoProto, JSValueMakeNull(context));
// FIXME: test funny utf8 characters
JSStringRef jsEmptyIString = JSStringCreateWithUTF8CString("");
JSValueRef jsEmptyString = JSValueMakeString(context, jsEmptyIString);
JSStringRef jsOneIString = JSStringCreateWithUTF8CString("1");
JSValueRef jsOneString = JSValueMakeString(context, jsOneIString);
UniChar singleUniChar = 65; // Capital A
CFMutableStringRef cfString =
CFStringCreateMutableWithExternalCharactersNoCopy(kCFAllocatorDefault,
&singleUniChar,
1,
1,
kCFAllocatorNull);
JSStringRef jsCFIString = JSStringCreateWithCFString(cfString);
JSValueRef jsCFString = JSValueMakeString(context, jsCFIString);
CFStringRef cfEmptyString = CFStringCreateWithCString(kCFAllocatorDefault, "", kCFStringEncodingUTF8);
JSStringRef jsCFEmptyIString = JSStringCreateWithCFString(cfEmptyString);
JSValueRef jsCFEmptyString = JSValueMakeString(context, jsCFEmptyIString);
CFIndex cfStringLength = CFStringGetLength(cfString);
UniChar* buffer = (UniChar*)malloc(cfStringLength * sizeof(UniChar));
CFStringGetCharacters(cfString,
CFRangeMake(0, cfStringLength),
buffer);
JSStringRef jsCFIStringWithCharacters = JSStringCreateWithCharacters((JSChar*)buffer, cfStringLength);
JSValueRef jsCFStringWithCharacters = JSValueMakeString(context, jsCFIStringWithCharacters);
JSStringRef jsCFEmptyIStringWithCharacters = JSStringCreateWithCharacters((JSChar*)buffer, CFStringGetLength(cfEmptyString));
free(buffer);
JSValueRef jsCFEmptyStringWithCharacters = JSValueMakeString(context, jsCFEmptyIStringWithCharacters);
ASSERT(JSValueGetType(context, jsUndefined) == kJSTypeUndefined);
ASSERT(JSValueGetType(context, jsNull) == kJSTypeNull);
ASSERT(JSValueGetType(context, jsTrue) == kJSTypeBoolean);
ASSERT(JSValueGetType(context, jsFalse) == kJSTypeBoolean);
ASSERT(JSValueGetType(context, jsZero) == kJSTypeNumber);
ASSERT(JSValueGetType(context, jsOne) == kJSTypeNumber);
ASSERT(JSValueGetType(context, jsOneThird) == kJSTypeNumber);
ASSERT(JSValueGetType(context, jsEmptyString) == kJSTypeString);
ASSERT(JSValueGetType(context, jsOneString) == kJSTypeString);
ASSERT(JSValueGetType(context, jsCFString) == kJSTypeString);
ASSERT(JSValueGetType(context, jsCFStringWithCharacters) == kJSTypeString);
ASSERT(JSValueGetType(context, jsCFEmptyString) == kJSTypeString);
ASSERT(JSValueGetType(context, jsCFEmptyStringWithCharacters) == kJSTypeString);
JSObjectRef myObject = JSObjectMake(context, MyObject_class(context), NULL);
JSStringRef myObjectIString = JSStringCreateWithUTF8CString("MyObject");
JSObjectSetProperty(context, globalObject, myObjectIString, myObject, kJSPropertyAttributeNone, NULL);
JSStringRelease(myObjectIString);
JSValueRef exception;
// Conversions that throw exceptions
exception = NULL;
ASSERT(NULL == JSValueToObject(context, jsNull, &exception));
ASSERT(exception);
//.........这里部分代码省略.........
开发者ID:acss,项目名称:owb-mirror,代码行数:101,代码来源:testapi.c
示例5: if
JSValueRef JSCInt16Array::setCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) {
struct JSCInt16ArrayPrivate* privData = (struct JSCInt16ArrayPrivate*)JSObjectGetPrivate(thisObj);
if (false) {
} else if (argumentCount == 2 &&
JSValueIsObject(ctx, arguments[0]) && JSValueIsObjectOfClass(ctx, arguments[0], JSCInt16Array::getTmpl()) &&
JSValueIsNumber(ctx, arguments[1])) {
uscxml::Int16Array* localArray = ((struct JSCInt16Array::JSCInt16ArrayPrivate*)JSObjectGetPrivate(JSValueToObject(ctx, arguments[0], exception)))->nativeObj;
unsigned long localOffset = (unsigned long)JSValueToNumber(ctx, arguments[1], exception);
privData->nativeObj->set(localArray, localOffset);
JSValueRef jscRetVal = JSValueMakeUndefined(ctx);
return jscRetVal;
} else if (argumentCount == 2 &&
JSValueIsNumber(ctx, arguments[0]) &&
JSValueIsNumber(ctx, arguments[1])) {
unsigned long localIndex = (unsigned long)JSValueToNumber(ctx, arguments[0], exception);
short localValue = (short)JSValueToNumber(ctx, arguments[1], exception);
privData->nativeObj->set(localIndex, localValue);
JSValueRef jscRetVal = JSValueMakeUndefined(ctx);
return jscRetVal;
} else if (argumentCount == 2 &&
JSValueIsObject(ctx, arguments[0]) &&
JSValueIsNumber(ctx, arguments[1])) {
std::vector<short> localArray;
JSValueRef localArrayItem;
unsigned int localArrayIndex = 0;
while((localArrayItem = JSObjectGetPropertyAtIndex(ctx, JSValueToObject(ctx, arguments[0], exception), localArrayIndex, exception))) {
if (JSValueIsUndefined(ctx, localArrayItem))
break;
if (JSValueIsNumber(ctx,localArrayItem))
localArray.push_back(JSValueToNumber(ctx, localArrayItem, exception));
localArrayIndex++;
}
unsigned long localOffset = (unsigned long)JSValueToNumber(ctx, arguments[1], exception);
privData->nativeObj->set(localArray, localOffset);
JSValueRef jscRetVal = JSValueMakeUndefined(ctx);
return jscRetVal;
} else if (argumentCount == 1 &&
JSValueIsObject(ctx, arguments[0]) && JSValueIsObjectOfClass(ctx, arguments[0], JSCInt16Array::getTmpl())) {
uscxml::Int16Array* localArray = ((struct JSCInt16Array::JSCInt16ArrayPrivate*)JSObjectGetPrivate(JSValueToObject(ctx, arguments[0], exception)))->nativeObj;
privData->nativeObj->set(localArray);
JSValueRef jscRetVal = JSValueMakeUndefined(ctx);
return jscRetVal;
} else if (argumentCount == 1 &&
JSValueIsObject(ctx, arguments[0])) {
std::vector<short> localArray;
JSValueRef localArrayItem;
unsigned int localArrayIndex = 0;
while((localArrayItem = JSObjectGetPropertyAtIndex(ctx, JSValueToObject(ctx, arguments[0], exception), localArrayIndex, exception))) {
if (JSValueIsUndefined(ctx, localArrayItem))
break;
if (JSValueIsNumber(ctx,localArrayItem))
localArray.push_back(JSValueToNumber(ctx, localArrayItem, exception));
localArrayIndex++;
}
privData->nativeObj->set(localArray);
JSValueRef jscRetVal = JSValueMakeUndefined(ctx);
return jscRetVal;
}
JSStringRef exceptionString = JSStringCreateWithUTF8CString("Parameter mismatch while calling set");
*exception = JSValueMakeString(ctx, exceptionString);
JSStringRelease(exceptionString);
return JSValueMakeUndefined(ctx);
}
开发者ID:bjqiwei,项目名称:uscxml,代码行数:80,代码来源:JSCInt16Array.cpp
示例6: collectCallback
static JSValueRef collectCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
GCController* controller = static_cast<GCController*>(JSObjectGetPrivate(thisObject));
controller->collect();
return JSValueMakeUndefined(context);
}
开发者ID:jackiekaon,项目名称:owb-mirror,代码行数:6,代码来源:GCController.cpp
示例7: logAccessibilityEventsCallback
static JSValueRef logAccessibilityEventsCallback(JSContextRef ctx, JSObjectRef, JSObjectRef thisObject, size_t, const JSValueRef[], JSValueRef*)
{
AccessibilityController* controller = static_cast<AccessibilityController*>(JSObjectGetPrivate(thisObject));
controller->setLogAccessibilityEvents(true);
return JSValueMakeUndefined(ctx);
}
开发者ID:Wrichik1999,项目名称:webkit,代码行数:6,代码来源:AccessibilityController.cpp
示例8: keyDownCallback
static JSValueRef keyDownCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
if (argumentCount < 1)
return JSValueMakeUndefined(context);
static JSStringRef ctrlKey = JSStringCreateWithUTF8CString("ctrlKey");
static JSStringRef shiftKey = JSStringCreateWithUTF8CString("shiftKey");
static JSStringRef altKey = JSStringCreateWithUTF8CString("altKey");
static JSStringRef metaKey = JSStringCreateWithUTF8CString("metaKey");
static JSStringRef lengthProperty = JSStringCreateWithUTF8CString("length");
COMPtr<IWebFramePrivate> framePrivate;
if (SUCCEEDED(frame->QueryInterface(&framePrivate)))
framePrivate->layout();
JSStringRef character = JSValueToStringCopy(context, arguments[0], exception);
ASSERT(!exception || !*exception);
int charCode = JSStringGetCharactersPtr(character)[0];
int virtualKeyCode = toupper(LOBYTE(VkKeyScan(charCode)));
JSStringRelease(character);
// Hack to map option-delete to ctrl-delete
// Remove this when we fix <rdar://problem/5102974> layout tests need a way to decide how to choose the appropriate modifier keys
bool convertOptionToCtrl = false;
if (virtualKeyCode == VK_DELETE || virtualKeyCode == VK_BACK)
convertOptionToCtrl = true;
BYTE keyState[256];
if (argumentCount > 1) {
::GetKeyboardState(keyState);
BYTE newKeyState[256];
memcpy(newKeyState, keyState, sizeof(keyState));
JSObjectRef modifiersArray = JSValueToObject(context, arguments[1], exception);
if (modifiersArray) {
int modifiersCount = JSValueToNumber(context, JSObjectGetProperty(context, modifiersArray, lengthProperty, 0), 0);
for (int i = 0; i < modifiersCount; ++i) {
JSValueRef value = JSObjectGetPropertyAtIndex(context, modifiersArray, i, 0);
JSStringRef string = JSValueToStringCopy(context, value, 0);
if (JSStringIsEqual(string, ctrlKey))
newKeyState[VK_CONTROL] = 0x80;
else if (JSStringIsEqual(string, shiftKey))
newKeyState[VK_SHIFT] = 0x80;
else if (JSStringIsEqual(string, altKey)) {
if (convertOptionToCtrl)
newKeyState[VK_CONTROL] = 0x80;
else
newKeyState[VK_MENU] = 0x80;
} else if (JSStringIsEqual(string, metaKey))
newKeyState[VK_MENU] = 0x80;
JSStringRelease(string);
}
}
::SetKeyboardState(newKeyState);
}
MSG msg = makeMsg(webViewWindow, WM_KEYDOWN, virtualKeyCode, 0);
dispatchMessage(&msg);
if (argumentCount > 1)
::SetKeyboardState(keyState);
return JSValueMakeUndefined(context);
}
开发者ID:gvsurenderreddy,项目名称:symbiandump-mw4,代码行数:67,代码来源:EventSender.cpp
示例9: removeNotificationListenerCallback
static JSValueRef removeNotificationListenerCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
AccessibilityController* controller = static_cast<AccessibilityController*>(JSObjectGetPrivate(thisObject));
controller->removeNotificationListener();
return JSValueMakeUndefined(context);
}
开发者ID:Wrichik1999,项目名称:webkit,代码行数:6,代码来源:AccessibilityController.cpp
示例10: removeSelectionCallback
static JSValueRef removeSelectionCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
toAXElement(thisObject)->removeSelection();
return JSValueMakeUndefined(context);
}
开发者ID:mikezit,项目名称:Webkit_Code,代码行数:5,代码来源:AccessibilityUIElement.cpp
示例11: context
jsc::Value::Value(Context &context) : context(context) {
value = JSValueMakeUndefined(context);
JSValueProtect(context, value);
}
开发者ID:sbennett912,项目名称:jsc,代码行数:4,代码来源:Value.cpp
示例12: leapForwardCallback
static JSValueRef leapForwardCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
// FIXME: Add proper support for forward leaps
return JSValueMakeUndefined(context);
}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:5,代码来源:EventSender.cpp
示例13: releaseForJSBuffer
/**
* release
*/
JSValueRef releaseForJSBuffer (JSContextRef ctx, JSObjectRef function, JSObjectRef object, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
ReleaseBuffer(object);
return JSValueMakeUndefined(ctx);
}
开发者ID:pec1985,项目名称:hyperloop,代码行数:8,代码来源:JSBuffer.cpp
示例14: putForJSBuffer
/**
* put
*/
JSValueRef putForJSBuffer (JSContextRef ctx, JSObjectRef function, JSObjectRef object, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
BUFFER(buffer);
ARGCOUNT(4);
JSValueRef bufValueRef = arguments[0];
if (!JSValueIsObject(ctx,bufValueRef))
{
JSStringRef string = JSStringCreateWithUTF8CString("first argument must be a buffer object");
JSValueRef message = JSValueMakeString(ctx, string);
JSStringRelease(string);
*exception = JSObjectMakeError(ctx, 1, &message, 0);
return JSValueMakeUndefined(ctx);
}
JSObjectRef bufObjectRef = JSValueToObject(ctx,bufValueRef,exception);
CHECK_EXCEPTION_UNDEFINED
JSBuffer *srcBuffer = (JSBuffer*)HyperloopGetPrivateObjectAsJSBuffer(bufObjectRef);
if (srcBuffer==nullptr)
{
JSStringRef string = JSStringCreateWithUTF8CString("first argument must be a buffer object (JSBuffer nullptr)");
JSValueRef message = JSValueMakeString(ctx, string);
JSStringRelease(string);
*exception = JSObjectMakeError(ctx, 1, &message, 0);
return JSValueMakeUndefined(ctx);
}
GET_NUMBER(1,srcIndex);
GET_NUMBER(2,srcLength);
GET_NUMBER(3,destIndex);
if (srcLength > srcBuffer->length)
{
JSStringRef string = JSStringCreateWithUTF8CString("source length passed in greater than source buffer length");
JSValueRef message = JSValueMakeString(ctx, string);
JSStringRelease(string);
*exception = JSObjectMakeError(ctx, 1, &message, 0);
return JSValueMakeUndefined(ctx);
}
if (srcLength <= 0)
{
JSStringRef string = JSStringCreateWithUTF8CString("source length must be greater than 0");
JSValueRef message = JSValueMakeString(ctx, string);
JSStringRelease(string);
*exception = JSObjectMakeError(ctx, 1, &message, 0);
return JSValueMakeUndefined(ctx);
}
throw ref new Exception(0, "JSBuffer's putForJSBuffer has not been implemented on Windows yet.");
/*void *src = &(srcBuffer->buffer[(int)srcIndex]);
size_t newsize = (buffer->length - (int)destIndex);
newsize = newsize + srcLength - newsize;
void *dest = &(buffer->buffer[(int)destIndex]);
if (newsize > buffer->length)
{
// new to grow it
void *copy = malloc(buffer->length);
size_t copylen = buffer->length;
memcpy(copy, buffer->buffer, copylen);
free(buffer->buffer);
buffer->buffer = malloc(newsize);
buffer->length = newsize;
memcpy(buffer->buffer,copy,copylen);
}
memcpy(dest, src, (int)srcLength);
return object;*/
}
开发者ID:pec1985,项目名称:hyperloop,代码行数:71,代码来源:JSBuffer.cpp
示例15: callMethod
static JSValueRef callMethod(JSContextRef jscore_ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception)
{
pdf_jsimp *imp;
fz_context *ctx;
pdf_jsimp_obj *res = NULL;
JSValueRef resref = NULL;
int i;
pdf_jsimp_obj **args = NULL;
pdf_jsimp_method *meth = JSObjectGetPrivate(function);
priv_data *pdata = JSObjectGetPrivate(thisObject);
if (meth == NULL)
{
/*
The attempt to store the method pointer as private data failed, so we
turn the function into a string, which will have the form "function name() xxx",
and then lookup the name.
*/
char name[STRING_BUF_SIZE];
char *np;
char *bp;
JSStringRef jname = JSValueToStringCopy(jscore_ctx, function, NULL);
prop *p;
JSStringGetUTF8CString(jname, name, STRING_BUF_SIZE);
if (strlen(name) >= FUNCTION_PREAMBLE_LEN)
{
np = name + FUNCTION_PREAMBLE_LEN; /* strlen("function "); */
bp = strchr(np, '(');
if (bp)
*bp = 0;
p = find_prop(pdata->type->props, np);
if (p && p->type == PROP_FN)
{
meth = p->u.fn.meth;
}
}
JSStringRelease(jname);
}
if (meth == NULL || pdata == NULL)
return JSValueMakeUndefined(jscore_ctx);
imp = pdata->type->imp;
ctx = imp->ctx;
fz_var(args);
fz_var(res);
fz_try(ctx)
{
args = fz_malloc_array(ctx, argumentCount, sizeof(pdf_jsimp_obj));
for (i = 0; i < argumentCount; i++)
args[i] = wrap_val(imp, arguments[i]);
res = meth(imp->nat_ctx, pdata->natobj, argumentCount, args);
if (res)
resref = res->ref;
}
fz_always(ctx)
{
if (args)
{
for (i = 0; i < argumentCount; i++)
pdf_jsimp_drop_obj(imp, args[i]);
fz_free(ctx, args);
}
pdf_jsimp_drop_obj(imp, res);
}
fz_catch(ctx)
{
return JSValueMakeUndefined(jscore_ctx);
}
return resref;
}
开发者ID:azaleafisitania,项目名称:sumatrapdf,代码行数:72,代码来源:pdf-jsimp-jscore.c
示例16: beginDragWithFilesCallback
static JSValueRef beginDragWithFilesCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
if (argumentCount < 1)
return JSValueMakeUndefined(context);
JSObjectRef filesArray = JSValueToObject(context, arguments[0], 0);
if (!filesArray)
return JSValueMakeUndefined(context);
JSStringRef lengthProperty = JSStringCreateWithUTF8CString("length");
Vector<UChar> files;
int filesCount = JSValueToNumber(context, JSObjectGetProperty(context, filesArray, lengthProperty, 0), 0);
for (int i = 0; i < filesCount; ++i) {
JSValueRef value = JSObjectGetPropertyAtIndex(context, filesArray, i, 0);
JSStringRef file = JSValueToStringCopy(context, value, 0);
files.append(JSStringGetCharactersPtr(file), JSStringGetLength(file));
files.append(0);
JSStringRelease(file);
}
if (files.isEmpty())
return JSValueMakeUndefined(context);
// We should append "0" in the end of |files| so that |DragQueryFileW| retrieved the number of files correctly from Ole Clipboard.
files.append(0);
STGMEDIUM hDropMedium = {0};
hDropMedium.tymed = TYMED_HGLOBAL;
SIZE_T dropFilesSize = sizeof(DROPFILES) + (sizeof(WCHAR) * files.size());
hDropMedium.hGlobal = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, dropFilesSize);
DROPFILES* dropFiles = reinterpret_cast<DROPFILES*>(GlobalLock(hDropMedium.hGlobal));
memset(dropFiles, 0, sizeof(DROPFILES));
dropFiles->pFiles = sizeof(DROPFILES);
dropFiles->fWide = TRUE;
UChar* data = reinterpret_cast<UChar*>(reinterpret_cast<BYTE*>(dropFiles) + sizeof(DROPFILES));
for (size_t i = 0; i < files.size(); ++i)
data[i] = files[i];
GlobalUnlock(hDropMedium.hGlobal);
STGMEDIUM hFileNameMedium = {0};
hFileNameMedium.tymed = TYMED_HGLOBAL;
SIZE_T hFileNameSize = sizeof(WCHAR) * files.size();
hFileNameMedium.hGlobal = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, hFileNameSize);
WCHAR* hFileName = static_cast<WCHAR*>(GlobalLock(hFileNameMedium.hGlobal));
for (size_t i = 0; i < files.size(); i++)
hFileName[i] = files[i];
GlobalUnlock(hFileNameMedium.hGlobal);
if (draggingInfo) {
delete draggingInfo;
draggingInfo = 0;
}
COMPtr<DRTDataObject> dataObeject;
COMPtr<IDropSource> source;
if (FAILED(DRTDataObject::createInstance(&dataObeject)))
dataObeject = 0;
if (FAILED(DRTDropSource::createInstance(&source)))
source = 0;
if (dataObeject && source) {
draggingInfo = new DraggingInfo(dataObeject.get(), source.get());
draggingInfo->setPerformedDropEffect(DROPEFFECT_COPY);
}
if (draggingInfo) {
draggingInfo->dataObject()->SetData(cfHDropFormat(), &hDropMedium, FALSE);
draggingInfo->dataObject()->SetData(cfFileNameWFormat(), &hFileNameMedium, FALSE);
draggingInfo->dataObject()->SetData(cfUrlWFormat(), &hFileNameMedium, FALSE);
OleSetClipboard(draggingInfo->dataObject());
down = true;
}
JSStringRelease(lengthProperty);
return JSValueMakeUndefined(context);
}
开发者ID:dzhshf,项目名称:WebKit,代码行数:79,代码来源:EventSender.cpp
示例17: JSStringCreateWithUTF8CString
JSValueRef JSCDocument::evaluateCustomCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef object, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) {
struct JSCDocumentPrivate* privData = (struct JSCDocumentPrivate*)JSObjectGetPrivate(object);
if (!privData->dom || !privData->dom->xpath) return JSValueMakeUndefined(ctx);
if (argumentCount < 1) {
std::string errorMsg = "Wrong number of arguments in evaluate";
JSStringRef string = JSStringCreateWithUTF8CString(errorMsg.c_str());
JSValueRef exceptionString = JSValueMakeString(ctx, string);
JSStringRelease(string);
*exception = JSValueToObject(ctx, exceptionString, NULL);
return JSValueMakeUndefined(ctx);
}
// make sure first argument is a string
if (!JSValueIsString(ctx, arguments[0])) {
std::string errorMsg = "Expected xpath expression as first argument";
JSStringRef string = JSStringCreateWithUTF8CString(errorMsg.c_str());
JSValueRef exceptionString = JSValueMakeString(ctx, string);
JSStringRelease(string);
*exception = JSValueToObject(ctx, exceptionString, NULL);
return JSValueMakeUndefined(ctx);
}
JSStringRef stringReflocalXPath = JSValueToStringCopy(ctx, arguments[0], NULL);
size_t localXPathMaxSize = JSStringGetMaximumUTF8CStringSize(stringReflocalXPath);
char* localXPathBuffer = new char[localXPathMaxSize];
JSStringGetUTF8CString(stringReflocalXPath, localXPathBuffer, localXPathMaxSize);
std::string localXPath(localXPathBuffer);
JSStringRelease(stringReflocalXPath);
free(localXPathBuffer);
JSClassRef arbaicaRetClass = JSCXPathResult::getTmpl();
XPath::XPathValue<std::string>* retVal;
try {
if (argumentCount > 1) {
// make sure second argument is a node
if (!JSValueIsObject(ctx, arguments[1])) {
std::string errorMsg = "Second argument is not of type node";
JSStringRef string = JSStringCreateWithUTF8CString(errorMsg.c_str());
JSValueRef exceptionString = JSValueMakeString(ctx, string);
JSStringRelease(string);
*exception = JSValueToObject(ctx, exceptionString, NULL);
return JSValueMakeUndefined(ctx);
}
Arabica::DOM::Node<std::string>* localContextNode = (Arabica::DOM::Node<std::string>*)JSObjectGetPrivate(JSValueToObject(ctx, arguments[1], NULL));
retVal = new XPath::XPathValue<std::string>(privData->dom->xpath->evaluate(localXPath, *localContextNode));
} else {
retVal = new XPath::XPathValue<std::string>(privData->dom->xpath->evaluate(localXPath, *privData->nativeObj));
}
} catch (std::runtime_error e) {
std::cout << e.what() << std::endl;
return JSValueMakeUndefined(ctx);
}
struct JSCXPathResult::JSCXPathResultPrivate* retPrivData = new JSCXPathResult::JSCXPathResultPrivate();
retPrivData->dom = privData->dom;
retPrivData->nativeObj = retVal;
JSObjectRef arbaicaRetObj = JSObjectMake(ctx, arbaicaRetClass, retPrivData);
return arbaicaRetObj;
#if 0
if (args.Length() < 1)
throw V8Exception("Wrong number of arguments in evaluate");
// if (!((V8Node::hasInstance(args[1])) && (V8XPathResult::hasInstance(args[3]))))
// throw V8Exception("Parameter mismatch while calling evaluate");
v8::Local<v8::Object> self = args.Holder();
V8DocumentPrivate* privData = V8DOM::toClassPtr<V8DocumentPrivate >(self->GetInternalField(0));
v8::String::AsciiValue localExpression(args[0]);
XPath::XPathValue<std::string>* retVal;
if (args.Length() > 1) {
Arabica::DOM::Node<std::string>* localContextNode = V8DOM::toClassPtr<Arabica::DOM::Node<std::string> >(args[1]->ToObject()->GetInternalField(0));
retVal = new XPath::XPathValue<std::string>(privData->dom->xpath->evaluate(*localExpression, *localContextNode));
} else {
retVal = new XPath::XPathValue<std::string>(privData->dom->xpath->evaluate(*localExpression, *privData->nativeObj));
}
v8::Handle<v8::Function> retCtor = V8XPathResult::getTmpl()->GetFunction();
v8::Persistent<v8::Object> retObj = v8::Persistent<v8::Object>::New(retCtor->NewInstance());
V8XPathResult::V8XPathResultPrivate* retPrivData = new V8XPathResult::V8XPathResultPrivate();
retPrivData->dom = privData->dom;
retPrivData->nativeObj = retVal;
retObj->SetInternalField(0, V8DOM::toExternal(retPrivData));
retObj.MakeWeak(0, V8XPathResult::jsDestructor);
return retObj;
#endif
}
开发者ID:bjqiwei,项目名称:uscxml,代码行数:96,代码来源:JSCDocumentCustom.cpp
注:本文中的JSValueMakeUndefined函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论