File: test-serialize.js

package info (click to toggle)
0ad 0.0.17-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 51,248 kB
  • ctags: 46,933
  • sloc: cpp: 223,208; ansic: 31,240; python: 16,343; perl: 4,083; sh: 1,011; makefile: 915; xml: 733; java: 621; ruby: 229; erlang: 53; sql: 40
file content (90 lines) | stat: -rw-r--r-- 2,100 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
function TestScript1_values() {}

TestScript1_values.prototype.Init = function() {
	this.x = +this.template.x;
	this.str = "this is a string";
	this.things = { a: 1, b: "2", c: [3, "4", [5, []]] };
};

TestScript1_values.prototype.GetX = function() {
//	print(uneval(this));
	return this.x;
};

Engine.RegisterComponentType(IID_Test1, "TestScript1_values", TestScript1_values);

// -------- //

function TestScript1_entity() {}

TestScript1_entity.prototype.GetX = function() {
	// Test that .entity is readonly
	try {
		delete this.entity;
		Engine.TS_FAIL("Missed exception");
	} catch (e) { }
	try {
		this.entity = -1;
		Engine.TS_FAIL("Missed exception");
	} catch (e) { }

	// and return the value
	return this.entity;
};

Engine.RegisterComponentType(IID_Test1, "TestScript1_entity", TestScript1_entity);

// -------- //

function TestScript1_nontree() {}

TestScript1_nontree.prototype.Init = function() {
	var n = [1];
	this.x = [n, n, null, { y: n }];
	this.x[2] = this.x;
};

TestScript1_nontree.prototype.GetX = function() {
//	print(uneval(this)+"\n");
	this.x[0][0] += 1;
	return this.x[0][0] + this.x[1][0] + this.x[2][0][0] + this.x[3].y[0];
}

Engine.RegisterComponentType(IID_Test1, "TestScript1_nontree", TestScript1_nontree);

// -------- //

function TestScript1_custom() {}

TestScript1_custom.prototype.Init = function() {
	this.y = 2;
};

TestScript1_custom.prototype.Serialize = function() {
	return {c:1};
};

Engine.RegisterComponentType(IID_Test1, "TestScript1_custom", TestScript1_custom);

// -------- //

function TestScript1_getter() {}

TestScript1_getter.prototype.Init = function() {
	this.x = 100;
	this.__defineGetter__('x', function () { print("FAIL\n"); die(); return 200; });
};

Engine.RegisterComponentType(IID_Test1, "TestScript1_getter", TestScript1_getter);

// -------- //

function TestScript1_consts() {}

TestScript1_consts.prototype.Schema = "<ref name='anything'/>";

TestScript1_consts.prototype.GetX = function() {
	return (+this.entity) + (+this.template.x);
};

Engine.RegisterComponentType(IID_Test1, "TestScript1_consts", TestScript1_consts);