Oolite
Loading...
Searching...
No Matches
OOJSValue Class Reference

#include <OOJavaScriptEngine.h>

+ Inheritance diagram for OOJSValue:
+ Collaboration diagram for OOJSValue:

Instance Methods

(id) - initWithJSValue:inContext:
 
(id) - initWithJSObject:inContext:
 
(void) - deleteJSValue [implementation]
 
(void) - dealloc [implementation]
 
(jsval) - oo_jsValueInContext: [implementation]
 

Class Methods

(id) + valueWithJSValue:inContext:
 
(id) + valueWithJSObject:inContext:
 

Protected Attributes

jsval _val
 

Detailed Description

Definition at line 262 of file OOJavaScriptEngine.h.

Method Documentation

◆ dealloc

- (void) dealloc
implementation

Definition at line 622 of file OOJavaScriptEngine.m.

1528{
1529 [self deleteJSValue];
1530 [super dealloc];
1531}

◆ deleteJSValue

- (void) deleteJSValue
implementation

Definition at line 622 of file OOJavaScriptEngine.m.

1512{
1513 if (!JSVAL_IS_VOID(_val))
1514 {
1515 JSContext *context = OOJSAcquireContext();
1516 JS_RemoveValueRoot(context, &_val);
1517 OOJSRelinquishContext(context);
1518
1519 _val = JSVAL_VOID;
1520 [[NSNotificationCenter defaultCenter] removeObserver:self
1521 name:kOOJavaScriptEngineWillResetNotification
1523 }
1524}
OOINLINE JSContext * OOJSAcquireContext(void)
OOINLINE void OOJSRelinquishContext(JSContext *context)
OOJavaScriptEngine * sharedEngine()

◆ initWithJSObject:inContext:

- (id) initWithJSObject: (JSObject *)  object
inContext: (JSContext *)  context 

Definition at line 622 of file OOJavaScriptEngine.m.

1505 :(JSObject *)object inContext:(JSContext *)context
1506{
1507 return [self initWithJSValue:OBJECT_TO_JSVAL(object) inContext:context];
1508}

◆ initWithJSValue:inContext:

- (id) initWithJSValue: (jsval)  value
inContext: (JSContext *)  context 

Definition at line 622 of file OOJavaScriptEngine.m.

1472 :(jsval)value inContext:(JSContext *)context
1473{
1475
1476 self = [super init];
1477 if (self != nil)
1478 {
1479 BOOL tempCtxt = NO;
1480 if (context == NULL)
1481 {
1482 context = OOJSAcquireContext();
1483 tempCtxt = YES;
1484 }
1485
1486 _val = value;
1487 if (!JSVAL_IS_VOID(_val))
1488 {
1489 JS_AddNamedValueRoot(context, &_val, "OOJSValue");
1490
1491 [[NSNotificationCenter defaultCenter] addObserver:self
1492 selector:@selector(deleteJSValue)
1493 name:kOOJavaScriptEngineWillResetNotification
1495 }
1496
1497 if (tempCtxt) OOJSRelinquishContext(context);
1498 }
1499 return self;
1500
1502}
#define OOJS_PROFILE_EXIT
#define OOJS_PROFILE_ENTER
return nil

◆ oo_jsValueInContext:

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

Definition at line 622 of file OOJavaScriptEngine.m.

1534 :(JSContext *)context
1535{
1536 return _val;
1537}

◆ valueWithJSObject:inContext:

+ (id) valueWithJSObject: (JSObject *)  object
inContext: (JSContext *)  context 

Definition at line 622 of file OOJavaScriptEngine.m.

1462 :(JSObject *)object inContext:(JSContext *)context
1463{
1465
1466 return [[[self alloc] initWithJSObject:object inContext:context] autorelease];
1467
1469}

Referenced by JSSpecialFunctionsObjectWrapper().

+ Here is the caller graph for this function:

◆ valueWithJSValue:inContext:

+ (id) valueWithJSValue: (jsval)  value
inContext: (JSContext *)  context 

Definition at line 622 of file OOJavaScriptEngine.m.

1452 :(jsval)value inContext:(JSContext *)context
1453{
1455
1456 return [[[self alloc] initWithJSValue:value inContext:context] autorelease];
1457
1459}

Member Data Documentation

◆ _val

- (jsval) _val
protected

Definition at line 264 of file OOJavaScriptEngine.h.


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