Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: lib/typedObjects.js

Issue 6213754488356864: Issue 258 - [Typed objects] Implement a garbage collection mechanism (Closed)
Patch Set: Updated inline documentation Created April 28, 2014, 8:22 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | lib/typedObjects/objectTypes.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <http://adblockplus.org/>, 2 * This file is part of Adblock Plus <http://adblockplus.org/>,
3 * Copyright (C) 2006-2014 Eyeo GmbH 3 * Copyright (C) 2006-2014 Eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 27 matching lines...) Expand all
38 * 38 *
39 * The first parameter to ObjectType defines object properties and methods. A 39 * The first parameter to ObjectType defines object properties and methods. A
40 * name can either be associted with a type (property) or function (method). 40 * name can either be associted with a type (property) or function (method).
41 * Numeric value types from the ECMAScript Harmony proposal are predefined as 41 * Numeric value types from the ECMAScript Harmony proposal are predefined as
42 * well as "boolean" which is an alias for uint8. In addition to that, already 42 * well as "boolean" which is an alias for uint8. In addition to that, already
43 * defined object types can be used. 43 * defined object types can be used.
44 * 44 *
45 * The optional second parameter sets type metadata: 45 * The optional second parameter sets type metadata:
46 * 46 *
47 * constructor: function that will be called whenever an object of the type 47 * constructor: function that will be called whenever an object of the type
48 * is created. 48 * is created. Parameters supplied during object creation will be passed
49 * to the constructor.
50 * destructor: function that will be called when an object of the type is
51 * freed.
49 * bufferSize: number of objects that should be placed into a single typed 52 * bufferSize: number of objects that should be placed into a single typed
50 * buffer (by default 128). 53 * buffer (by default 128).
51 * 54 *
52 * Creating an object instance 55 * Creating and releasing an object instance
53 * --------------------------- 56 * -----------------------------------------
54 * 57 *
55 * var point = Point2D(5, 10); 58 * var point = Point2D(5, 10);
56 * point.rotate(10); 59 * point.rotate(10);
57 * Console.log(point.x + ", " + point.y); 60 * console.log(point.x + ", " + point.y);
58 * 61 *
59 * The parameters 5 and 10 will be passed to the constructor function defined 62 * The parameters 5 and 10 will be passed to the constructor function defined
60 * for this type. 63 * for this type.
61 * 64 *
65 * Once the object instance is no longer needed it should be released:
66 *
67 * point.release();
68 *
69 * This will not necessarily free the object but merely decrease its reference
70 * count. The object will only be freed when its reference count reaches zero.
71 *
72 * If you need to hold on to an object that you didn't create (e.g. a function
73 * parameter) you have to call object.retain() to increase its reference count.
74 * Once the object is no longer needed you should call object.release().
75 * However, it is preferable to use references from other typed objects to hold
76 * on to an object - the necessary reference count increases and decreases will
77 * be performed automatically then.
78 *
62 * Type inheritance 79 * Type inheritance
63 * ---------------- 80 * ----------------
64 * 81 *
65 * var Point3D = Point2D.extend({ 82 * var Point3D = Point2D.extend({
66 * z: uint32 83 * z: uint32
67 * }, { 84 * }, {
68 * constructor: function(super_, x, y, z) 85 * constructor: function(super_, x, y, z)
69 * { 86 * {
70 * super_(x, y); 87 * super_(x, y);
71 * ... 88 * ...
(...skipping 24 matching lines...) Expand all
96 113
97 function forwardExports(module) 114 function forwardExports(module)
98 { 115 {
99 let moduleExports = require(module); 116 let moduleExports = require(module);
100 for (let key in moduleExports) 117 for (let key in moduleExports)
101 exports[key] = moduleExports[key]; 118 exports[key] = moduleExports[key];
102 } 119 }
103 120
104 forwardExports("typedObjects/primitiveTypes"); 121 forwardExports("typedObjects/primitiveTypes");
105 forwardExports("typedObjects/objectTypes"); 122 forwardExports("typedObjects/objectTypes");
OLDNEW
« no previous file with comments | « no previous file | lib/typedObjects/objectTypes.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld