Oolite
Loading...
Searching...
No Matches
NSString(OOJavaScriptExtensions) Category Reference

#include <OOJavaScriptEngine.h>

Instance Methods

(NSString *) - escapedForJavaScriptLiteral
 
(jsval) - oo_jsValueInContext: [implementation]
 
(NSString *) - oo_jsClassName [implementation]
 

Class Methods

(NSString *) + stringWithJavaScriptParameters:count:inContext:
 
(NSString *) + concatenationOfStringsFromJavaScriptValues:count:separator:inContext:
 

Detailed Description

Definition at line 323 of file OOJavaScriptEngine.h.

Method Documentation

◆ concatenationOfStringsFromJavaScriptValues:count:separator:inContext:

+ (NSString *) concatenationOfStringsFromJavaScriptValues: (jsval *)  values
count: (size_t)  count
separator: (NSString *)  separator
inContext: (JSContext *)  context 

Definition at line 622 of file OOJavaScriptEngine.m.

1795 :(jsval *)values count:(size_t)count separator:(NSString *)separator inContext:(JSContext *)context
1796{
1798
1799 size_t i;
1800 NSMutableString *result = nil;
1801 NSString *element = nil;
1802
1803 if (count < 1) return nil;
1804 if (values == NULL) return NULL;
1805
1806 for (i = 0; i != count; ++i)
1807 {
1808 element = OOStringFromJSValueEvenIfNull(context, values[i]);
1809 if (result == nil) result = [[element mutableCopy] autorelease];
1810 else
1811 {
1812 if (separator != nil) [result appendString:separator];
1813 [result appendString:element];
1814 }
1815 }
1816
1817 return result;
1818
1820}
#define OOJS_PROFILE_EXIT
#define OOJS_PROFILE_ENTER
NSString * OOStringFromJSValueEvenIfNull(JSContext *context, jsval value)
unsigned count
return nil

References OOJSDumpStack(), OOJSPauseTimeLimiter(), OOJSResumeTimeLimiter(), and OOLog.

+ Here is the call graph for this function:

◆ escapedForJavaScriptLiteral

- (NSString *) escapedForJavaScriptLiteral

Definition at line 622 of file OOJavaScriptEngine.m.

1824{
1826
1827 NSMutableString *result = nil;
1828 NSUInteger i, length;
1829 unichar c;
1830 NSAutoreleasePool *pool = nil;
1831
1832 length = [self length];
1833 result = [NSMutableString stringWithCapacity:length];
1834
1835 // Not hugely efficient.
1836 pool = [[NSAutoreleasePool alloc] init];
1837 for (i = 0; i != length; ++i)
1838 {
1839 c = [self characterAtIndex:i];
1840 switch (c)
1841 {
1842 case '\\':
1843 [result appendString:@"\\\\"];
1844 break;
1845
1846 case '\b':
1847 [result appendString:@"\\b"];
1848 break;
1849
1850 case '\f':
1851 [result appendString:@"\\f"];
1852 break;
1853
1854 case '\n':
1855 [result appendString:@"\\n"];
1856 break;
1857
1858 case '\r':
1859 [result appendString:@"\\r"];
1860 break;
1861
1862 case '\t':
1863 [result appendString:@"\\t"];
1864 break;
1865
1866 case '\v':
1867 [result appendString:@"\\v"];
1868 break;
1869
1870 case '\'':
1871 [result appendString:@"\\\'"];
1872 break;
1873
1874 case '\"':
1875 [result appendString:@"\\\""];
1876 break;
1877
1878 default:
1879 [result appendString:[NSString stringWithCharacters:&c length:1]];
1880 }
1881 }
1882 [pool release];
1883 return result;
1884
1886}

◆ oo_jsClassName

- (NSString *) oo_jsClassName
implementation

Definition at line 622 of file OOJavaScriptEngine.m.

1890{
1891 return @"String";
1892}

◆ oo_jsValueInContext:

- (jsval) oo_jsValueInContext: (JSContext *)  context
implementation

Definition at line 622 of file OOJavaScriptEngine.m.

1765 :(JSContext *)context
1766{
1768
1769 size_t length = [self length];
1770 unichar *buffer = NULL;
1771 JSString *string = NULL;
1772
1773 if (length == 0)
1774 {
1775 jsval result = JS_GetEmptyStringValue(context);
1776 return result;
1777 }
1778 else
1779 {
1780 buffer = malloc(length * sizeof *buffer);
1781 if (buffer == NULL) return JSVAL_VOID;
1782
1783 [self getCharacters:buffer];
1784
1785 string = JS_NewUCStringCopyN(context, buffer, length);
1786
1787 free(buffer);
1788 return STRING_TO_JSVAL(string);
1789 }
1790
1792}
#define OOJS_PROFILE_EXIT_JSVAL

◆ stringWithJavaScriptParameters:count:inContext:

+ (NSString *) stringWithJavaScriptParameters: (jsval *)  params
count: (uintN)  count
inContext: (JSContext *)  context 

Definition at line 622 of file OOJavaScriptEngine.m.

1743 :(jsval *)params count:(uintN)count inContext:(JSContext *)context
1744{
1746
1747 if (params == NULL && count != 0) return nil;
1748
1749 uintN i;
1750 NSMutableString *result = [NSMutableString stringWithString:@"("];
1751
1752 for (i = 0; i < count; ++i)
1753 {
1754 if (i != 0) [result appendString:@", "];
1755 [result appendString:OOJSDescribeValue(context, params[i], NO)];
1756 }
1757
1758 [result appendString:@")"];
1759 return result;
1760
1762}

The documentation for this category was generated from the following files: