
###### JerryScript revision
2faafa4

###### Build platform
Ubuntu 18.04.5 LTS(Linux 4.15.0-119-generic x86_64)

###### Build steps
```
./tools/build.py --clean --debug --compile-flag=-fsanitize=address \
--compile-flag=-m32 --compile-flag=-fno-omit-frame-pointer \
--compile-flag=-fno-common --compile-flag=-g --strip=off \
--system-allocator=on --logging=on --linker-flag=-fuse-ld=gold \
--error-messages=on --profile=es2015-subset  --builddir=$PWD/build
```

###### Test case
```

var obj0 = {};
var obj1 = {};
var obj2 = [];
var obj3 = new Proxy(Function(), { get: function(o, k) { get.push(k); return o[k]; }});
var obj4 = new Error();
var obj5 = JSON;

var values = [
    [ obj0, 0 ],
    [ obj1, 1 ],
    [ obj2, 2 ],
    [ obj3, 3 ],
    [ obj4, 4 ],
    [ obj5, 5 ],
    [ obj4, 4 ],
    [ obj3, 3 ],
    [ obj2, 2 ],
    [ obj1, 1 ],
    [ obj0, 0 ],
];
var map = new WeakMap(values);
```

###### Output
```
ICE: Assertion 'uint_ptr % JMEM_ALIGNMENT == 0' failed at /root/jerryscript/jerry-core/jmem/jmem-allocator.c(jmem_decompress_pointer):222.
Error: ERR_FAILED_INTERNAL_ASSERTION
Aborted
```

Credits: Found by chong from OWL337.
Assertion 'uint_ptr % JMEM_ALIGNMENT == 0' in jmem_decompress_pointer
This is a GitHub Issue
repo:jerryscript
owner:jerryscript-project
Title : Assertion 'uint_ptr % JMEM_ALIGNMENT == 0' in jmem_decompress_pointer
Issue date:

--- start body ---

###### JerryScript revision
2faafa4

###### Build platform
Ubuntu 18.04.5 LTS(Linux 4.15.0-119-generic x86_64)

###### Build steps
```
./tools/build.py --clean --debug --compile-flag=-fsanitize=address \
--compile-flag=-m32 --compile-flag=-fno-omit-frame-pointer \
--compile-flag=-fno-common --compile-flag=-g --strip=off \
--system-allocator=on --logging=on --linker-flag=-fuse-ld=gold \
--error-messages=on --profile=es2015-subset  --builddir=$PWD/build
```

###### Test case
```

var obj0 = {};
var obj1 = {};
var obj2 = [];
var obj3 = new Proxy(Function(), { get: function(o, k) { get.push(k); return o[k]; }});
var obj4 = new Error();
var obj5 = JSON;

var values = [
    [ obj0, 0 ],
    [ obj1, 1 ],
    [ obj2, 2 ],
    [ obj3, 3 ],
    [ obj4, 4 ],
    [ obj5, 5 ],
    [ obj4, 4 ],
    [ obj3, 3 ],
    [ obj2, 2 ],
    [ obj1, 1 ],
    [ obj0, 0 ],
];
var map = new WeakMap(values);
```

###### Output
```
ICE: Assertion 'uint_ptr % JMEM_ALIGNMENT == 0' failed at /root/jerryscript/jerry-core/jmem/jmem-allocator.c(jmem_decompress_pointer):222.
Error: ERR_FAILED_INTERNAL_ASSERTION
Aborted
```

Credits: Found by chong from OWL337.
--- end body ---

An assertion failure in the JerryScript engine related to memory alignment can lead to a Denial of Service (DoS) when executing crafted JavaScript code. The assertion 'uint_ptr % JMEM_ALIGNMENT == 0' indicates that the memory pointer is not properly aligned, which could be exploited to crash the application.