Changeset 15328 in webkit for trunk/JavaScriptCore/API/testapi.c
- Timestamp:
- Jul 10, 2006, 10:37:00 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/API/testapi.c
r15317 r15328 194 194 UNUSED_PARAM(context); 195 195 196 JSInternalStringRef propertyName Buf;197 198 propertyName Buf= JSInternalStringCreateUTF8("alwaysOne");199 JSPropertyListAdd(propertyList, object, propertyName Buf);200 JSInternalStringRelease(propertyName Buf);201 202 propertyName Buf= JSInternalStringCreateUTF8("myPropertyName");203 JSPropertyListAdd(propertyList, object, propertyName Buf);204 JSInternalStringRelease(propertyName Buf);196 JSInternalStringRef propertyName; 197 198 propertyName = JSInternalStringCreateUTF8("alwaysOne"); 199 JSPropertyListAdd(propertyList, object, propertyName); 200 JSInternalStringRelease(propertyName); 201 202 propertyName = JSInternalStringCreateUTF8("myPropertyName"); 203 JSPropertyListAdd(propertyList, object, propertyName); 204 JSInternalStringRelease(propertyName); 205 205 } 206 206 … … 303 303 JSObjectRef result = JSObjectMake(context, NULL, 0); 304 304 if (argc > 0) { 305 JSInternalStringRef value Buffer= JSInternalStringCreateUTF8("value");306 JSObjectSetProperty(context, result, value Buffer, argv[0], kJSPropertyAttributeNone);307 JSInternalStringRelease(value Buffer);305 JSInternalStringRef value = JSInternalStringCreateUTF8("value"); 306 JSObjectSetProperty(context, result, value, argv[0], kJSPropertyAttributeNone); 307 JSInternalStringRelease(value); 308 308 } 309 309 … … 330 330 331 331 // FIXME: test funny utf8 characters 332 JSInternalStringRef jsEmpty StringBuf= JSInternalStringCreateUTF8("");333 JSValueRef jsEmptyString = JSStringMake(jsEmpty StringBuf);334 335 JSInternalStringRef jsOne StringBuf= JSInternalStringCreateUTF8("1");336 JSValueRef jsOneString = JSStringMake(jsOne StringBuf);332 JSInternalStringRef jsEmptyIString = JSInternalStringCreateUTF8(""); 333 JSValueRef jsEmptyString = JSStringMake(jsEmptyIString); 334 335 JSInternalStringRef jsOneIString = JSInternalStringCreateUTF8("1"); 336 JSValueRef jsOneString = JSStringMake(jsOneIString); 337 337 338 338 #if defined(__APPLE__) … … 345 345 kCFAllocatorNull); 346 346 347 JSInternalStringRef jsCF StringBuf= JSInternalStringCreateCF(cfString);348 JSValueRef jsCFString = JSStringMake(jsCF StringBuf);347 JSInternalStringRef jsCFIString = JSInternalStringCreateCF(cfString); 348 JSValueRef jsCFString = JSStringMake(jsCFIString); 349 349 350 350 CFStringRef cfEmptyString = CFStringCreateWithCString(kCFAllocatorDefault, "", kCFStringEncodingUTF8); 351 351 352 JSInternalStringRef jsCFEmpty StringBuf= JSInternalStringCreateCF(cfEmptyString);353 JSValueRef jsCFEmptyString = JSStringMake(jsCFEmpty StringBuf);352 JSInternalStringRef jsCFEmptyIString = JSInternalStringCreateCF(cfEmptyString); 353 JSValueRef jsCFEmptyString = JSStringMake(jsCFEmptyIString); 354 354 355 355 CFIndex cfStringLength = CFStringGetLength(cfString); … … 358 358 CFRangeMake(0, cfStringLength), 359 359 buffer); 360 JSInternalStringRef jsCF StringWithCharactersBuf= JSInternalStringCreate(buffer, cfStringLength);361 JSValueRef jsCFStringWithCharacters = JSStringMake(jsCF StringWithCharactersBuf);362 363 JSInternalStringRef jsCFEmpty StringWithCharactersBuf= JSInternalStringCreate(buffer, CFStringGetLength(cfEmptyString));364 JSValueRef jsCFEmptyStringWithCharacters = JSStringMake(jsCFEmpty StringWithCharactersBuf);360 JSInternalStringRef jsCFIStringWithCharacters = JSInternalStringCreate(buffer, cfStringLength); 361 JSValueRef jsCFStringWithCharacters = JSStringMake(jsCFIStringWithCharacters); 362 363 JSInternalStringRef jsCFEmptyIStringWithCharacters = JSInternalStringCreate(buffer, CFStringGetLength(cfEmptyString)); 364 JSValueRef jsCFEmptyStringWithCharacters = JSStringMake(jsCFEmptyIStringWithCharacters); 365 365 #endif // __APPLE__ 366 366 … … 474 474 475 475 #if defined(__APPLE__) 476 CFStringRef cfJSString = CFStringCreateWithJSInternalString(kCFAllocatorDefault, jsCF StringBuf);477 CFStringRef cfJSEmptyString = CFStringCreateWithJSInternalString(kCFAllocatorDefault, jsCFEmpty StringBuf);476 CFStringRef cfJSString = CFStringCreateWithJSInternalString(kCFAllocatorDefault, jsCFIString); 477 CFStringRef cfJSEmptyString = CFStringCreateWithJSInternalString(kCFAllocatorDefault, jsCFEmptyIString); 478 478 assert(CFEqual(cfJSString, cfString)); 479 479 assert(CFEqual(cfJSEmptyString, cfEmptyString)); … … 496 496 assert(JSValueIsObject(globalObject)); 497 497 498 JSInternalStringRef goodSyntax Buf= JSInternalStringCreateUTF8("x = 1;");499 JSInternalStringRef badSyntax Buf= JSInternalStringCreateUTF8("x := 1;");500 assert(JSCheckSyntax(context, goodSyntax Buf, NULL, 0, NULL));501 assert(!JSCheckSyntax(context, badSyntax Buf, NULL, 0, NULL));498 JSInternalStringRef goodSyntax = JSInternalStringCreateUTF8("x = 1;"); 499 JSInternalStringRef badSyntax = JSInternalStringCreateUTF8("x := 1;"); 500 assert(JSCheckSyntax(context, goodSyntax, NULL, 0, NULL)); 501 assert(!JSCheckSyntax(context, badSyntax, NULL, 0, NULL)); 502 502 503 503 JSValueRef result; … … 506 506 JSObjectRef o; 507 507 508 result = JSEvaluate(context, goodSyntax Buf, NULL, NULL, 1, NULL);508 result = JSEvaluate(context, goodSyntax, NULL, NULL, 1, NULL); 509 509 assert(result); 510 510 assert(JSValueIsEqual(context, result, jsOne)); 511 511 512 512 exception = NULL; 513 result = JSEvaluate(context, badSyntax Buf, NULL, NULL, 1, &exception);513 result = JSEvaluate(context, badSyntax, NULL, NULL, 1, &exception); 514 514 assert(!result); 515 515 assert(JSValueIsObject(exception)); 516 516 517 JSInternalStringRelease(jsEmptyStringBuf); 518 JSInternalStringRelease(jsOneStringBuf); 519 #if defined(__APPLE__) 520 JSInternalStringRelease(jsCFStringBuf); 521 JSInternalStringRelease(jsCFEmptyStringBuf); 522 JSInternalStringRelease(jsCFStringWithCharactersBuf); 523 JSInternalStringRelease(jsCFEmptyStringWithCharactersBuf); 524 #endif // __APPLE__ 525 JSInternalStringRelease(goodSyntaxBuf); 526 JSInternalStringRelease(badSyntaxBuf); 527 528 JSInternalStringRef arrayBuf = JSInternalStringCreateUTF8("Array"); 529 v = JSObjectGetProperty(context, globalObject, arrayBuf); 517 JSInternalStringRef array = JSInternalStringCreateUTF8("Array"); 518 v = JSObjectGetProperty(context, globalObject, array); 530 519 assert(v); 531 520 JSObjectRef arrayConstructor = JSValueToObject(context, v); 532 JSInternalStringRelease(array Buf);521 JSInternalStringRelease(array); 533 522 result = JSObjectCallAsConstructor(context, arrayConstructor, 0, NULL, NULL); 534 523 assert(result); … … 536 525 assert(!JSValueIsInstanceOf(context, JSNullMake(), arrayConstructor)); 537 526 538 JSInternalStringRef functionB uf;527 JSInternalStringRef functionBody; 539 528 540 529 exception = NULL; 541 functionB uf= JSInternalStringCreateUTF8("rreturn Array;");542 JSInternalStringRef line Buf= JSInternalStringCreateUTF8("line");543 assert(!JSFunctionMakeWithBody(context, functionB uf, NULL, 1, &exception));530 functionBody = JSInternalStringCreateUTF8("rreturn Array;"); 531 JSInternalStringRef line = JSInternalStringCreateUTF8("line"); 532 assert(!JSFunctionMakeWithBody(context, functionBody, NULL, 1, &exception)); 544 533 assert(JSValueIsObject(exception)); 545 v = JSObjectGetProperty(context, JSValueToObject(context, exception), line Buf);534 v = JSObjectGetProperty(context, JSValueToObject(context, exception), line); 546 535 assert(v); 547 536 assertEqualsAsNumber(v, 2); // FIXME: Lexer::setCode bumps startingLineNumber by 1 -- we need to change internal callers so that it doesn't have to (saying '0' to mean '1' in the API would be really confusing -- it's really confusing internally, in fact) 548 JSInternalStringRelease(functionB uf);549 JSInternalStringRelease(line Buf);550 551 functionB uf= JSInternalStringCreateUTF8("return Array;");552 JSObjectRef function = JSFunctionMakeWithBody(context, functionB uf, NULL, 1, NULL);553 JSInternalStringRelease(functionB uf);537 JSInternalStringRelease(functionBody); 538 JSInternalStringRelease(line); 539 540 functionBody = JSInternalStringCreateUTF8("return Array;"); 541 JSObjectRef function = JSFunctionMakeWithBody(context, functionBody, NULL, 1, NULL); 542 JSInternalStringRelease(functionBody); 554 543 555 544 assert(JSObjectIsFunction(function)); … … 559 548 JSObjectRef myObject = JSObjectMake(context, MyObject_class(context), NULL); 560 549 assert(didInitialize); 561 JSInternalStringRef myObject Buf= JSInternalStringCreateUTF8("MyObject");562 JSObjectSetProperty(context, globalObject, myObject Buf, myObject, kJSPropertyAttributeNone);563 JSInternalStringRelease(myObject Buf);564 565 JSInternalStringRef print Buf= JSInternalStringCreateUTF8("print");550 JSInternalStringRef myObjectIString = JSInternalStringCreateUTF8("MyObject"); 551 JSObjectSetProperty(context, globalObject, myObjectIString, myObject, kJSPropertyAttributeNone); 552 JSInternalStringRelease(myObjectIString); 553 554 JSInternalStringRef print = JSInternalStringCreateUTF8("print"); 566 555 JSObjectRef printFunction = JSFunctionMake(context, print_callAsFunction); 567 JSObjectSetProperty(context, globalObject, print Buf, printFunction, kJSPropertyAttributeNone);568 JSInternalStringRelease(print Buf);556 JSObjectSetProperty(context, globalObject, print, printFunction, kJSPropertyAttributeNone); 557 JSInternalStringRelease(print); 569 558 570 559 assert(JSObjectSetPrivate(printFunction, (void*)1)); 571 560 assert(JSObjectGetPrivate(printFunction) == (void*)1); 572 561 573 JSInternalStringRef myConstructor Buf= JSInternalStringCreateUTF8("MyConstructor");562 JSInternalStringRef myConstructorIString = JSInternalStringCreateUTF8("MyConstructor"); 574 563 JSObjectRef myConstructor = JSConstructorMake(context, myConstructor_callAsConstructor); 575 JSObjectSetProperty(context, globalObject, myConstructor Buf, myConstructor, kJSPropertyAttributeNone);576 JSInternalStringRelease(myConstructor Buf);564 JSObjectSetProperty(context, globalObject, myConstructorIString, myConstructor, kJSPropertyAttributeNone); 565 JSInternalStringRelease(myConstructorIString); 577 566 578 567 assert(JSObjectSetPrivate(myConstructor, (void*)1)); … … 580 569 581 570 o = JSObjectMake(context, NULL, NULL); 582 JSObjectSetProperty(context, o, jsOne StringBuf, JSNumberMake(1), kJSPropertyAttributeNone);583 JSObjectSetProperty(context, o, jsCF StringBuf, JSNumberMake(1), kJSPropertyAttributeDontEnum);571 JSObjectSetProperty(context, o, jsOneIString, JSNumberMake(1), kJSPropertyAttributeNone); 572 JSObjectSetProperty(context, o, jsCFIString, JSNumberMake(1), kJSPropertyAttributeDontEnum); 584 573 JSPropertyEnumeratorRef enumerator = JSObjectCreatePropertyEnumerator(context, o); 585 574 int count = 0; … … 592 581 JSClassRelease(nullCallbacksClass); 593 582 594 functionB uf= JSInternalStringCreateUTF8("return this;");595 function = JSFunctionMakeWithBody(context, functionB uf, NULL, 1, NULL);596 JSInternalStringRelease(functionB uf);583 functionBody = JSInternalStringCreateUTF8("return this;"); 584 function = JSFunctionMakeWithBody(context, functionBody, NULL, 1, NULL); 585 JSInternalStringRelease(functionBody); 597 586 v = JSObjectCallAsFunction(context, function, NULL, 0, NULL, NULL); 598 587 assert(JSValueIsEqual(context, v, globalObject)); … … 600 589 assert(JSValueIsEqual(context, v, o)); 601 590 602 char* script = createStringWithContentsOfFile("testapi.js");603 JSInternalStringRef script Buf = JSInternalStringCreateUTF8(script);604 result = JSEvaluate(context, script Buf, NULL, NULL, 1, &exception);591 char* scriptUTF8 = createStringWithContentsOfFile("testapi.js"); 592 JSInternalStringRef script = JSInternalStringCreateUTF8(scriptUTF8); 593 result = JSEvaluate(context, script, NULL, NULL, 1, &exception); 605 594 if (JSValueIsUndefined(result)) 606 595 printf("PASS: Test script executed successfully.\n"); 607 596 else { 608 597 printf("FAIL: Test script returned unexcpected value:\n"); 609 JSInternalStringRef exception Buf= JSValueCopyStringValue(context, exception);610 CFStringRef exceptionCF = CFStringCreateWithJSInternalString(kCFAllocatorDefault, exception Buf);598 JSInternalStringRef exceptionIString = JSValueCopyStringValue(context, exception); 599 CFStringRef exceptionCF = CFStringCreateWithJSInternalString(kCFAllocatorDefault, exceptionIString); 611 600 CFShow(exceptionCF); 612 601 CFRelease(exceptionCF); 613 JSInternalStringRelease(exception Buf);614 } 615 JSInternalStringRelease(script Buf);616 free(script );602 JSInternalStringRelease(exceptionIString); 603 } 604 JSInternalStringRelease(script); 605 free(scriptUTF8); 617 606 618 607 // Allocate a few dummies so that at least one will be collected … … 622 611 assert(didFinalize); 623 612 613 JSInternalStringRelease(jsEmptyIString); 614 JSInternalStringRelease(jsOneIString); 615 #if defined(__APPLE__) 616 JSInternalStringRelease(jsCFIString); 617 JSInternalStringRelease(jsCFEmptyIString); 618 JSInternalStringRelease(jsCFIStringWithCharacters); 619 JSInternalStringRelease(jsCFEmptyIStringWithCharacters); 620 #endif // __APPLE__ 621 JSInternalStringRelease(goodSyntax); 622 JSInternalStringRelease(badSyntax); 623 624 624 JSContextDestroy(context); 625 625 printf("PASS: Program exited normally.\n");
Note:
See TracChangeset
for help on using the changeset viewer.